diff options
| author | R. Merkert | 2013-08-17 19:09:28 -0400 | 
|---|---|---|
| committer | Vojta Jina | 2013-09-11 22:40:09 +0200 | 
| commit | 21e9e8cf68ef007136da6cc212d2f1f252fb668a (patch) | |
| tree | 39bd8e8fb2c2b8fc267d714e4b85b7b6604c0e46 /test/ngSanitize/sanitizeSpec.js | |
| parent | bf512bb8ee696f7644879cf0ba33e01cbf9e2153 (diff) | |
| download | angular.js-21e9e8cf68ef007136da6cc212d2f1f252fb668a.tar.bz2 | |
fix(ngSanitize): sanitizer should not accept <!--> as a valid comment
According to http://validator.w3.org/ , <!--> is not a valid comment
and neither is any comment containing the -- substring.
Diffstat (limited to 'test/ngSanitize/sanitizeSpec.js')
| -rw-r--r-- | test/ngSanitize/sanitizeSpec.js | 34 | 
1 files changed, 33 insertions, 1 deletions
diff --git a/test/ngSanitize/sanitizeSpec.js b/test/ngSanitize/sanitizeSpec.js index f97e86a6..ae1271f0 100644 --- a/test/ngSanitize/sanitizeSpec.js +++ b/test/ngSanitize/sanitizeSpec.js @@ -15,7 +15,7 @@ describe('HTML', function() {    describe('htmlParser', function() {      if (angular.isUndefined(window.htmlParser)) return; -    var handler, start, text; +    var handler, start, text, comment;      beforeEach(function() {        handler = {            start: function(tag, attrs, unary){ @@ -35,10 +35,42 @@ describe('HTML', function() {            },            end:function(tag) {              expect(tag).toEqual(start.tag); +          }, +          comment:function(comment_) { +            comment = comment_;            }        };      }); +    it('should parse comments', function() { +      htmlParser('<!--FOOBAR-->', handler); +      expect(comment).toEqual('FOOBAR'); +    }); + +    it('should throw an exception for invalid comments', function() { +      var caught=false; +      try { +        htmlParser('<!-->', handler); +      } +      catch (ex) { +        caught = true; +        // expected an exception due to a bad parse +      } +      expect(caught).toBe(true); +    }); + +    it('double-dashes are not allowed in a comment', function() { +      var caught=false; +      try { +        htmlParser('<!-- -- -->', handler); +      } +      catch (ex) { +        caught = true; +        // expected an exception due to a bad parse +      } +      expect(caught).toBe(true); +    }); +      it('should parse basic format', function() {        htmlParser('<tag attr="value">text</tag>', handler);        expect(start).toEqual({tag:'tag', attrs:{attr:'value'}, unary:false});  | 
