puppeteer/third_party/phantomjs/test/module/webpage/frame-switching.js
2017-05-11 00:06:41 -07:00

99 lines
3.2 KiB
JavaScript

//! unsupported
async_test(function () {
var p = require("webpage").create();
function pageTitle(page) {
return page.evaluate(function(){
return window.document.title;
});
}
function setPageTitle(page, newTitle) {
page.evaluate(function(newTitle){
window.document.title = newTitle;
}, newTitle);
}
function testFrameSwitching() {
assert_equals(pageTitle(p), "index");
assert_equals(p.frameName, "");
assert_equals(p.framesCount, 2);
assert_deep_equals(p.framesName, ["frame1", "frame2"]);
setPageTitle(p, pageTitle(p) + "-visited");
assert_is_true(p.switchToFrame("frame1"));
assert_equals(pageTitle(p), "frame1");
assert_equals(p.frameName, "frame1");
assert_equals(p.framesCount, 2);
assert_deep_equals(p.framesName, ["frame1-1", "frame1-2"]);
setPageTitle(p, pageTitle(p) + "-visited");
assert_is_true(p.switchToFrame("frame1-2"));
assert_equals(pageTitle(p), "frame1-2");
assert_equals(p.frameName, "frame1-2");
assert_equals(p.framesCount, 0);
assert_deep_equals(p.framesName, []);
setPageTitle(p, pageTitle(p) + "-visited");
assert_is_true(p.switchToParentFrame());
assert_equals(pageTitle(p), "frame1-visited");
assert_equals(p.frameName, "frame1");
assert_equals(p.framesCount, 2);
assert_deep_equals(p.framesName, ["frame1-1", "frame1-2"]);
assert_is_true(p.switchToFrame(0));
assert_equals(pageTitle(p), "frame1-1");
assert_equals(p.frameName, "frame1-1");
assert_equals(p.framesCount, 0);
assert_deep_equals(p.framesName, []);
assert_equals(p.switchToMainFrame(), undefined);
assert_equals(pageTitle(p), "index-visited");
assert_equals(p.frameName, "");
assert_equals(p.framesCount, 2);
assert_deep_equals(p.framesName, ["frame1", "frame2"]);
assert_is_true(p.switchToFrame("frame2"));
assert_equals(pageTitle(p), "frame2");
assert_equals(p.frameName, "frame2");
assert_equals(p.framesCount, 3);
assert_deep_equals(p.framesName,
["frame2-1", "frame2-2", "frame2-3"]);
assert_equals(p.focusedFrameName, "");
p.evaluate(function(){
window.focus();
});
assert_equals(p.focusedFrameName, "frame2");
assert_is_true(p.switchToFrame("frame2-1"));
p.evaluate(function(){
window.focus();
});
assert_equals(p.focusedFrameName, "frame2-1");
assert_equals(p.switchToMainFrame(), undefined);
p.evaluate(function(){
window.focus();
});
assert_equals(p.focusedFrameName, "");
p.evaluate(function(){
window.frames[0].focus();
});
assert_equals(p.focusedFrameName, "frame1");
assert_equals(p.frameName, "");
assert_equals(p.switchToFocusedFrame(), undefined);
assert_equals(p.frameName, "frame1");
}
p.open(TEST_HTTP_BASE + "frameset",
this.step_func_done(function (s) {
assert_equals(s, "success");
testFrameSwitching();
}));
}, "frame switching API");