Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(788)

Unified Diff: tests/com/google/caja/plugin/stages/RewriteHtmlStageTest.java

Issue 61041: Cajole to HTML (Closed) Base URL: http://google-caja.googlecode.com/svn/trunk/
Patch Set: Cajole to HTML Created 14 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests/com/google/caja/plugin/stages/RewriteHtmlStageTest.java
===================================================================
--- tests/com/google/caja/plugin/stages/RewriteHtmlStageTest.java (revision 3513)
+++ tests/com/google/caja/plugin/stages/RewriteHtmlStageTest.java (working copy)
@@ -18,6 +18,7 @@
import com.google.caja.parser.AncestorChain;
import com.google.caja.parser.js.Block;
import com.google.caja.plugin.Dom;
+import com.google.caja.plugin.ExtractedHtmlContent;
import com.google.caja.plugin.Job;
import com.google.caja.plugin.Jobs;
import com.google.caja.plugin.PluginMessageType;
@@ -38,7 +39,8 @@
public void testScriptExtraction() throws Exception {
assertPipeline(
job("foo<script>extracted();</script>baz", Job.JobType.HTML),
- job("foo<span></span>baz", Job.JobType.HTML),
+ // The "jobnum" attribute was added by the extractScript method below.
+ job("foo<span jobnum=\"1\"></span>baz", Job.JobType.HTML),
job("{ extracted(); }", Job.JobType.JAVASCRIPT)
);
assertNoErrors();
@@ -54,7 +56,7 @@
assertPipeline(
job("foo<script type=\"text/javascript\">var x = 1;</script>baz",
Job.JobType.HTML),
- job("foo<span></span>baz", Job.JobType.HTML),
+ job("foo<span jobnum=\"1\"></span>baz", Job.JobType.HTML),
job("{\n var x = 1;\n}", Job.JobType.JAVASCRIPT)
);
assertNoErrors();
@@ -74,7 +76,7 @@
assertPipeline(
job("foo<script type=text/javascript>extracted();</script>baz",
Job.JobType.HTML),
- job("foo<span></span>baz", Job.JobType.HTML),
+ job("foo<span jobnum=\"1\"></span>baz", Job.JobType.HTML),
job("{ extracted(); }", Job.JobType.JAVASCRIPT)
);
assertNoErrors();
@@ -109,7 +111,8 @@
public void testOnLoadHandlers() throws Exception {
assertPipeline(
job("<body onload=init();>Foo</body>", Job.JobType.HTML),
- job("<html><head></head><body>Foo<span></span></body></html>",
+ job("<html><head></head>"
+ + "<body>Foo<span jobnum=\"1\"></span></body></html>",
Job.JobType.HTML),
job("{ init(); }", Job.JobType.JAVASCRIPT));
assertNoErrors();
@@ -155,6 +158,24 @@
assertNoErrors();
}
+ public void testDeferredScripts() throws Exception {
+ assertPipeline(
+ job("<script src=content:a();></script>"
+ + "<script defer>b();</script>"
+ + "<script src=content:c(); defer=defer></script>"
+ + "<script src=content:d(); defer=no></script>"
+ + "<br>",
+ Job.JobType.HTML),
+ job("<span jobnum=\"1\"></span><span jobnum=\"2\"></span><br />"
+ + "<span jobnum=\"3\"></span><span jobnum=\"4\"></span>",
+ Job.JobType.HTML),
+ job("{ a(); }", Job.JobType.JAVASCRIPT),
+ job("{ d(); }", Job.JobType.JAVASCRIPT),
+ job("{ b(); }", Job.JobType.JAVASCRIPT),
+ job("{ c(); }", Job.JobType.JAVASCRIPT));
+ assertNoErrors();
+ }
+
@Override
protected boolean runPipeline(Jobs jobs) throws Exception {
mq.getMessages().clear();
@@ -170,11 +191,14 @@
private void extractScripts(Node node, Jobs jobs) {
switch (node.getNodeType()) {
case Node.ELEMENT_NODE:
- Block extracted = RewriteHtmlStage.extractedScriptFor((Element) node);
+ Element el = (Element) node;
+ Block extracted = ExtractedHtmlContent.extractedScriptFor(el);
if (extracted != null) {
+ int jobNum = jobs.getJobs().size();
+ el.setAttribute("jobnum", "" + jobNum);
jobs.getJobs().add(new Job(AncestorChain.instance(extracted)));
}
- for (Node c = node.getFirstChild(); c != null; c = c.getNextSibling()) {
+ for (Node c = el.getFirstChild(); c != null; c = c.getNextSibling()) {
extractScripts(c, jobs);
}
break;

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b