annotate core/modules/simpletest/tests/src/FunctionalJavascript/BrowserWithJavascriptTest.php @ 1:1a348b17ec81

Logo and header background
author Chris Cannam
date Thu, 30 Nov 2017 14:56:35 +0000
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\simpletest\FunctionalJavascript;
Chris@0 4
Chris@0 5 use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
Chris@0 6
Chris@0 7 /**
Chris@0 8 * Tests if we can execute JavaScript in the browser.
Chris@0 9 *
Chris@0 10 * @group javascript
Chris@0 11 */
Chris@0 12 class BrowserWithJavascriptTest extends JavascriptTestBase {
Chris@0 13
Chris@0 14 public function testJavascript() {
Chris@0 15 $this->drupalGet('<front>');
Chris@0 16 $session = $this->getSession();
Chris@0 17
Chris@0 18 $session->resizeWindow(400, 300);
Chris@0 19 $javascript = <<<JS
Chris@0 20 (function(){
Chris@0 21 var w = window,
Chris@0 22 d = document,
Chris@0 23 e = d.documentElement,
Chris@0 24 g = d.getElementsByTagName('body')[0],
Chris@0 25 x = w.innerWidth || e.clientWidth || g.clientWidth,
Chris@0 26 y = w.innerHeight || e.clientHeight|| g.clientHeight;
Chris@0 27 return x == 400 && y == 300;
Chris@0 28 }());
Chris@0 29 JS;
Chris@0 30 $this->assertJsCondition($javascript);
Chris@0 31 }
Chris@0 32
Chris@0 33 public function testAssertJsCondition() {
Chris@0 34 $this->drupalGet('<front>');
Chris@0 35 $session = $this->getSession();
Chris@0 36
Chris@0 37 $session->resizeWindow(500, 300);
Chris@0 38 $javascript = <<<JS
Chris@0 39 (function(){
Chris@0 40 var w = window,
Chris@0 41 d = document,
Chris@0 42 e = d.documentElement,
Chris@0 43 g = d.getElementsByTagName('body')[0],
Chris@0 44 x = w.innerWidth || e.clientWidth || g.clientWidth,
Chris@0 45 y = w.innerHeight || e.clientHeight|| g.clientHeight;
Chris@0 46 return x == 400 && y == 300;
Chris@0 47 }());
Chris@0 48 JS;
Chris@0 49
Chris@0 50 // We expected the following assertion to fail because the window has been
Chris@0 51 // re-sized to have a width of 500 not 400.
Chris@0 52 $this->setExpectedException(\PHPUnit_Framework_AssertionFailedError::class);
Chris@0 53 $this->assertJsCondition($javascript, 100);
Chris@0 54 }
Chris@0 55
Chris@0 56 /**
Chris@0 57 * Tests creating screenshots.
Chris@0 58 */
Chris@0 59 public function testCreateScreenshot() {
Chris@0 60 $this->drupalGet('<front>');
Chris@0 61 $this->createScreenshot('public://screenshot.jpg');
Chris@0 62 $this->assertFileExists('public://screenshot.jpg');
Chris@0 63 }
Chris@0 64
Chris@0 65 }