Skip to content

Commit

Permalink
Merge 56172b6 into e5086fc
Browse files Browse the repository at this point in the history
  • Loading branch information
johnjbarton authored Oct 5, 2020
2 parents e5086fc + 56172b6 commit 886cb25
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 11 deletions.
19 changes: 14 additions & 5 deletions client/karma.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ var util = require('../common/util')

function Karma (socket, iframe, opener, navigator, location, document) {
var startEmitted = false
var reloadingContext = false
var karmaNavigating = false
var self = this
var queryParams = util.parseQueryParams(location.search)
var browserId = queryParams.id || util.generateId('manual-')
Expand Down Expand Up @@ -80,6 +80,8 @@ function Karma (socket, iframe, opener, navigator, location, document) {

var childWindow = null
function navigateContextTo (url) {
karmaNavigating = true
console.log('karmaNavigating', karmaNavigating)
if (self.config.useIframe === false) {
// run in new window
if (self.config.runInParent === false) {
Expand All @@ -89,9 +91,12 @@ function Karma (socket, iframe, opener, navigator, location, document) {
childWindow.close()
}
childWindow = opener(url)
karmaNavigating = false
console.log('karmaNavigating', karmaNavigating)
// run context on parent element (client_with_context)
// using window.__karma__.scriptUrls to get the html element strings and load them dynamically
} else if (url !== 'about:blank') {
karmaNavigating = false
var loadScript = function (idx) {
if (idx < window.__karma__.scriptUrls.length) {
var parser = new DOMParser()
Expand Down Expand Up @@ -123,20 +128,22 @@ function Karma (socket, iframe, opener, navigator, location, document) {
// run in iframe
} else {
iframe.src = policy.createURL(url)
karmaNavigating = false
console.log('karmaNavigating', karmaNavigating)
}
}

this.onbeforeunload = function () {
if (!reloadingContext) {
console.log('onbeforeunload with karmaNavigating ', karmaNavigating)
if (!karmaNavigating) {
// TODO(vojta): show what test (with explanation about jasmine.UPDATE_INTERVAL)
self.error('Some of your tests did a full page reload!')
}
reloadingContext = false
karmaNavigating = false
}

function clearContext () {
reloadingContext = true

console.log('send to about blank to clear context')
navigateContextTo('about:blank')
}

Expand Down Expand Up @@ -259,9 +266,11 @@ function Karma (socket, iframe, opener, navigator, location, document) {
}

socket.on('execute', function (cfg) {
console.log('-----------------------execute')
// Delay our navigation to the next event in case the clearContext has not completed.
setTimeout(function allowClearContextToComplete () {
// reset startEmitted and reload the iframe
console.log('allowClearContextToComplete')
startEmitted = false
self.config = cfg

Expand Down
19 changes: 14 additions & 5 deletions static/karma.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var util = require('../common/util')

function Karma (socket, iframe, opener, navigator, location, document) {
var startEmitted = false
var reloadingContext = false
var karmaNavigating = false
var self = this
var queryParams = util.parseQueryParams(location.search)
var browserId = queryParams.id || util.generateId('manual-')
Expand Down Expand Up @@ -90,6 +90,8 @@ function Karma (socket, iframe, opener, navigator, location, document) {

var childWindow = null
function navigateContextTo (url) {
karmaNavigating = true
console.log('karmaNavigating', karmaNavigating)
if (self.config.useIframe === false) {
// run in new window
if (self.config.runInParent === false) {
Expand All @@ -99,9 +101,12 @@ function Karma (socket, iframe, opener, navigator, location, document) {
childWindow.close()
}
childWindow = opener(url)
karmaNavigating = false
console.log('karmaNavigating', karmaNavigating)
// run context on parent element (client_with_context)
// using window.__karma__.scriptUrls to get the html element strings and load them dynamically
} else if (url !== 'about:blank') {
karmaNavigating = false
var loadScript = function (idx) {
if (idx < window.__karma__.scriptUrls.length) {
var parser = new DOMParser()
Expand Down Expand Up @@ -133,20 +138,22 @@ function Karma (socket, iframe, opener, navigator, location, document) {
// run in iframe
} else {
iframe.src = policy.createURL(url)
karmaNavigating = false
console.log('karmaNavigating', karmaNavigating)
}
}

this.onbeforeunload = function () {
if (!reloadingContext) {
console.log('onbeforeunload with karmaNavigating ', karmaNavigating)
if (!karmaNavigating) {
// TODO(vojta): show what test (with explanation about jasmine.UPDATE_INTERVAL)
self.error('Some of your tests did a full page reload!')
}
reloadingContext = false
karmaNavigating = false
}

function clearContext () {
reloadingContext = true

console.log('send to about blank to clear context')
navigateContextTo('about:blank')
}

Expand Down Expand Up @@ -269,9 +276,11 @@ function Karma (socket, iframe, opener, navigator, location, document) {
}

socket.on('execute', function (cfg) {
console.log('-----------------------execute')
// Delay our navigation to the next event in case the clearContext has not completed.
setTimeout(function allowClearContextToComplete () {
// reset startEmitted and reload the iframe
console.log('allowClearContextToComplete')
startEmitted = false
self.config = cfg

Expand Down
3 changes: 2 additions & 1 deletion test/client/karma.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ describe('Karma', function () {
})
})

it('should error out if a script attempted to reload the browser after setup', function (done) {
it.only('should error out if a script attempted to reload the browser after setup', function (done) {
// Perform setup
var config = ck.config = {
clearContext: true
Expand All @@ -158,6 +158,7 @@ describe('Karma', function () {
// Spy on our error handler
sinon.spy(k, 'error')

console.log('emulate unload')
// Emulate an unload event
mockWindow.onbeforeunload()

Expand Down

0 comments on commit 886cb25

Please sign in to comment.