Skip to content

Commit f87feba

Browse files
committed
Untangle "evals scripts" test
1 parent e765fd8 commit f87feba

File tree

3 files changed

+28
-33
lines changed

3 files changed

+28
-33
lines changed

test/evaled.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
1-
window.evaledSrcScriptNum = window.evaledSrcScriptNum || 0
2-
window.evaledSrcScriptNum++
3-
4-
if (window.evaledSrcScriptNum === 2)
5-
window.evaledScriptLoaded()
1+
window.externalScriptLoaded()

test/unit/pjax.js

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -76,36 +76,35 @@ if ($.support.pjax) {
7676
})
7777
})
7878

79-
asyncTest("evals scripts", function() {
80-
var frame = this.frame
79+
asyncTest("evals scripts", 7, function() {
80+
var externalLoadedCount = 0
81+
this.frame.externalScriptLoaded = function() {
82+
externalLoadedCount++
83+
}
8184

82-
frame.evaledScriptLoaded = function() {
83-
equal(frame.evaledSrcScriptNum, 2)
85+
navigate(this.frame)
86+
.pjax({ url: "scripts.html?name=one", container: "#main" }, function(frame) {
8487
deepEqual(frame.evaledInlineLog, ["one"])
85-
86-
frame.$.pjax({
87-
url: "scripts.html?name=two",
88-
container: "#main"
88+
equal(externalLoadedCount, 0)
89+
return new PoorMansPromise(function(resolve) {
90+
setTimeout(resolve, 100)
91+
}).then(function() {
92+
equal(externalLoadedCount, 2, "expected scripts to have loaded")
8993
})
90-
91-
frame.$("#main").one("pjax:end", function() {
92-
deepEqual(frame.evaledInlineLog, ["one", "two"])
93-
94-
goBack(frame, function() {
95-
deepEqual(frame.evaledInlineLog, ["one", "two", "one"])
96-
97-
goForward(frame, function() {
98-
deepEqual(frame.evaledInlineLog, ["one", "two", "one", "two"])
99-
equal(frame.evaledSrcScriptNum, 2)
100-
start()
101-
})
102-
})
94+
})
95+
.pjax({ url: "scripts.html?name=two", container: "#main" }, function(frame) {
96+
deepEqual(frame.evaledInlineLog, ["one", "two"])
97+
})
98+
.back(-1, function(frame) {
99+
deepEqual(frame.evaledInlineLog, ["one", "two", "one"])
100+
})
101+
.back(+1, function(frame) {
102+
deepEqual(frame.evaledInlineLog, ["one", "two", "one", "two"])
103+
return new PoorMansPromise(function(resolve) {
104+
setTimeout(resolve, 100)
105+
}).then(function() {
106+
equal(externalLoadedCount, 2, "expected no extra scripts to load")
103107
})
104-
}
105-
106-
frame.$.pjax({
107-
url: "scripts.html?name=one",
108-
container: "#main"
109108
})
110109
})
111110

test/views/scripts.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<p>Got some script tags here</p>
2-
<script type="text/javascript" src="/test/evaled.js"></script>
3-
<script src="/test/evaled.js"></script>
2+
<script type="text/javascript" src="/test/evaled.js?1"></script>
3+
<script src="/test/evaled.js?2"></script>
44
<script type="text/javascript">
55
window.evaledInlineLog = window.evaledInlineLog || []
66
window.evaledInlineLog.push('<%= params[:name] %>')

0 commit comments

Comments
 (0)