Mercurial > hg > isophonics-drupal-site
diff core/modules/simpletest/tests/src/FunctionalJavascript/BrowserWithJavascriptTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/simpletest/tests/src/FunctionalJavascript/BrowserWithJavascriptTest.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,65 @@ +<?php + +namespace Drupal\Tests\simpletest\FunctionalJavascript; + +use Drupal\FunctionalJavascriptTests\JavascriptTestBase; + +/** + * Tests if we can execute JavaScript in the browser. + * + * @group javascript + */ +class BrowserWithJavascriptTest extends JavascriptTestBase { + + public function testJavascript() { + $this->drupalGet('<front>'); + $session = $this->getSession(); + + $session->resizeWindow(400, 300); + $javascript = <<<JS + (function(){ + var w = window, + d = document, + e = d.documentElement, + g = d.getElementsByTagName('body')[0], + x = w.innerWidth || e.clientWidth || g.clientWidth, + y = w.innerHeight || e.clientHeight|| g.clientHeight; + return x == 400 && y == 300; + }()); +JS; + $this->assertJsCondition($javascript); + } + + public function testAssertJsCondition() { + $this->drupalGet('<front>'); + $session = $this->getSession(); + + $session->resizeWindow(500, 300); + $javascript = <<<JS + (function(){ + var w = window, + d = document, + e = d.documentElement, + g = d.getElementsByTagName('body')[0], + x = w.innerWidth || e.clientWidth || g.clientWidth, + y = w.innerHeight || e.clientHeight|| g.clientHeight; + return x == 400 && y == 300; + }()); +JS; + + // We expected the following assertion to fail because the window has been + // re-sized to have a width of 500 not 400. + $this->setExpectedException(\PHPUnit_Framework_AssertionFailedError::class); + $this->assertJsCondition($javascript, 100); + } + + /** + * Tests creating screenshots. + */ + public function testCreateScreenshot() { + $this->drupalGet('<front>'); + $this->createScreenshot('public://screenshot.jpg'); + $this->assertFileExists('public://screenshot.jpg'); + } + +}