Version 1
[yaffs-website] / vendor / jcalderonzumba / gastonjs / tests / unit / BrowserPageFindTest.php
diff --git a/vendor/jcalderonzumba/gastonjs/tests/unit/BrowserPageFindTest.php b/vendor/jcalderonzumba/gastonjs/tests/unit/BrowserPageFindTest.php
new file mode 100644 (file)
index 0000000..bd7b186
--- /dev/null
@@ -0,0 +1,91 @@
+<?php
+namespace Zumba\GastonJS\Tests;
+
+use Zumba\GastonJS\Exception\BrowserError;
+use Zumba\GastonJS\Exception\InvalidSelector;
+use Zumba\GastonJS\Exception\ObsoleteNode;
+
+/**
+ * Class BrowserPageFindTest
+ * @package Zumba\GastonJS\Tests
+ */
+class BrowserPageFindTest extends BrowserCommandsTestCase {
+
+  public function testFindElementNoPage() {
+    $notFound = $this->browser->find("xpath", '//*[@id="form_1014473"]');
+    $this->assertEquals(0, $notFound["page_id"]);
+  }
+
+  public function testFindInvalidSelector() {
+    $selector = "xpath";
+    $invalidSelection = '//*INVALID_SELECTOR[@id="form_1014473"]';
+    try {
+      $this->browser->find($selector, $invalidSelection);
+    } catch (InvalidSelector $e) {
+      $this->assertEquals($selector, $e->getMethod());
+      $this->assertEquals($invalidSelection, $e->getSelector());
+    }
+  }
+
+  public function testFindElementPage() {
+    $this->visitUrl($this->getTestPageBaseUrl() . "/test/standard_form/form.html");
+    $element = $this->browser->find("xpath", '//*[@id="form_1014473"]');
+    $this->assertEquals(1, $element["page_id"]);
+    $this->assertEquals(0, $element["ids"][0]);
+    $cssElement = $this->browser->find("css", "#form_1014473 > div");
+    $this->assertEquals(1, $cssElement["page_id"]);
+    $this->assertEquals(1, $cssElement["ids"][0]);
+  }
+
+  public function testFindWithinElementNoPage() {
+    try {
+      $this->browser->findWithin(1, 0, "xpath", '//*[@id="li_1"]');
+    } catch (\Exception $e) {
+      $this->assertInstanceOf("Zumba\\GastonJS\\Exception\\ObsoleteNode", $e);
+    }
+  }
+
+  public function testFindWithinElementPage() {
+    $this->visitUrl($this->getTestPageBaseUrl() . "/test/standard_form/form.html");
+    $this->browser->find("css", "#form_1014473");
+    $withinElement = $this->browser->findWithin(1, 0, "css", "div");
+    $this->assertCount(4, $withinElement);
+  }
+
+  public function testGetParents() {
+    $this->visitUrl($this->getTestPageBaseUrl() . "/test/standard_form/form.html");
+    $this->browser->find("xpath", '//*[@id="form_1014473"]');
+    $this->assertArraySubset(array(1, 2, 3), $this->browser->getParents(1, 0));
+  }
+
+  public function testTagName() {
+    $this->visitUrl($this->getTestPageBaseUrl() . "/test/standard_form/form.html");
+    $this->browser->find("xpath", '//*[@id="form_1014473"]');
+    $this->assertEquals("form", $this->browser->tagName(1, 0));
+  }
+
+  public function testEquals() {
+    $this->visitUrl($this->getTestPageBaseUrl() . "/test/standard_form/form.html");
+    try {
+      $this->browser->equals(1, 0, 1);
+    } catch (ObsoleteNode $e) {
+    }
+    //TODO: equals method seems to be broken or i do not know how to use it
+  }
+
+  public function testIsVisible() {
+    $this->visitUrl($this->getTestPageBaseUrl() . "/static/basic.html");
+    $this->browser->find("xpath", '//*[@id="break"]');
+    $this->assertTrue($this->browser->isVisible(1, 0));
+    $this->browser->find("xpath", '/html/body/p[1]');
+    $this->assertFalse($this->browser->isVisible(1, 1));
+  }
+
+  public function testIsDisabled() {
+    $this->visitUrl($this->getTestPageBaseUrl() . "/static/basic.html");
+    $this->browser->find("xpath", '//*[@id="disabled_check"]');
+    $this->browser->find("xpath", '//*[@id="enabled_check"]');
+    $this->assertTrue($this->browser->isDisabled(1, 0));
+    $this->assertFalse($this->browser->isDisabled(1, 1));
+  }
+}