@@ -2,8 +2,6 @@ |
||
2 | 2 | |
3 | 3 | namespace Magium\Magento\Extractors\Catalog\LayeredNavigation\FilterTypes; |
4 | 4 | |
5 | -use Facebook\WebDriver\WebDriverBy; |
|
6 | -use Facebook\WebDriver\WebDriverElement; |
|
7 | 5 | use Magium\Magento\Extractors\Catalog\LayeredNavigation\FilterValue; |
8 | 6 | use Magium\Magento\Extractors\Catalog\LayeredNavigation\UnparseableValueException; |
9 | 7 |
@@ -44,8 +44,8 @@ |
||
44 | 44 | /* @var $elements \DOMElement[] */ |
45 | 45 | $returnElements = []; |
46 | 46 | foreach ($elements as $element) { |
47 | - $elementDocument = new \DOMDocument(); |
|
48 | - $html =$element->C14N(); |
|
47 | + $elementDocument = new \DOMDocument(); |
|
48 | + $html = $element->C14N(); |
|
49 | 49 | $elementDocument->loadXML($html); |
50 | 50 | $elementXpath = new \DOMXPath($elementDocument); |
51 | 51 | $titleElements = $elementXpath->query(sprintf('//*[@%s]', $this->theme->getLayeredNavigationSwatchTitleAttribute())); |
@@ -15,7 +15,9 @@ |
||
15 | 15 | { |
16 | 16 | $xpath = new \DOMXPath($this->document); |
17 | 17 | $xpathQuery = $this->theme->getLayeredNavigationSwatchAppliesXpath($this->title); |
18 | - if (!$xpathQuery) return false; |
|
18 | + if (!$xpathQuery) { |
|
19 | + return false; |
|
20 | + } |
|
19 | 21 | $elements = $xpath->query($xpathQuery); |
20 | 22 | return $elements->length > 0; |
21 | 23 | } |
@@ -80,6 +80,9 @@ |
||
80 | 80 | } |
81 | 81 | |
82 | 82 | |
83 | + /** |
|
84 | + * @param string $type |
|
85 | + */ |
|
83 | 86 | public function addFilterType($type) |
84 | 87 | { |
85 | 88 | $type = $this->filterTypeName($type); |
@@ -55,11 +55,11 @@ discard block |
||
55 | 55 | { |
56 | 56 | $returnType = $type; |
57 | 57 | if (strpos($type, '\\') === false) { |
58 | - $returnType = $this->baseNamespace . '\\' . $type; |
|
58 | + $returnType = $this->baseNamespace.'\\'.$type; |
|
59 | 59 | if (!class_exists($returnType)) { |
60 | 60 | $returnType = $type; |
61 | 61 | if (!class_exists($returnType)) { |
62 | - throw new InvalidFilterException('Filter type must exist: ' . $returnType); |
|
62 | + throw new InvalidFilterException('Filter type must exist: '.$returnType); |
|
63 | 63 | } |
64 | 64 | } |
65 | 65 | } |
@@ -69,12 +69,12 @@ discard block |
||
69 | 69 | |
70 | 70 | protected function validateFilterType($returnType) |
71 | 71 | { |
72 | - if ($returnType == $this->baseNamespace . '\AbstractFilterType') { |
|
72 | + if ($returnType == $this->baseNamespace.'\AbstractFilterType') { |
|
73 | 73 | return true; |
74 | 74 | } |
75 | 75 | $reflection = new \ReflectionClass($returnType); |
76 | - if (!$reflection->isSubclassOf($this->baseNamespace . '\AbstractFilterType')) { |
|
77 | - throw new InvalidFilterException('Filter type must extend AbstractFilterType: ' . $returnType); |
|
76 | + if (!$reflection->isSubclassOf($this->baseNamespace.'\AbstractFilterType')) { |
|
77 | + throw new InvalidFilterException('Filter type must extend AbstractFilterType: '.$returnType); |
|
78 | 78 | } |
79 | 79 | return true; |
80 | 80 | } |
@@ -131,7 +131,7 @@ discard block |
||
131 | 131 | return $this->filterValues[$filterKey]; |
132 | 132 | } |
133 | 133 | |
134 | - throw new MissingFilterException('Could not find the filter: ' . $filter); |
|
134 | + throw new MissingFilterException('Could not find the filter: '.$filter); |
|
135 | 135 | } |
136 | 136 | |
137 | 137 | public function extract() |
@@ -167,7 +167,7 @@ discard block |
||
167 | 167 | break; |
168 | 168 | } |
169 | 169 | } else { |
170 | - throw new InvalidFilterException('Filter type does not extend AbstractFilterType: ' . $type); |
|
170 | + throw new InvalidFilterException('Filter type does not extend AbstractFilterType: '.$type); |
|
171 | 171 | } |
172 | 172 | } |
173 | 173 | } |
@@ -25,6 +25,10 @@ |
||
25 | 25 | return $this->products; |
26 | 26 | } |
27 | 27 | |
28 | + /** |
|
29 | + * @param integer $count |
|
30 | + * @param string $attribute |
|
31 | + */ |
|
28 | 32 | protected function getByXpath($type, $count, $attribute = null, $getElement = false) |
29 | 33 | { |
30 | 34 | $xpath = $this->getElementXpath($type, $count); |
@@ -192,7 +192,7 @@ |
||
192 | 192 | } |
193 | 193 | |
194 | 194 | /** |
195 | - * @param string $billingFastName |
|
195 | + * @param string $billingLastName |
|
196 | 196 | */ |
197 | 197 | public function setBillingLastName($billingLastName) |
198 | 198 | { |
@@ -12,7 +12,7 @@ |
||
12 | 12 | { |
13 | 13 | const IDENTITY = 'Customer'; |
14 | 14 | |
15 | - public $emailAddress = '[email protected]'; |
|
15 | + public $emailAddress = '[email protected]'; |
|
16 | 16 | |
17 | 17 | public $billingFirstName = 'Kevin'; |
18 | 18 | public $billingLastName = 'Schroeder'; |
@@ -2,7 +2,6 @@ |
||
2 | 2 | |
3 | 3 | namespace Magium\Magento\Navigators\Catalog; |
4 | 4 | |
5 | -use Magium\Magento\Navigators\BaseMenu; |
|
6 | 5 | use Magium\Magento\Themes\AbstractThemeConfiguration; |
7 | 6 | |
8 | 7 | abstract class AbstractDefaultProduct |
@@ -300,7 +300,7 @@ discard block |
||
300 | 300 | } |
301 | 301 | |
302 | 302 | /** |
303 | - * @param string $shippinFirstNameXpath |
|
303 | + * @param string $shippingFirstNameXpath |
|
304 | 304 | */ |
305 | 305 | public function setShippingFirstNameXpath($shippingFirstNameXpath) |
306 | 306 | { |
@@ -404,6 +404,7 @@ discard block |
||
404 | 404 | } |
405 | 405 | |
406 | 406 | /** |
407 | + * @param string $region |
|
407 | 408 | * @return string |
408 | 409 | */ |
409 | 410 | public function getShippingRegionIdXpath($region) |
@@ -437,6 +438,7 @@ discard block |
||
437 | 438 | } |
438 | 439 | |
439 | 440 | /** |
441 | + * @param string $country |
|
440 | 442 | * @return string |
441 | 443 | */ |
442 | 444 | public function getShippingCountryIdXpath($country) |
@@ -517,6 +519,9 @@ discard block |
||
517 | 519 | $this->shippingContinueCompletedXpath = $shippingContinueCompletedXpath; |
518 | 520 | } |
519 | 521 | |
522 | + /** |
|
523 | + * @return string |
|
524 | + */ |
|
520 | 525 | public function getBillingContinueCompletedXpath() |
521 | 526 | { |
522 | 527 | return $this->translatePlaceholders($this->billingContinueCompletedXpath); |
@@ -589,6 +594,7 @@ discard block |
||
589 | 594 | } |
590 | 595 | |
591 | 596 | /** |
597 | + * @param string $region |
|
592 | 598 | * @return string |
593 | 599 | */ |
594 | 600 | public function getBillingRegionIdXpath($region) |
@@ -606,6 +612,7 @@ discard block |
||
606 | 612 | } |
607 | 613 | |
608 | 614 | /** |
615 | + * @param string $country |
|
609 | 616 | * @return string |
610 | 617 | */ |
611 | 618 | public function getBillingCountryIdXpath($country) |
@@ -673,6 +680,7 @@ discard block |
||
673 | 680 | |
674 | 681 | |
675 | 682 | /** |
683 | + * @param integer $itemCount |
|
676 | 684 | * @return string |
677 | 685 | */ |
678 | 686 | public function getCartSummaryCheckoutProductLoopPriceXpath($itemCount) |
@@ -682,6 +690,7 @@ discard block |
||
682 | 690 | } |
683 | 691 | |
684 | 692 | /** |
693 | + * @param integer $itemCount |
|
685 | 694 | * @return string |
686 | 695 | */ |
687 | 696 | public function getCartSummaryCheckoutProductLoopNameXpath($itemCount) |
@@ -691,6 +700,7 @@ discard block |
||
691 | 700 | } |
692 | 701 | |
693 | 702 | /** |
703 | + * @param integer $itemCount |
|
694 | 704 | * @return string |
695 | 705 | */ |
696 | 706 | public function getCartSummaryCheckoutProductLoopQtyXpath($itemCount) |
@@ -700,6 +710,7 @@ discard block |
||
700 | 710 | } |
701 | 711 | |
702 | 712 | /** |
713 | + * @param integer $itemCount |
|
703 | 714 | * @return string |
704 | 715 | */ |
705 | 716 | public function getCartSummaryCheckoutProductLoopSubtotalXpath($itemCount) |
@@ -260,9 +260,9 @@ |
||
260 | 260 | return $this->translatePlaceholders($this->shippingMethodContinueButtonXpath); |
261 | 261 | } |
262 | 262 | |
263 | - /** |
|
264 | - * @return string |
|
265 | - */ |
|
263 | + /** |
|
264 | + * @return string |
|
265 | + */ |
|
266 | 266 | public function getPlaceOrderButtonXpath() |
267 | 267 | { |
268 | 268 | return $this->translatePlaceholders($this->placeOrderButtonXpath); |
@@ -569,7 +569,7 @@ discard block |
||
569 | 569 | */ |
570 | 570 | public function getBillingAddressXpath() |
571 | 571 | { |
572 | - return$this->translatePlaceholders( $this->billingAddressXpath); |
|
572 | + return$this->translatePlaceholders($this->billingAddressXpath); |
|
573 | 573 | } |
574 | 574 | |
575 | 575 | /** |
@@ -677,7 +677,7 @@ discard block |
||
677 | 677 | */ |
678 | 678 | public function getCartSummaryCheckoutProductLoopPriceXpath($itemCount) |
679 | 679 | { |
680 | - $return = sprintf($this->cartSummaryCheckoutProductLoopPriceXpath , $itemCount); |
|
680 | + $return = sprintf($this->cartSummaryCheckoutProductLoopPriceXpath, $itemCount); |
|
681 | 681 | return $this->translatePlaceholders($return); |
682 | 682 | } |
683 | 683 | |
@@ -686,7 +686,7 @@ discard block |
||
686 | 686 | */ |
687 | 687 | public function getCartSummaryCheckoutProductLoopNameXpath($itemCount) |
688 | 688 | { |
689 | - $return = sprintf($this->cartSummaryCheckoutProductLoopNameXpath , $itemCount); |
|
689 | + $return = sprintf($this->cartSummaryCheckoutProductLoopNameXpath, $itemCount); |
|
690 | 690 | return $this->translatePlaceholders($return); |
691 | 691 | } |
692 | 692 | |
@@ -695,7 +695,7 @@ discard block |
||
695 | 695 | */ |
696 | 696 | public function getCartSummaryCheckoutProductLoopQtyXpath($itemCount) |
697 | 697 | { |
698 | - $return = sprintf($this->cartSummaryCheckoutProductLoopQtyXpath , $itemCount); |
|
698 | + $return = sprintf($this->cartSummaryCheckoutProductLoopQtyXpath, $itemCount); |
|
699 | 699 | return $this->translatePlaceholders($return); |
700 | 700 | } |
701 | 701 | |
@@ -704,7 +704,7 @@ discard block |
||
704 | 704 | */ |
705 | 705 | public function getCartSummaryCheckoutProductLoopSubtotalXpath($itemCount) |
706 | 706 | { |
707 | - $return = sprintf($this->cartSummaryCheckoutProductLoopSubtotalXpath , $itemCount); |
|
707 | + $return = sprintf($this->cartSummaryCheckoutProductLoopSubtotalXpath, $itemCount); |
|
708 | 708 | return $this->translatePlaceholders($return); |
709 | 709 | } |
710 | 710 |
@@ -57,7 +57,7 @@ discard block |
||
57 | 57 | public $shippingNewAddressXpath = '//select[@id="shipping-address-select"]/option[.="{{New Address}}"]'; |
58 | 58 | |
59 | 59 | public $billingContinueButtonXpath = '//div[@id="billing-buttons-container"]/descendant::button[@title="Continue"]'; |
60 | - public $billingContinueCompletedXpath = '//span[@id="billing-please-wait"]'; |
|
60 | + public $billingContinueCompletedXpath = '//span[@id="billing-please-wait"]'; |
|
61 | 61 | |
62 | 62 | |
63 | 63 | public $shippingFirstNameXpath = '//input[@id="shipping:firstname"]'; |
@@ -79,24 +79,24 @@ discard block |
||
79 | 79 | public $shippingTelephoneXpath = '//input[@id="shipping:telephone"]'; |
80 | 80 | public $shippingFaxXpath = '//input[@id="shipping:fax"]'; |
81 | 81 | public $shippingContinueButtonXpath = '//div[@id="shipping-buttons-container"]/descendant::button[@title="Continue"]'; |
82 | - public $shippingContinueCompletedXpath = '//span[@id="shipping-please-wait"]'; |
|
83 | - public $shippingMethodContinueCompletedXpath = '//span[@id="shipping-method-please-wait"]'; |
|
82 | + public $shippingContinueCompletedXpath = '//span[@id="shipping-please-wait"]'; |
|
83 | + public $shippingMethodContinueCompletedXpath = '//span[@id="shipping-method-please-wait"]'; |
|
84 | 84 | |
85 | 85 | public $shippingMethodContinueButtonXpath = '//div[@id="shipping-method-buttons-container"]/descendant::button'; |
86 | - public $defaultShippingXpath = '//input[@name="shipping_method"]'; |
|
86 | + public $defaultShippingXpath = '//input[@name="shipping_method"]'; |
|
87 | 87 | |
88 | 88 | public $paymentMethodContinueCompleteXpath = '//span[@id="payment-please-wait"]'; |
89 | 89 | |
90 | 90 | public $paymentMethodContinueButtonXpath = '//div[@id="payment-buttons-container"]/descendant::button'; |
91 | 91 | |
92 | - public $placeOrderButtonXpath = '//div[@id="review-buttons-container"]/descendant::button[@title="Place Order"]'; |
|
92 | + public $placeOrderButtonXpath = '//div[@id="review-buttons-container"]/descendant::button[@title="Place Order"]'; |
|
93 | 93 | |
94 | 94 | public $orderReceivedCompleteXpath = '//h1[.="Your order has been received."]'; |
95 | 95 | |
96 | 96 | public $shippingMethodFormXpath = '//form[@id="co-shipping-method-form"]'; |
97 | 97 | |
98 | 98 | public $passwordInputXpath = '//input[@id="billing:customer_password"]'; |
99 | - public $confirmPasswordInputXpath = '//input[@id="billing:confirm_password"]'; |
|
99 | + public $confirmPasswordInputXpath = '//input[@id="billing:confirm_password"]'; |
|
100 | 100 | |
101 | 101 | /** |
102 | 102 | * This is a hard one. Each of the summary checkout products will be iterated over until they cannot be found. Having |
@@ -113,10 +113,10 @@ discard block |
||
113 | 113 | public $cartSummaryCheckoutProductLoopQtyXpath = '(//table[@id="checkout-review-table"]/tbody/descendant::td[@data-rwd-label="{{Qty}}"])[%d]'; |
114 | 114 | public $cartSummaryCheckoutProductLoopSubtotalXpath = '(//table[@id="checkout-review-table"]/tbody/descendant::td[@data-rwd-label="{{Subtotal}}"])[%d]'; |
115 | 115 | |
116 | - public $cartSummaryCheckoutSubTotal = '//table[@id="checkout-review-table"]/tfoot/tr/td[concat(" ",normalize-space(.)," ") = " {{Subtotal}} "]/../td[2]'; |
|
117 | - public $cartSummaryCheckoutTax = '//table[@id="checkout-review-table"]/tfoot/tr/td[concat(" ",normalize-space(.)," ") = " {{Tax}} "]/../td[2]'; |
|
118 | - public $cartSummaryCheckoutGrandTotal = '//table[@id="checkout-review-table"]/tfoot/tr/td[concat(" ",normalize-space(.)," ") = " {{Grand Total}} "]/../td[2]'; |
|
119 | - public $cartSummaryCheckoutShippingTotal = '//table[@id="checkout-review-table"]/tfoot/tr/td[contains(concat(" ",normalize-space(.)," "), " {{Shipping & Handling}} (")]/../td[2]'; |
|
116 | + public $cartSummaryCheckoutSubTotal = '//table[@id="checkout-review-table"]/tfoot/tr/td[concat(" ",normalize-space(.)," ") = " {{Subtotal}} "]/../td[2]'; |
|
117 | + public $cartSummaryCheckoutTax = '//table[@id="checkout-review-table"]/tfoot/tr/td[concat(" ",normalize-space(.)," ") = " {{Tax}} "]/../td[2]'; |
|
118 | + public $cartSummaryCheckoutGrandTotal = '//table[@id="checkout-review-table"]/tfoot/tr/td[concat(" ",normalize-space(.)," ") = " {{Grand Total}} "]/../td[2]'; |
|
119 | + public $cartSummaryCheckoutShippingTotal = '//table[@id="checkout-review-table"]/tfoot/tr/td[contains(concat(" ",normalize-space(.)," "), " {{Shipping & Handling}} (")]/../td[2]'; |
|
120 | 120 | |
121 | 121 | |
122 | 122 | } |
123 | 123 | \ No newline at end of file |
@@ -15,20 +15,20 @@ discard block |
||
15 | 15 | /** |
16 | 16 | * @var string The Xpath string that finds the base of the navigation menu |
17 | 17 | */ |
18 | - public $navigationBaseXPathSelector = '//nav[@id="nav"]/ol'; |
|
18 | + public $navigationBaseXPathSelector = '//nav[@id="nav"]/ol'; |
|
19 | 19 | |
20 | 20 | /** |
21 | 21 | * @var string The Xpath string that can be used iteratively to find child navigation nodes |
22 | 22 | */ |
23 | 23 | |
24 | - public $navigationChildXPathSelector = 'a[concat(" ",normalize-space(.)," ") = " %s "]/..'; |
|
24 | + public $navigationChildXPathSelector = 'a[concat(" ",normalize-space(.)," ") = " %s "]/..'; |
|
25 | 25 | |
26 | 26 | /** |
27 | 27 | * @var string A simple, default path to use for categories. |
28 | 28 | */ |
29 | 29 | |
30 | - public $navigationPathToSimpleProductCategory = '{{Accessories}}/{{Jewelry}}'; |
|
31 | - public $navigationPathToConfigurableProductCategory = '{{Men}}/{{Shirts}}'; |
|
30 | + public $navigationPathToSimpleProductCategory = '{{Accessories}}/{{Jewelry}}'; |
|
31 | + public $navigationPathToConfigurableProductCategory = '{{Men}}/{{Shirts}}'; |
|
32 | 32 | |
33 | 33 | public $defaultSimpleProductName = '{{Blue Horizons Bracelets}}'; |
34 | 34 | public $defaultConfigurableProductName = '{{Plaid Cotton Shirt}}'; |
@@ -37,7 +37,7 @@ discard block |
||
37 | 37 | * @var string Xpath to add a Simple product to the cart from the product's page |
38 | 38 | */ |
39 | 39 | |
40 | - public $addToCartXpath = '//button[@title="{{Add to Cart}}" and contains(concat(" ",normalize-space(@class)," ")," btn-cart ")]'; |
|
40 | + public $addToCartXpath = '//button[@title="{{Add to Cart}}" and contains(concat(" ",normalize-space(@class)," ")," btn-cart ")]'; |
|
41 | 41 | |
42 | 42 | /** |
43 | 43 | * @var string Xpath to add a Simple product to the cart from the category page |
@@ -49,16 +49,16 @@ discard block |
||
49 | 49 | * @var string Xpath to find a product's link on a category page. Used to navigate to the product from the category |
50 | 50 | */ |
51 | 51 | |
52 | - public $categoryProductPageXpath = '//h2[@class="product-name"]/descendant::a'; |
|
52 | + public $categoryProductPageXpath = '//h2[@class="product-name"]/descendant::a'; |
|
53 | 53 | |
54 | - public $categorySpecificProductPageXpath = '//h2[@class="product-name"]/descendant::a[.="%s"]'; |
|
54 | + public $categorySpecificProductPageXpath = '//h2[@class="product-name"]/descendant::a[.="%s"]'; |
|
55 | 55 | |
56 | 56 | |
57 | 57 | /** |
58 | 58 | * @var string Xpath used after a product has been added to the cart to verify that the product has been added to the cart |
59 | 59 | */ |
60 | 60 | |
61 | - public $addToCartSuccessXpath = '//li[@class="success-msg" and contains(., "{{was added to your shopping cart}}")]'; |
|
61 | + public $addToCartSuccessXpath = '//li[@class="success-msg" and contains(., "{{was added to your shopping cart}}")]'; |
|
62 | 62 | |
63 | 63 | /** |
64 | 64 | * @var string The base URL of the installation |
@@ -72,12 +72,12 @@ discard block |
||
72 | 72 | * @var array Instructions in an Xpath array syntax to get to the login page. |
73 | 73 | */ |
74 | 74 | |
75 | - public $navigateToCustomerPageInstructions = [ |
|
75 | + public $navigateToCustomerPageInstructions = [ |
|
76 | 76 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@class="account-cart-wrapper"]/descendant::span[.="{{Account}}"]'], |
77 | 77 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@id="header-account"]/descendant::a[@title="{{My Account}}"]'] |
78 | 78 | ]; |
79 | 79 | |
80 | - public $cartNavigationInstructions = [ |
|
80 | + public $cartNavigationInstructions = [ |
|
81 | 81 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@class="account-cart-wrapper"]/descendant::span[.="{{Account}}"]'], |
82 | 82 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@id="header-account"]/descendant::a[contains(concat(" ",normalize-space(@class)," ")," top-link-cart ")]'] |
83 | 83 | ]; |
@@ -86,7 +86,7 @@ discard block |
||
86 | 86 | * @var array Instructions in an Xpath array syntax to get to the start of the checkout page |
87 | 87 | */ |
88 | 88 | |
89 | - public $checkoutNavigationInstructions = [ |
|
89 | + public $checkoutNavigationInstructions = [ |
|
90 | 90 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@class="header-minicart"]/descendant::span[.="{{Cart}}"]'], |
91 | 91 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@class="minicart-actions"]/descendant::a[@title="{{Checkout}}"]'] |
92 | 92 | ]; |
@@ -95,7 +95,7 @@ discard block |
||
95 | 95 | * @var array Instructions in an Xpath array syntax to get to the customer registration page |
96 | 96 | */ |
97 | 97 | |
98 | - public $registrationNavigationInstructions = [ |
|
98 | + public $registrationNavigationInstructions = [ |
|
99 | 99 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@class="account-cart-wrapper"]/descendant::span[.="{{Account}}"]'], |
100 | 100 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@id="header-account"]/descendant::a[@title="{{Register}}"]'] |
101 | 101 | ]; |
@@ -104,7 +104,7 @@ discard block |
||
104 | 104 | * @var array Instructions in an Xpath array syntax to get to the customer registration page |
105 | 105 | */ |
106 | 106 | |
107 | - public $logoutNavigationInstructions = [ |
|
107 | + public $logoutNavigationInstructions = [ |
|
108 | 108 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@class="account-cart-wrapper"]/descendant::span[.="{{Account}}"]'], |
109 | 109 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//div[@id="header-account"]/descendant::a[@title="{{Log Out}}"]'] |
110 | 110 | ]; |
@@ -132,7 +132,7 @@ discard block |
||
132 | 132 | public $productListOriginalPriceXpath = '/descendant::div[@class="price-box"]/descendant::p[@class="old-price"]/descendant::*[@class="price"]'; |
133 | 133 | public $productListPriceXpath = '/descendant::div[@class="price-box"]/descendant::*[@class="regular-price" or @class="special-price"]/descendant::span[@class="price"]'; |
134 | 134 | public $productListWishlistLinkXpath = '/descendant::ul[@class="add-to-links"]/descendant::a[@class="link-wishlist"]'; |
135 | - public $productListAddToCartLinkXpath = '/descendant::p[@class="action"]/descendant::button[contains(concat(" ",normalize-space(@class)," ")," btn-cart ")]'; |
|
135 | + public $productListAddToCartLinkXpath = '/descendant::p[@class="action"]/descendant::button[contains(concat(" ",normalize-space(@class)," ")," btn-cart ")]'; |
|
136 | 136 | |
137 | 137 | public $productGridBaseXpath = '//ul[contains(concat(" ",normalize-space(@class)," ")," products-grid ")]/li[%d]'; |
138 | 138 | public $productGridDescriptionXpath = '/*[.="no description in the grid view"]'; |
@@ -143,15 +143,15 @@ discard block |
||
143 | 143 | public $productGridOriginalPriceXpath = '/descendant::div[@class="price-box"]/descendant::p[@class="old-price"]/descendant::*[@class="price"]'; |
144 | 144 | public $productGridPriceXpath = '/descendant::div[@class="price-box"]/descendant::*[@class="regular-price" or @class="special-price"]/descendant::span[@class="price"]'; |
145 | 145 | public $productGridWishlistLinkXpath = '/descendant::ul[@class="add-to-links"]/descendant::a[@class="link-wishlist"]'; |
146 | - public $productGridAddToCartLinkXpath = '/descendant::div[@class="actions"]/descendant::button[contains(concat(" ",normalize-space(@class)," ")," btn-cart ")]'; |
|
146 | + public $productGridAddToCartLinkXpath = '/descendant::div[@class="actions"]/descendant::button[contains(concat(" ",normalize-space(@class)," ")," btn-cart ")]'; |
|
147 | 147 | |
148 | 148 | public $productCollectionViewModeXpath = '//p[@class="view-mode"]/strong'; |
149 | 149 | public $productCollectionSortByXpath = '//div[@class="sort-by"]/descendant::option[@selected]'; // We select using the div, not the title because the title may be translated |
150 | 150 | public $productCollectionShowCountXpath = '//div[@class="limiter"]/descendant::option[@selected]'; // dittos |
151 | - public $productCollectionShowCountOptionsXpath = '//div[@class="limiter"]/descendant::option'; |
|
151 | + public $productCollectionShowCountOptionsXpath = '//div[@class="limiter"]/descendant::option'; |
|
152 | 152 | public $productCollectionProductCountXpath = '//div[contains(concat(" ",normalize-space(@class)," ")," pager ")]/descendant::p[contains(concat(" ",normalize-space(@class)," ")," amount ")]'; |
153 | 153 | |
154 | - public $layeredNavigationBaseXpath = '//div[contains(concat(" ",normalize-space(@class)," ")," block-layered-nav ")]'; |
|
154 | + public $layeredNavigationBaseXpath = '//div[contains(concat(" ",normalize-space(@class)," ")," block-layered-nav ")]'; |
|
155 | 155 | |
156 | 156 | public $searchInputXpath = '//input[@id="search"]'; |
157 | 157 | public $searchSubmitXpath = '//form[@id="search_mini_form"]/descendant::button[@title="Search"]'; |
@@ -164,7 +164,7 @@ discard block |
||
164 | 164 | public $configurableProductLabelXpath = '//div[@id="product-options-wrapper"]/descendant::label'; |
165 | 165 | public $configurableSwatchSelectorXpath = '(%s)[%d]/ancestor::dt/following-sibling::dd[1]/descendant::a[%d]'; |
166 | 166 | public $configurableSwatchImgXpath = '(%s)[%d]/ancestor::dt/following-sibling::dd[1]/descendant::a[%d]/descendant::img'; |
167 | - public $configurableSwatchNotAvailableXpath = '(%s)[%d]/ancestor::dt/following-sibling::dd[1]/descendant::a[%d]/ancestor::li[contains(concat(" ",normalize-space(@class)," ")," not-available ")]'; |
|
167 | + public $configurableSwatchNotAvailableXpath = '(%s)[%d]/ancestor::dt/following-sibling::dd[1]/descendant::a[%d]/ancestor::li[contains(concat(" ",normalize-space(@class)," ")," not-available ")]'; |
|
168 | 168 | |
169 | 169 | public $configurableProductOptionXpath = '(%s)[%d]/ancestor::dt/following-sibling::dd[1]/descendant::option[starts-with(., "%s")]'; |
170 | 170 | |
@@ -173,17 +173,17 @@ discard block |
||
173 | 173 | public $breadCrumbMemberXpath = '/descendant::a[concat(" ",normalize-space(.)," ")=" {{%s}} "]'; |
174 | 174 | public $breadCrumbSelectorXpath = '/descendant::a[%d]'; |
175 | 175 | |
176 | - public $layeredNavigationFilterNameXpath = '//dl[@id="narrow-by-list"]/dt'; |
|
176 | + public $layeredNavigationFilterNameXpath = '//dl[@id="narrow-by-list"]/dt'; |
|
177 | 177 | |
178 | 178 | public $layeredNavigationFilterTypesXpath = '//dt[.="%s"]/following-sibling::dd[1]/descendant::li'; |
179 | 179 | public $layeredNavigationSwatchFilterTypesXpath = '//dt[.="%s"]/following-sibling::dd[1]/descendant::li'; |
180 | 180 | public $layeredNavigationFilterLinkXpath = '//dt[.="%s"]/following-sibling::dd[1]/descendant::li/descendant::a'; |
181 | - public $layeredNavigationFilterNameElementXpath = '//dl[@id="narrow-by-list"]/dt[normalize-space(.) = "%s"]'; |
|
181 | + public $layeredNavigationFilterNameElementXpath = '//dl[@id="narrow-by-list"]/dt[normalize-space(.) = "%s"]'; |
|
182 | 182 | |
183 | 183 | public $layeredNavigationSwatchAppliesXpath = '//dt[.="%s"]/following-sibling::dd[1]/descendant::ol[contains(concat(" ",normalize-space(@class)," ")," configurable-swatch-list ")]'; |
184 | 184 | public $layeredNavigationSwatchTitleAttribute = 'title'; |
185 | 185 | |
186 | - public $storeSwitcherInstructionsXpath = [ |
|
186 | + public $storeSwitcherInstructionsXpath = [ |
|
187 | 187 | [\Magium\WebDriver\WebDriver::INSTRUCTION_MOUSE_CLICK, '//select[@id="select-language"]/descendant::option[contains(@value,"___store=%s")]'], |
188 | 188 | ]; |
189 | 189 |
@@ -7,26 +7,26 @@ discard block |
||
7 | 7 | class ThemeConfiguration extends AbstractThemeConfiguration |
8 | 8 | { |
9 | 9 | |
10 | - public $accountNavigationXpath = '//div[contains(concat(" ",normalize-space(@class)," ")," block-account ")]/descendant::a[.="%s"]'; |
|
10 | + public $accountNavigationXpath = '//div[contains(concat(" ",normalize-space(@class)," ")," block-account ")]/descendant::a[.="%s"]'; |
|
11 | 11 | public $accountSectionHeaderXpath = '//div[contains(concat(" ",normalize-space(@class)," ")," col-main ")]/descendant::h1[.="%s"]'; |
12 | 12 | |
13 | - public $orderPageName = '{{My Orders}}'; |
|
13 | + public $orderPageName = '{{My Orders}}'; |
|
14 | 14 | |
15 | 15 | public $viewOrderLinkXpath = '//td[@class="number" and .="%s"]/../td/descendant::a[.="{{View Order}}"]'; |
16 | 16 | |
17 | - public $orderPageTitleContainsText = '{{Order}} #'; |
|
17 | + public $orderPageTitleContainsText = '{{Order}} #'; |
|
18 | 18 | |
19 | 19 | /** |
20 | 20 | * @var string Xpath for the customer email form element |
21 | 21 | */ |
22 | 22 | |
23 | - public $loginUsernameField = '//input[@type="email" and @id="email"]'; |
|
23 | + public $loginUsernameField = '//input[@type="email" and @id="email"]'; |
|
24 | 24 | |
25 | 25 | /** |
26 | 26 | * @var string Xpath for the customer password form element |
27 | 27 | */ |
28 | 28 | |
29 | - public $loginPasswordField = '//input[@type="password" and @id="pass"]'; |
|
29 | + public $loginPasswordField = '//input[@type="password" and @id="pass"]'; |
|
30 | 30 | |
31 | 31 | |
32 | 32 | /** |
@@ -41,19 +41,19 @@ discard block |
||
41 | 41 | public $orderShippingMethod = '//h2[.="{{Shipping Method}}"]/../../descendant::div[contains(concat(" ",normalize-space(@class)," ")," box-content ")]'; |
42 | 42 | public $orderPaymentMethod = '//h2[.="{{Payment Method}}"]/../../descendant::div[contains(concat(" ",normalize-space(@class)," ")," box-content ")]'; |
43 | 43 | |
44 | - public $orderItemNameXpath = '//table[@id="my-orders-table"]/tbody/tr[%d]/descendant::h3[contains(concat(" ",normalize-space(@class)," ")," product-name ")]'; |
|
44 | + public $orderItemNameXpath = '//table[@id="my-orders-table"]/tbody/tr[%d]/descendant::h3[contains(concat(" ",normalize-space(@class)," ")," product-name ")]'; |
|
45 | 45 | public $orderItemSkuXpath = '//table[@id="my-orders-table"]/tbody/tr[%d]/descendant::td[@data-rwd-label="SKU"]'; |
46 | - public $orderItemPriceXpath = '//table[@id="my-orders-table"]/tbody/tr[%d]/descendant::td[@data-rwd-label="Price"]/descendant::span[@class="price"]'; |
|
46 | + public $orderItemPriceXpath = '//table[@id="my-orders-table"]/tbody/tr[%d]/descendant::td[@data-rwd-label="Price"]/descendant::span[@class="price"]'; |
|
47 | 47 | public $orderItemQtyXpath = '//table[@id="my-orders-table"]/tbody/tr[%d]/descendant::td[@data-rwd-label="Qty"]'; |
48 | 48 | |
49 | 49 | public $orderItemQtyOrderedRegex = '/{{Ordered}}:\s+(\d+)/'; |
50 | 50 | public $orderItemQtyShippedRegex = '/{{Shipped}}:\s+(\d+)/'; |
51 | 51 | |
52 | - public $orderItemSubtotalXpath = '//table[@id="my-orders-table"]/tbody/tr[%d]/descendant::td[@data-rwd-label="Subtotal"]/descendant::span[@class="price"]'; |
|
52 | + public $orderItemSubtotalXpath = '//table[@id="my-orders-table"]/tbody/tr[%d]/descendant::td[@data-rwd-label="Subtotal"]/descendant::span[@class="price"]'; |
|
53 | 53 | |
54 | 54 | public $orderSubtotalXpath = '//table[@id="my-orders-table"]/descendant::tr[contains(concat(" ",normalize-space(@class)," ")," subtotal ")]/td[2]/span[@class="price"]'; |
55 | 55 | public $orderShippingAndHandlingXpath = '//table[@id="my-orders-table"]/descendant::tr[contains(concat(" ",normalize-space(@class)," ")," shipping ")]/td[2]/span[@class="price"]'; |
56 | - public $orderTaxXpath = '//table[@id="my-orders-table"]/descendant::td[concat(" ",normalize-space(.)," ") = " {{Tax}} "]/following-sibling::td[1]/span[@class="price"]'; |
|
56 | + public $orderTaxXpath = '//table[@id="my-orders-table"]/descendant::td[concat(" ",normalize-space(.)," ") = " {{Tax}} "]/following-sibling::td[1]/span[@class="price"]'; |
|
57 | 57 | public $orderGrandTotalXpath = '//table[@id="my-orders-table"]/descendant::tr[contains(concat(" ",normalize-space(@class)," ")," grand_total ")]/td[2]/descendant::span[@class="price"]'; |
58 | 58 | |
59 | 59 | public $orderDateXpath = '//p[@class="order-date"]'; |