144 lines
5.3 KiB
JavaScript
144 lines
5.3 KiB
JavaScript
|
/*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();
|
||
|
});
|
||
|
});
|