public void ItemsFromEachCategory_DragAndDropToTargetArea_TargetAreaContainsTheItems()
        {
            var droppablePage     = new DroppablePage(this.driver);
            InteractionPages drop = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the current test method name (TestContext.CurrentContext.Test.Name = DefaultFunctionality_DragToOppositeCorner_ElementMovedToOppositeCorner) and use it as a Key in the xlsx file

            // Get the tab number (e.g. "Default functionality", "Prevent propagation") from the test property above and give it to the URL
            droppablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Droppable test tab Number:").ToString();
            droppablePage.NavigateTo(droppablePage.URL);
            // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", droppablePage.TopOfPage);
            // Find by one element from each Category accoeding to Data Driven xlsx


            // Open the respective category, Drag the elements to cart (to Target)
            droppablePage.OpenCategory(1);
            Thread.Sleep(1000);
            droppablePage.DragAndDrop3(drop.Item1, droppablePage.TargetElementTab5);
            droppablePage.OpenCategory(2);
            Thread.Sleep(1000);
            droppablePage.DragAndDrop3(drop.Item2, droppablePage.TargetElementTab5);
            droppablePage.OpenCategory(3);
            Thread.Sleep(1000);
            droppablePage.DragAndDrop3(drop.Item3, droppablePage.TargetElementTab5);
            Thread.Sleep(1000);
            droppablePage.AssertTargetContains(drop.Item1);
            droppablePage.AssertTargetContains(drop.Item2);
            droppablePage.AssertTargetContains(drop.Item3);
        }
        public void ConstrainMovementHorizontal_DragDiagonally_ElementMovedHorizontallyOnly()
        {
            var draggablePage     = new DraggablePage(this.driver);
            InteractionPages drag = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name); // Get the current test method name (TestContext.CurrentContext.Test.Name = ConstrainMovementHorizontal_DragDiagonally_ElementMovedHorizontallyOnly) and use it as a Key in the xlsx file

            // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL
            draggablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Draggable test tab Number:").ToString();
            draggablePage.NavigateTo(draggablePage.URL);
            // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", draggablePage.TopOfPage);

            draggablePage.DragObject(int.Parse(drag.HorizontalOffset), int.Parse(drag.VerticalOffset), draggablePage.DraggableElementConstraint);

            draggablePage.AssertElementIsMovedCorrectly(int.Parse(drag.HorizontalOffset), 0, draggablePage.DraggableElementConstraint);
        }
        public void ResizableConstrainedItem_ResizeSidesMoreThanConstraints_ItemResizeConstrainedByConstraints()
        {
            var resizablePage = new ResizablePage(this.driver);
            // Get the current test method name and use it as a Key in the xlsx file
            InteractionPages resize = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name);

            // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL
            resizablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Resizable test tab Number:").ToString();
            resizablePage.NavigateTo(resizablePage.URL);
            // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", resizablePage.TopOfPage);

            resizablePage.IncreaseWidthAndHeightBy3(int.Parse(resize.HorizontalOffset), int.Parse(resize.VerticalOffset));

            resizablePage.AssertResizableSizeSmallerThanOrEqualToConstraints(resizablePage.resizableElementTab5, resize);
        }
