From a22a3bbee30209b0874f0202b436a9f5bd0680a4 Mon Sep 17 00:00:00 2001 From: Alaa Jwiehan <alaajwiehan@3695587.no-reply.drupal.org> Date: Thu, 23 Dec 2021 10:54:20 +0000 Subject: [PATCH] Update VarbaseContext.php --- tests/features/bootstrap/VarbaseContext.php | 244 +++++++++++++++++++- 1 file changed, 243 insertions(+), 1 deletion(-) diff --git a/tests/features/bootstrap/VarbaseContext.php b/tests/features/bootstrap/VarbaseContext.php index d0fb4d34..090e695f 100644 --- a/tests/features/bootstrap/VarbaseContext.php +++ b/tests/features/bootstrap/VarbaseContext.php @@ -664,6 +664,248 @@ class VarbaseContext extends RawDrupalContext implements SnippetAcceptingContext } + + /** + * Section Configuration Functions + * + * ========================================================= + */ + + /** + * Select a section container type + * + * Varbase Context #varbase + * + * Example #1: When I select the "Edge to Edge" container type + * Example #2: And I select the "Boxed" container type + * + * @Then I select the :arg1 container type + */ + public function iSelectTheContainerType($name) + { + $element = $this->getSession()->getPage()->find('xpath', "//label[contains(.,'$name') and contains(@for, 'edit-layout-settings-ui-tab-content-layout-container-type')]"); + $element->click(); + } + + /** + * Select a section container width + * + * Varbase Context #varbase + * + * Example #1: When I select the "Tiny" container width + * Example #2: And I select the "Narrow" container width + * + * @Then I select the :arg1 container width + */ + public function iSelectTheContainerWidth($width) + { + $element = $this->getSession()->getPage()->find('xpath', "//label[contains(.,'$width') and contains(@for, 'edit-layout-settings-ui-tab-content-layout-container-width')]"); + $element->click(); + } + + + /** + * Select a section breakpoint + * + * Varbase Context #varbase + * + * Example #1: Then I select the "md" "33% 67%" breakpoint + * Example #2: Then I select the "xs" "75% 25%" breakpoint + * + * + * @Then I select the :arg1 :arg2 breakpoint + */ + public function iSelectTheBreakpoint($size, $point) + { + + $element = $this->getSession()->getPage()->find('xpath', "//*[contains(@class,'$size') and contains(.,'$point')]"); + $element->click(); + } + + + + /** + * Select with gutters option for section + * + * Varbase Context #varbase + * + * Example: And I add gutters + * + * @Then I add gutters + */ + public function iAddGutters() + { + $with_gutters = $this->getSession()->getPage()->find('xpath', "//label[contains(., 'With Gutters')]"); + $with_gutters->click(); + } + + + + + /** + * Remove gutters between columns + * + * Varbase Context #varbase + * + * Example: And I remove gutters between columns + * + * @Then I remove gutters between columns + */ + public function iRemoveGuttersBetweenColumns() + { + $no_gutters = $this->getSession()->getPage()->find('xpath', "//*[contains(@class, 'vlb_gutters_between')]"); + $no_gutters->click(); + } + + + + /** + * Move to the styles tab + * + * Varbase Context #varbase + * + * Example: When I move to the styles tab + * + * @Then I move to the styles tab + */ + public function iMoveToTheStylesTab() + { + $styles_tab = $this->getSession()->getPage()->find('xpath', "//a[contains(@data-target, 'appearance')]"); + $styles_tab->click(); + } + + + + /** + * Open a specific setting menu under styles tab in section configuration + * + * Varbase Context #varbase + * + * Example #1: And I open the "Background" settings menu + * Example #2: When I open the "Border" settings menu + * + * @Then I open the :arg1 settings menu + */ + public function iOpenTheSettingsMenu($menu) + { + $menu = $this->getSession()->getPage()->find('xpath', "//span[contains(., '$menu') and contains(@class, 'bs-group-title')]"); + $menu->click(); + } + + + + /** + * Select a background color + * + * Varbase Context #varbase + * + * Example #1: Then I select the "Primary" background color + * Example #2: And I select the "Light" background color + * + * @Then I select the :arg1 background color + */ + public function iSelectTheBackgroundColor($bg_color){ + $bg_color = $this->getSession()->getPage()->find('xpath', "//label[contains(., '$bg_color') and contains(@for, 'edit-layout-settings-ui-tab-content-appearance-background-background-color')]"); + $bg_color->click(); + } + + + + /** + * Uncheck the Edge to Edge Background option + * + * Varbase Contaxt #varbase + * + * Example: And I uncheck the Edge to Edge Background + * + * @Then I uncheck the Edge to Edge Background + */ + public function iUncheckTheEdgeToEdgeBackground() { + $e2e = $this->getSession()->getPage()->find('xpath', "//input[contains(@class, 'field-background-edge-to-edge')]"); + $e2e->click(); + } + + + /** + * Select a text color + * + * Varbase Context #varbase + * + * Example #1: Then I select the "Dark" text color + * Example #2: And I select the "White" text color + * + * @Then I select the :arg1 text color + */ + public function iSelectTheTextColor($color){ + $text_color = $this->getSession()->getPage()->find('xpath', "//label[contains(., '$color') and contains(@for, 'edit-layout-settings-ui-tab-content-appearance-typography-text-color-text')]"); + $text_color->click(); + } + + + + /** + * Set alignment of text + * + * Varbase Context #varbase + * + * Example #1: Then I set the alignment to "End" + * Example #2: And I set the alignment to "Start" + * + * @Then I set the alignment to :arg1 + */ + public function iSetTheAlignmentTo($align) { + $alignment = $this->getSession()->getPage()->find('xpath', "//label[contains(., '$align') and contains(@for, 'edit-layout-settings-ui-tab-content-appearance-typography-text-alignment')]"); + $alignment->click(); + } + + + /** + * Set horizontal alignment for blocks + * + * Varbase Context #varbase + * + * Example #1: Then I set the Horizontal alignment to "Align center" + * Example #2: And I set the horizontal alignment to "Align start" + * + * @Then I set the Horizontal alignment to :arg1 + */ + public function iSetTheHorizontalAlignmentTo($h_align) { + $horizontal_alignment = $this->getSession()->getPage()->find('xpath', "//label[contains(., '$h_align') and contains(@for, 'edit-layout-settings-ui-tab-content-appearance-alignment-horizontal-alignment-justify-content')]"); + $horizontal_alignment->click(); + } + + + /** + * Set vertical alignment for blocks + * + * Varbase Context #varbase + * + * Example #1: Then I set the Vertical alignment to "Align bottom" + * Example #2: And I set the Vertical alignment to "Align middle" + * + * @Then I set the Vertical alignment to :arg1 + */ + public function iSetTheVerticalAlignmentTo($v_align) { + $vertical_alignment = $this->getSession()->getPage()->find('xpath', "//label[contains(., '$v_align') and contains(@for, 'edit-layout-settings-ui-tab-content-appearance-alignment-vertical-alignment-align-items')]"); + $vertical_alignment->click(); + } + + + /** + * Select an animation for a section + * + * Varbase Context #varbase + * + * Example #1: Then I select the "Flip Right" animation + * Example #2: When I select the "Zoom Out" animation + * + * @Then I select the :arg1 animation + */ + public function iSelectTheAnimation($anime) { + $animation = $this->getSession()->getPage()->find('xpath', "//label[contains(., '$anime') and contains(@for, 'edit-layout-settings-ui-tab-content-appearance-animation-scroll-effects')]"); + $animation->click(); + } + /** * Images Functions. * @@ -1864,4 +2106,4 @@ JS; } } -} \ No newline at end of file +} -- GitLab