I have made some minor text changes to the file, which is a nice addition.

Basically, I made the headings consistently sentence case (they were a mix
of sentence case and title case), changed passive voice to active voice
wherever I could, and tweaked a couple of minor things.

a

On Mon, Dec 13, 2021 at 8:51 AM Harbs <harbs.li...@gmail.com> wrote:

> I created a page about swcs:
> https://apache.github.io/royale-docs/libraries/library-basics <
> https://apache.github.io/royale-docs/libraries/library-basics>
>
> I added a paragraph about the GCL swc, but I’m really not very clear on
> how it works...
>
> > On Dec 12, 2021, at 5:46 PM, Harbs <harbs.li...@gmail.com> wrote:
> >
> > I spent some more time on this, but I’m not sure how to get the compiler
> to realize that we need the goog files.
> >
> > For Event we have this:
> >
> > goog.addDependency('../../../org/apache/royale/events/Event.js',
> ['org.apache.royale.events.Event'], ['goog.events.Event',
> 'org.apache.royale.events.IRoyaleEvent']);
> >
> > But Royale Event subclasses goog.events.Event.
> >
> > How do I tell the compiler that
> org.apache.royale.utils.string.sanitizeUrl requires goog.html.SafeUrl ?
> >
> > The same for org.apache.royale.utils.string.sanitizeHtml with
> goog.html.sanitizer.HtmlSanitizer and goog.html.SafeHtml.
> >
> > Alex? Josh? Greg?
> >
> > Thanks,
> > Harbs
> >
> >> On Dec 12, 2021, at 2:13 AM, Harbs <harbs.li...@gmail.com> wrote:
> >>
> >> I added code for sanitizing, but it’s not working because the goog.html
> files are not being copied. I don’t know what needs to be done to make that
> happen.
> >>
> >> Harbs
> >>
> >>> On Dec 12, 2021, at 2:12 AM, ha...@apache.org wrote:
> >>>
> >>> This is an automated email from the ASF dual-hosted git repository.
> >>>
> >>> harbs pushed a commit to branch feature/sanitize
> >>> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
> >>>
> >>> commit 1b12594c60420d3503f9e366f314c9d875e16ddb
> >>> Author: Harbs <ha...@in-tools.com>
> >>> AuthorDate: Sun Dec 12 02:12:05 2021 +0200
> >>>
> >>>  Added sanitizeUrl and sanitizeHtml
> >>> ---
> >>> .../projects/Core/src/main/royale/CoreClasses.as   |  2 +
> >>> .../org/apache/royale/utils/string/sanitizeHtml.as | 38 ++++++++++++++
> >>> .../org/apache/royale/utils/string/sanitizeUrl.as  | 36 +++++++++++++
> >>> .../src/test/royale/flexUnitTests/CoreTester.as    |  1 +
> >>> .../{CoreTester.as => SanitizeTest.as}             | 59
> ++++++++++++++--------
> >>> 5 files changed, 115 insertions(+), 21 deletions(-)
> >>>
> >>> diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as
> b/frameworks/projects/Core/src/main/royale/CoreClasses.as
> >>> index 21593fd..dd088eb 100644
> >>> --- a/frameworks/projects/Core/src/main/royale/CoreClasses.as
> >>> +++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as
> >>> @@ -342,6 +342,8 @@ internal class CoreClasses
> >>>     import org.apache.royale.utils.string.trimRight; trimRight;
> >>>     import org.apache.royale.utils.string.trimLeft; trimLeft;
> >>>     import org.apache.royale.utils.string.cacheBust; cacheBust;
> >>> +   import org.apache.royale.utils.string.sanitizeHtml; sanitizeHtml;
> >>> +   import org.apache.royale.utils.string.sanitizeUrl; sanitizeUrl;
> >>>
> >>>     import org.apache.royale.utils.date.addDays; addDays;
> >>>     import org.apache.royale.utils.date.addHours; addHours;
> >>> diff --git
> a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeHtml.as
> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeHtml.as
> >>> new file mode 100644
> >>> index 0000000..360ef63
> >>> --- /dev/null
> >>> +++
> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeHtml.as
> >>> @@ -0,0 +1,38 @@
> >>>
> +////////////////////////////////////////////////////////////////////////////////
> >>> +//
> >>> +//  Licensed to the Apache Software Foundation (ASF) under one or more
> >>> +//  contributor license agreements.  See the NOTICE file distributed
> with
> >>> +//  this work for additional information regarding copyright
> ownership.
> >>> +//  The ASF licenses this file to You under the Apache License,
> Version 2.0
> >>> +//  (the "License"); you may not use this file except in compliance
> with
> >>> +//  the License.  You may obtain a copy of the License at
> >>> +//
> >>> +//      http://www.apache.org/licenses/LICENSE-2.0
> >>> +//
> >>> +//  Unless required by applicable law or agreed to in writing,
> software
> >>> +//  distributed under the License is distributed on an "AS IS" BASIS,
> >>> +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> >>> +//  See the License for the specific language governing permissions
> and
> >>> +//  limitations under the License.
> >>> +//
> >>>
> +////////////////////////////////////////////////////////////////////////////////
> >>> +package org.apache.royale.utils.string
> >>> +{
> >>> +   COMPILE::JS{
> >>> +           import goog.html.sanitizer.HtmlSanitizer;
> >>> +           import goog.html.SafeHtml;
> >>> +   }
> >>> +
> >>> +   public function sanitizeHtml(html:String):String
> >>> +   {
> >>> +           COMPILE::JS
> >>> +           {
> >>> +                   return
> SafeHtml.unwrap(HtmlSanitizer.sanitize(html));
> >>> +           }
> >>> +           //TODO sanitize in swf
> >>> +           COMPILE::SWF
> >>> +           {
> >>> +                   return html;
> >>> +           }
> >>> +   }
> >>> +}
> >>> \ No newline at end of file
> >>> diff --git
> a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeUrl.as
> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeUrl.as
> >>> new file mode 100644
> >>> index 0000000..cd4151d
> >>> --- /dev/null
> >>> +++
> b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeUrl.as
> >>> @@ -0,0 +1,36 @@
> >>>
> +////////////////////////////////////////////////////////////////////////////////
> >>> +//
> >>> +//  Licensed to the Apache Software Foundation (ASF) under one or more
> >>> +//  contributor license agreements.  See the NOTICE file distributed
> with
> >>> +//  this work for additional information regarding copyright
> ownership.
> >>> +//  The ASF licenses this file to You under the Apache License,
> Version 2.0
> >>> +//  (the "License"); you may not use this file except in compliance
> with
> >>> +//  the License.  You may obtain a copy of the License at
> >>> +//
> >>> +//      http://www.apache.org/licenses/LICENSE-2.0
> >>> +//
> >>> +//  Unless required by applicable law or agreed to in writing,
> software
> >>> +//  distributed under the License is distributed on an "AS IS" BASIS,
> >>> +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> >>> +//  See the License for the specific language governing permissions
> and
> >>> +//  limitations under the License.
> >>> +//
> >>>
> +////////////////////////////////////////////////////////////////////////////////
> >>> +package org.apache.royale.utils.string
> >>> +{
> >>> +   COMPILE::JS{
> >>> +           import goog.html.SafeUrl;
> >>> +           import goog.html.SafeUrl;
> >>> +   }
> >>> +   public function sanitizeUrl(url:String):String
> >>> +   {
> >>> +           COMPILE::JS{
> >>> +                   return SafeUrl.unwrap(SafeUrl.sanitize(url));
> >>> +           }
> >>> +
> >>> +           //TODO sanitize in swf
> >>> +           COMPILE::SWF{
> >>> +                   return url;
> >>> +           }
> >>> +   }
> >>> +}
> >>> \ No newline at end of file
> >>> diff --git
> a/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as
> b/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as
> >>> index c8adc02..9441daf 100644
> >>> ---
> a/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as
> >>> +++
> b/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as
> >>> @@ -42,5 +42,6 @@ package flexUnitTests
> >>>       public var keyConverterTest:KeyConverterTest;
> >>>       public var keyboardEventConverterTest:KeyboardEventConverterTest;
> >>>       public var stringUtilsTest:StringUtilsTest;
> >>> +        public var sanitizerTest:SanitizeTest;
> >>>   }
> >>> }
> >>> diff --git
> a/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as
> b/frameworks/projects/Core/src/test/royale/flexUnitTests/SanitizeTest.as
> >>> similarity index 50%
> >>> copy from
> frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as
> >>> copy to
> frameworks/projects/Core/src/test/royale/flexUnitTests/SanitizeTest.as
> >>> index c8adc02..7173f52 100644
> >>> ---
> a/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as
> >>> +++
> b/frameworks/projects/Core/src/test/royale/flexUnitTests/SanitizeTest.as
> >>> @@ -18,29 +18,46 @@
> >>>
> ////////////////////////////////////////////////////////////////////////////////
> >>> package flexUnitTests
> >>> {
> >>> -    import flexUnitTests.language.*
> >>> +    import org.apache.royale.utils.string.*;
> >>> +    import org.apache.royale.test.asserts.*;
> >>>
> >>> -    [Suite]
> >>> -    [RunWith("org.apache.royale.test.runners.SuiteRunner")]
> >>> -    public class CoreTester
> >>> -    {
> >>> +    public class SanitizeTest
> >>> +    {
> >>> +        [Before]
> >>> +        public function setUp():void
> >>> +        {
> >>> +        }
> >>>
> >>> -        //language tests
> >>> -        public var languageTestIs:LanguageTesterTestIs;
> >>> -        public var languageTestIntUint:LanguageTesterIntUint;
> >>> -        public var languageTestVector:LanguageTesterTestVector;
> >>> -        public var languageTestClass:LanguageTesterTestClass;
> >>> -        public var
> languageTestLoopVariants:LanguageTesterTestLoopVariants;
> >>> -        public var languageTestArraySort:LanguageTesterArraySort;
> >>> -        public var languageTesttryCatch:LanguageTesterTestTryCatch;
> >>> +        [After]
> >>> +        public function tearDown():void
> >>> +        {
> >>> +        }
> >>>
> >>> -        //core tests
> >>> -        public var strandTesterTest:StrandTesterTest;
> >>> -           public var binaryDataTesterTest:BinaryDataTesterTest;
> >>> -           public var arrayUtilsTest:ArrayUtilsTest;
> >>> -           public var dateUtilsTest:DateUtilsTest;
> >>> -        public var keyConverterTest:KeyConverterTest;
> >>> -        public var
> keyboardEventConverterTest:KeyboardEventConverterTest;
> >>> -        public var stringUtilsTest:StringUtilsTest;
> >>> +        [BeforeClass]
> >>> +        public static function setUpBeforeClass():void
> >>> +        {
> >>> +        }
> >>> +
> >>> +        [AfterClass]
> >>> +        public static function tearDownAfterClass():void
> >>> +        {
> >>> +        }
> >>> +
> >>> +        [Test]
> >>> +        public function testHTML():void
> >>> +        {
> >>> +            var safeHtml:String = 'Hello <em>World</em>';
> >>> +            assertEquals(safeHtml, sanitizeHtml(safeHtml));
> >>> +        }
> >>> +
> >>> +        [Test]
> >>> +        public function testUrl():void
> >>> +        {
> >>> +            var safeUrl:String = "https://foobaz.com";
> >>> +            assertEquals(safeUrl, sanitizeUrl(safeUrl));
> >>> +        }
> >>> +
> >>> +
> >>> +
> >>>   }
> >>> }
> >>
> >
>
>

-- 
Andrew Wetmore

Editor, Moose House Publications <https://moosehousepress.com/>
Editor-Writer, The Apache Software Foundation <https://apache.org/>

Reply via email to