Example #4
0
        public void SelectableItems_SelectTwoNonAdjacent_SelectedElementsStatusChangedToSelected()
        {
            var selectablePage = new SelectablePage(this.driver);
            // Get the current test method name (TestContext.CurrentContext.Test.Name = SelectableItems_SelectTwoNonAdjacent_SelectedElementsStatusChangedToSelected) and use it as a Key in the xlsx file
            InteractionPages select = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name);

            // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL
            selectablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Selectable test tab Number:").ToString();
            selectablePage.NavigateTo(selectablePage.URL);
            // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", selectablePage.TopOfPage);

            selectablePage.SelectSelectableElements(this.driver, selectablePage.SelectableItems[int.Parse(select.Item1)], selectablePage.SelectableItems[int.Parse(select.Item2)]);

            selectablePage.AssertSelectedAttribute("ui-widget-content ui-corner-left ui-selectee ui-selected", selectablePage.SelectableItems[int.Parse(select.Item1)]);
            selectablePage.AssertSelectedAttribute("ui-widget-content ui-corner-left ui-selectee ui-selected", selectablePage.SelectableItems[int.Parse(select.Item2)]);
        }
        public void ResizableItem_ResizeSides_ItemSidesResizedProperly()
        {
            var resizablePage = new ResizablePage(this.driver);
            // Get the current test method name (TestContext.CurrentContext.Test.Name = ResizableItem_ResizeSides_ItemSidesResizedProperly) and use it as a Key in the xlsx file
            InteractionPages resize = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name);

            // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL
            resizablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Resizable test tab Number:").ToString();
            resizablePage.NavigateTo(resizablePage.URL);
            // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", resizablePage.TopOfPage);

            resizablePage.IncreaseWidthAndHeightBy2(int.Parse(resize.HorizontalOffset), int.Parse(resize.VerticalOffset));

            // Exact Assert would not pass because the resized item's dimensions are 17 pixels less than logically expected
            // See method AssertSizeIncreasedWith2 for details
            resizablePage.AssertSizeIncreasedWith2(int.Parse(resize.HorizontalOffset), int.Parse(resize.VerticalOffset));
        }
        public void DraggableAndSortable_DragItem2ToListBottom_Item2IsAtListBottom()
        {
            var draggablePage = new DraggablePage(this.driver);
            // Get the current test method name and use it as a Key in the xlsx file
            InteractionPages drag = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name);

            // Get the tab number (e.g. "Default functionality", Constrain movement") from the test property above and give it to the URL
            draggablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Draggable test tab Number:").ToString();
            draggablePage.NavigateTo(draggablePage.URL);
            // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", draggablePage.TopOfPage);

            draggablePage.DragObject(int.Parse(drag.HorizontalOffset), int.Parse(drag.VerticalOffset), draggablePage.DraggableSortableElement2);

            // Assert that the element 5 from the list now has text "Item 2"
            // Thread.Sleep(1000); - deprecated because I use now a sleeker wait in the AssertSortableElementIsMovedAtBottom()
            draggablePage.AssertSortableElementIsMovedAtBottom("Item 2");
        }
        public void Grid_DragOneSortableItemAfterAnother_OrderOfNumberedSortableItemsChangedAccordingly()
        {
            var sortablePage = new SortablePage(this.driver);
            // Get the current test method name and use it as a Key in the xlsx file
            InteractionPages sort = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name);

            // Get the webpage tab number (e.g. "Default functionality", Connect Lists") from the Test Property above and give it to the URL
            sortablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Sortable test tab Number:").ToString();
            sortablePage.NavigateTo(sortablePage.URL);
            // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", sortablePage.TopOfPage);
            // Get the element 1 and its initial position
            IWebElement element1 = sortablePage.SortableElementsTab3[int.Parse(sort.Item1) - 1];
            Point       expectedElement1PositionAfter = sortablePage.SortableElementsTab3[int.Parse(sort.Item2) - 1].Location;

            // Drag desired (given in xlsx file) Sortable Item 1 after given Sortable Item 2
            sortablePage.DragAndDropSortableAfterElement(this.driver, sortablePage.SortableElementsTab3[int.Parse(sort.Item1) - 1], sortablePage.SortableElementsTab3[int.Parse(sort.Item2) - 1]);

            sortablePage.AssertElement1MovedToElement2Position(this.driver, expectedElement1PositionAfter, element1);
        }
        public void ConnectLists_DragOneSortableItemFromFirstListToSecondList_NumberOfItemsChangedAccordingly()
        {
            var sortablePage = new SortablePage(this.driver);
            // Get the current test method name and use it as a Key in the xlsx file
            InteractionPages sort = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name);

            // Get the webpage tab number (e.g. "Default functionality", Connect Lists") from the Test Property above and give it to the URL
            sortablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Sortable test tab Number:").ToString();
            sortablePage.NavigateTo(sortablePage.URL);
            // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", sortablePage.TopOfPage);
            // Get the initial number of elements in each column
            var SortableItemsColumn1CountBefore = sortablePage.SortableItemsColumn1.Count;
            var SortableItemsColumn2CountBefore = sortablePage.SortableItemsColumn2.Count;

            // Drag desired (given in xlsx file) Sortable Item from column 1 to column 2
            sortablePage.DragAndDropSortableElement(this.driver, sortablePage.SortableItemsColumn1[int.Parse(sort.Item1) - 1], sortablePage.SortableColumn2);

            sortablePage.Column1ElementCountDecreased(this.driver, sortablePage.SortableItemsColumn1, SortableItemsColumn1CountBefore);
            sortablePage.Column2ElementCountIncreased(this.driver, sortablePage.SortableItemsColumn2, SortableItemsColumn2CountBefore);
        }
        public void DefaultFunctionality_DragLastItemToListTop_LastItemIsAtListTop()
        {
            var sortablePage = new SortablePage(this.driver);
            // Get the current test method name and use it as a Key in the xlsx file
            InteractionPages sort = AccessExcelData.GetInteractionTestsData(TestContext.CurrentContext.Test.Name);

            // Get the tab number (e.g. "Default functionality", Constrain movement") from the Test Property above and give it to the URL
            sortablePage.tabNo = TestContext.CurrentContext.Test.Properties.Get("Sortable test tab Number:").ToString();
            sortablePage.NavigateTo(sortablePage.URL);
            // Scroll page Up so the element is into view. Because when Firefox opens the desired page/tab, somehow the page is scrolled down
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", sortablePage.TopOfPage);

            // Drag Sortable Item 2 to position before Sortable Item 1
            sortablePage.DragSortableElement(this.driver, sortablePage.SortableItemsTab1[int.Parse(sort.Item1)], sortablePage.SortableItemsTab1[int.Parse(sort.Item2)]);
            // Get the elements' positions after sorting - used for the "Another way to assert it"
            sortablePage.RecheckSortableElements(sort.Item1, sort.Item2);

            sortablePage.ElementSortedOrder(sortablePage.Element2Position, sortablePage.Element1Position);
            // Another way to assert it:
            sortablePage.ElementSortedOrderAnotherWayOfAssert(sortablePage.item2PositionAfter, sortablePage.item1PositionAfter);
        }
 public static void AssertResizableSizeSmallerThanOrEqualToConstraints(this ResizablePage page, IWebElement resizableElement, InteractionPages resize)
 {
     Assert.LessOrEqual(resizableElement.Size.Width, int.Parse(resize.HorizontalOffset));
     Assert.LessOrEqual(resizableElement.Size.Height, int.Parse(resize.VerticalOffset));
 }