blob: 40bf60da496eaa945efe175eb63e6a1023f2aac8 [file] [log] [blame]
/*
* 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();
}