Mercurial > hg > isophonics-drupal-site
diff core/tests/Drupal/FunctionalJavascriptTests/BrowserWithJavascriptTest.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/tests/Drupal/FunctionalJavascriptTests/BrowserWithJavascriptTest.php Thu Feb 28 13:21:36 2019 +0000 @@ -0,0 +1,63 @@ +<?php + +namespace Drupal\FunctionalJavascriptTests; + +/** + * Tests if we can execute JavaScript in the browser. + * + * @group javascript + */ +class BrowserWithJavascriptTest extends WebDriverTestBase { + + 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'); + } + +}