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 }
|