blob: d90a4fb8b0134ecb64b83918c8583b29113652aa [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 This tests a letter with :first-letter applied is present in
* text.
*/
import "dart:html";
import "../../testcommon.dart";
main() {
var style = new Element.html('''
<style>
.first:first-letter {
font-weight: bold;
visibility: visible;
}
.visible {
visiblity: visible;
}
.invisible {
visibility: hidden;
}
.preLine {
white-space: pre-line;
}
.preWrap {
white-space: pre-wrap;
}
.left {
float: left;
}
.left:first-letter {
text-transform: capitalize;
}
</style>
''', treeSanitizer: new NullTreeSanitizer());
document.head.append(style);
document.body.setInnerHtml('''
<div id="tests">
<div id="divFirst" class="first">div</div>
<div id="divNormal">div</div>
<pre id="pFirst" class="first">pre</pre>
<pre id="pNormal">pre</pre>
<div id="collapsedSpaceFirst"><span> </span><div class="first">abc</div></div>
<div id="collapsedSpaceNormal"><span> </span><div>abc</div></div>
<div id="collapsedSpacePreFirst"><span> </span><pre class="first">abc</pre></div>
<div id="collapsedSpacePreNormal"><span> </span><pre>abc</pre></div>
<div id="preSpaceFirst"><span>test</span><pre class="first"> abc</pre></div>
<div id="preSpaceNormal"><span>test</span><pre> abc</pre></div>
<div id="divSpaceFirst"><span>test</span><div class="first"> abc</div></div>
<div id="divSpaceNormal"><span>test</span><div> abc</div></div>
<div id="preLineFirst" class="first preLine">test</div>
<div id="preLineNormal" class="preLine">test</div>
<div id="preWrapFirst" class="first preWrap">
test</div>
<div id="preWrapNormal" class="preWrap">
test</div>
<div id="collapsedSpaceDivFirst"><span>foo</span><span> </span><div class="first">abc</div></div>
<div id="collapsedSpaceDivNormal"><span>foo</span><span> </span><div>abc</div></div>
<div id="firstCollapsedDivFirst"><div class="first">abc </div><span>def</span></div>
<div id="firstCollapsedDivNormal"><div>abc </div><span>def</span></div>
<div id="collapsedSpaceCollapsedDivFirst"><span>foo</span><span> </span><div class="first"> abc</div></div>
<div id="collapsedSpaceCollapsedDivNormal"><span>foo</span><span> </span><div> abc</div></div>
<div id="collapsedSpacePunctDivFirst"><span>foo</span><span> </span><div class="first">|
abc</div></div>
<div id="collapsedSpacePunctDivNormal"><span>foo</span><span> </span><div>|
abc</div></div>
<div id="divSpanFirst" class="first"><span id="f1">1</span><span id="f2">2</span></div>
<div id="divSpanNormal"><span id="n1">1</span><span id="n2">2</span></div>
<div id="invisiblePre"><pre class="invisible">test</pre></div>
<div id="invisiblePreFirst"><pre class="invisible first">test</pre></div>
<div id="invisible">
<div class="invisible"><input value="an input" type="text"/> </div><pre>test</pre>
</div>
<pre>
Results
</pre>
<div id="floatDt"><dl><dt class=left> ab<dt class=left> cd<dt class=left> e</dl></div>
</div>
''', treeSanitizer: new NullTreeSanitizer());
// commented some tests as dart's .text (.textContent) is not a
// replacement for .innerText
// see https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent
shouldBe(document.getElementById('divFirst').text, document.getElementById('divNormal').text);
shouldBe(document.getElementById('pFirst').text, document.getElementById('pNormal').text);
shouldBe(document.getElementById('collapsedSpaceFirst').text, document.getElementById('collapsedSpaceNormal').text);
shouldBe(document.getElementById('collapsedSpacePreFirst').text, document.getElementById('collapsedSpacePreNormal').text);
shouldBe(document.getElementById('preLineFirst').text, document.getElementById('preLineNormal').text);
shouldBe(document.getElementById('preWrapFirst').text, document.getElementById('preWrapNormal').text);
shouldBe(document.getElementById('preSpaceFirst').text, document.getElementById('preSpaceNormal').text);
shouldBe(document.getElementById('collapsedSpaceDivFirst').text, document.getElementById('collapsedSpaceDivNormal').text);
shouldBe(document.getElementById('firstCollapsedDivFirst').text, document.getElementById('firstCollapsedDivNormal').text);
shouldBe(document.getElementById('collapsedSpaceCollapsedDivFirst').text, document.getElementById('collapsedSpaceCollapsedDivNormal').text);
//shouldBe(document.getElementById('collapsedSpaceCollapsedDivFirst').text, 'foo\nabc\n');
shouldBe(document.getElementById('collapsedSpacePunctDivFirst').text, document.getElementById('collapsedSpacePunctDivNormal').text);
//shouldBe(document.getElementById('collapsedSpacePunctDivFirst').text, 'foo\n| abc\n');
shouldBe(document.getElementById('divSpanFirst').text, document.getElementById('divSpanNormal').text);
//shouldBe(document.getElementById('invisiblePre').text, '');
//shouldBe(document.getElementById('invisiblePreFirst').text, 't\n');
//shouldBe(document.getElementById('invisible').text, 'test\n');
//shouldBe(document.getElementById('floatDt').text, 'Ab Cd E');
}