@qooxdoo/framework
Version:
The JS Framework for Coders
191 lines (143 loc) • 4.25 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2011 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Tino Butz (tbtz)
************************************************************************ */
qx.Class.define("qx.test.mobile.page.Page", {
extend: qx.test.mobile.MobileTestCase,
members: {
testShow() {
var initializedEvent = false;
var startEvent = false;
var stopEvent = false;
var page = new qx.ui.mobile.page.Page();
this.getRoot().add(page);
page.addListener("initialize", () => {
this.assertFalse(
startEvent,
"Start event is fired before initialize event was fired!"
);
initializedEvent = true;
});
page.addListener("start", () => {
this.assertTrue(
initializedEvent,
"Start event is fired before initialize event was fired!"
);
startEvent = true;
});
page.addListener("stop", () => {
stopEvent = true;
});
page.show();
this.assertTrue(initializedEvent, "Initialize event is not fired!");
this.assertTrue(startEvent, "Start event is not fired!");
this.assertFalse(stopEvent, "Stop event is fired!");
page.destroy();
},
testInitialize() {
this.__testEventOnPage("initialize");
},
testStart() {
this.__testEventOnPageAndApplication("start");
},
testStop() {
this.__testEventOnPageAndApplication("stop", function (page) {
page.initialize();
});
},
testPause() {
this.__testEventOnPage("pause");
},
testResume() {
this.__testEventOnPage("resume");
},
testWait() {
this.__testEventOnPage("wait");
},
testBack() {
this.__testEventOnPageAndApplication("back");
},
testPreventBack() {
var page = new qx.ui.mobile.page.Page();
this.getRoot().add(page);
var eventFiredOnApplication = false;
var eventFiredOnPage = false;
var application = qx.core.Init.getApplication();
var id = application.addListener("back", evt => {
eventFiredOnApplication = true;
evt.preventDefault();
});
page.addListener("back", () => {
eventFiredOnPage = true;
});
page.back();
this.assertTrue(
eventFiredOnApplication,
"The 'back' event on application is not fired!"
);
this.assertFalse(eventFiredOnPage, "The 'back' event on page is fired!");
application.removeListenerById(id);
page.destroy();
},
testMenu() {
this.__testEventOnPage("menu");
},
__testEventOnPage(name) {
var page = new qx.ui.mobile.page.Page();
this.getRoot().add(page);
var isEventFired = false;
page.addListener(
name,
function () {
isEventFired = true;
},
this
);
page[name]();
this.assertTrue(isEventFired, "The '" + name + "' event is not fired!");
page.destroy();
},
__testEventOnPageAndApplication(name, beforeCallback) {
var page = new qx.ui.mobile.page.Page();
this.getRoot().add(page);
var eventFiredOnApplication = false;
var eventFiredOnPage = false;
var application = qx.core.Init.getApplication();
var id = application.addListener(
name,
function () {
eventFiredOnApplication = true;
},
this
);
page.addListener(
name,
function () {
eventFiredOnPage = true;
},
this
);
if (beforeCallback) {
beforeCallback(page);
}
page[name]();
this.assertTrue(
eventFiredOnApplication,
"The '" + name + "' event on application is not fired!"
);
this.assertTrue(
eventFiredOnPage,
"The '" + name + "' event on page is not fired!"
);
application.removeListenerById(id);
page.destroy();
}
}
});