/* | |
* Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | |
* for details. All rights reserved. Use of this source code is governed by a | |
* BSD-style license that can be found in the LICENSE file. | |
*/ | |
/** | |
* @description | |
*/ | |
import "dart:html"; | |
import "../../testcommon.dart"; | |
main() { | |
// do not indent | |
dynamic style = new Element.html(r''' | |
<style> | |
/* | |
=== Warning === | |
This file intentionally contains scpecial characters which | |
cannot be displayed by some text editors. Please | |
carefully edit the file. | |
*/ | |
#a:after { content:"65:A 9: "; } | |
#b:after { content:"128: 159:"; } | |
#c:after { content:"1:"; } | |
#d:after { content:"8:"; } | |
#e:after { content:"9: "; } | |
#f:after { content:"10: | |
"; } /* Newline. Invalid string */ | |
#g:after { content:"11:"; } | |
#h:after { content:"12:"; } /* Newline. Invalid string */ | |
#i:after { content:"13: | |
"; } /* Newline. Invalid string */ | |
#j:after { content:"14:"; } | |
#k:after { content:"20:"; } | |
#l:after { content:"30:"; } | |
#m:after { content:"31:"; } | |
#n:after { content:"127:" } | |
#o:after { content:"384:ƀ" } | |
</style> | |
''', treeSanitizer: new NullTreeSanitizer()); | |
document.head.append(style); | |
document.body.setInnerHtml(r''' | |
<p>Test parsing of CSS escapes.</p> | |
<p>Rules from the stylesheet:</p> | |
<pre id="result"></pre> | |
<p>Expected result:</p> | |
<pre id="expected">#a::after { content: '65:A 9:\9'; } | |
#b::after { content: '128: 159:'; } | |
#c::after { content: '1:\1'; } | |
#d::after { content: '8:\8'; } | |
#e::after { content: '9:\9'; } | |
#f::after { } | |
#g::after { content: '11:\b'; } | |
#h::after { } | |
#i::after { } | |
#j::after { content: '14:\e'; } | |
#k::after { content: '20:\14'; } | |
#l::after { content: '30:\1e'; } | |
#m::after { content: '31:\1f'; } | |
#n::after { content: '127:\7f'; } | |
#o::after { content: '384:ƀ'; } | |
</pre> | |
''', treeSanitizer: new NullTreeSanitizer()); | |
runTest() | |
{ | |
var rules = style.sheet.cssRules; | |
var text = ""; | |
for (var i = 0; i < rules.length; i++) { | |
text += rules.item(i).cssText; | |
text += "\n"; | |
} | |
document.getElementById("result").append(new Text(text)); | |
shouldBe((document.getElementById("result").firstChild as Text).data, | |
(document.getElementById("expected").firstChild as Text).data); | |
} | |
runTest(); | |
} |