Version 1
[yaffs-website] / vendor / jcalderonzumba / gastonjs / src / Exception / MouseEventFailed.php
diff --git a/vendor/jcalderonzumba/gastonjs/src/Exception/MouseEventFailed.php b/vendor/jcalderonzumba/gastonjs/src/Exception/MouseEventFailed.php
new file mode 100644 (file)
index 0000000..abd72d3
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+
+namespace Zumba\GastonJS\Exception;
+
+/**
+ * Class MouseEventFailed
+ * @package Zumba\GastonJS\Exception
+ */
+class MouseEventFailed extends NodeError {
+
+  /**
+   * Gets the name of the event
+   * @return string
+   */
+  public function getName() {
+    return $this->response["args"][0];
+  }
+
+  /**
+   * Selector of the element to act with the mouse
+   * @return string
+   */
+  public function getSelector() {
+    return $this->response["args"][1];
+  }
+
+  /**
+   * Returns the position where the click was done
+   * @return array
+   */
+  public function getPosition() {
+    $position = array();
+    $position[0] = $this->response["args"][1]['x'];
+    $position[1] = $this->response["args"][2]['y'];
+    return $position;
+  }
+
+  /**
+   * @return string
+   */
+  public function message() {
+    $name = $this->getName();
+    $position = implode(",", $this->getPosition());
+    return "Firing a $name at co-ordinates [$position] failed. Poltergeist detected
+            another element with CSS selector '#{selector}' at this position.
+            It may be overlapping the element you are trying to interact with.
+            If you don't care about overlapping elements, try using node.trigger('$name').";
+  }
+}