tikiwiki/packages/tiki-pkg-casperjs/jerome-breton/casperjs/tests/suites/casper/frames.js

144 lines
5.3 KiB
JavaScript
Raw Permalink Normal View History

2023-11-20 21:52:04 +01:00
/*eslint strict:0*/
casper.test.begin('handling frames', 37, function(test) {
casper.start('tests/site/frames.html');
casper.on("frame.reset", function(frameInfos) {
// console.log(frameInfos.join('-'), 'forceReloaded');
});
casper.viewport(800,600);
casper.then( function(){
casper.withFrame('frame1', function() {
test.assertTitle('CasperJS frame 1');
test.assertExists("#f1");
test.assertDoesntExist("#f2");
test.assertEval(function() {
return '__utils__' in window && 'getBinary' in __utils__;
}, '__utils__ object is available in child frame');
test.assertMatches(this.page.frameContent, /This is frame 1/);
test.assertMatches(this.getHTML(), /This is frame 1/);
});
casper.withFrame('frame2', function() {
test.assertTitle('CasperJS frame 2');
test.assertExists("#f2");
test.assertDoesntExist("#f1");
test.assertEval(function() {
return '__utils__' in window && 'getBinary' in __utils__;
}, '__utils__ object is available in other child frame');
this.clickLabel('frame 3');
});
casper.withFrame('frame2', function() {
test.assertTitle('CasperJS frame 3');
});
casper.withFrame(0, function() {
test.assertTitle('CasperJS frame 1');
test.assertExists("#f1");
test.assertDoesntExist("#f2");
});
casper.withFrame(1, function() {
test.assertTitle('CasperJS frame 3');
test.assertEquals( casper.getElementInfo('a').width,100,'read tag a position');
casper.mouse.move('a');
test.assertEquals( casper.getElementInfo('a').width,200,'read tag a position hovered');
});
casper.withFrame('frame4', function() {
casper.then(function(){
casper.withFrame('frame5', function() {
casper.clickLabel('_self');
// message three is unpresent on frame 5 but as frame 5 was clean
// casperJS search on its parent frame
casper.waitForText("three",function(){
test.assertMatches( this.getHTML(),/three/,'go on self frame');
});
});
});
});
});
casper.thenOpen("tests/site/frames.html", function(){
casper.withFrame('frame4', function() {
casper.then(function(){
casper.withFrame('frame5', function() {
casper.clickLabel('_parent');
});
casper.waitForText("three",function(){
test.assertMatches( this.getHTML(),/three/,'go on parent frame');
});
});
});
});
casper.thenOpen("tests/site/frames.html", function(){
casper.withFrame('frame4', function() {
casper.then(function(){
casper.withFrame('frame5', function() {
casper.clickLabel('_top');
// message three is unpresent on frame 5 but as frame 5 was clean
// casperJS search on its parent frame
});
});
});
casper.waitForText("three",function(){
test.assertMatches( this.getHTML(),/three/,'go on top frame');
});
});
casper.thenOpen("tests/site/frames.html", function() {
var expected = ['frame1','frame1', 'frame2', 'frame2'];
casper.page.switchToMainFrame();
casper.on('frame.changed', function (name, status) {
test.assertEquals(name, expected.shift());
});
casper.switchToFrame("frame1");
test.assertTitle('CasperJS frame 1');
casper.then(function() {
// Same frame in next step
test.assertTitle('CasperJS frame 1');
casper.switchToParentFrame();
test.assertTitle("CasperJS test frames");
casper.switchToFrame("frame2");
test.assertTitle('CasperJS frame 2');
casper.switchToMainFrame();
test.assertTitle("CasperJS test frames");
this.removeAllListeners('frame.changed');
});
});
casper.thenOpen("tests/site/frames.html", function(){
var expected = ['frame4','frame5', 'frame5','frame4'];
casper.page.switchToMainFrame();
casper.on('frame.changed', function (name , status) {
test.assertEquals(name, expected.shift());
});
casper.switchToFrame("frame4");
test.assertTitle('CasperJS frame 4');
casper.switchToFrame("frame5");
test.assertTitle('CasperJS frame 1');
casper.clickLabel('_top');
});
casper.then(function() {
casper.switchToParentFrame();
casper.switchToParentFrame();
casper.waitForText("three",function(){
test.assertMatches( this.getHTML(),/three/,'go on top frame');
});
casper.switchToParentFrame();
casper.switchToParentFrame();
casper.switchToParentFrame();
casper.switchToParentFrame();
casper.switchToParentFrame();
this.removeAllListeners('frame.changed');
});
casper.run(function() {
test.assertTitle('CasperJS test index');
test.done();
});
});