From 6df8a89a4f43925c28219fe37e9ec0b75637e7eb Mon Sep 17 00:00:00 2001 From: jos <17252150+jostnes@users.noreply.github.com> Date: Fri, 15 Sep 2023 11:20:39 +0800 Subject: [PATCH 1/5] swipeDown instead of tap since button is removed --- .../Screens/Editor/BlockEditorScreen.swift | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index e92a831cb57e..bbb88b5f036b 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -8,10 +8,6 @@ public class BlockEditorScreen: ScreenObject { $0.buttons["add-block-button"] } - private let applyButtonGetter: (XCUIApplication) -> XCUIElement = { - $0.buttons["Apply"] - } - private let chooseFromDeviceButtonGetter: (XCUIApplication) -> XCUIElement = { $0.buttons["Choose from device"] } @@ -93,7 +89,6 @@ public class BlockEditorScreen: ScreenObject { } var addBlockButton: XCUIElement { addBlockButtonGetter(app) } - var applyButton: XCUIElement { applyButtonGetter(app) } var chooseFromDeviceButton: XCUIElement { chooseFromDeviceButtonGetter(app) } var closeButton: XCUIElement { closeButtonGetter(app) } var discardButton: XCUIElement { discardButtonGetter(app) } @@ -192,7 +187,7 @@ public class BlockEditorScreen: ScreenObject { addBlock(blockType) insertFromUrlButton.tap() app.textFields.element.typeText(UrlPath) - applyButton.tap() + app.swipeDown() } @discardableResult From c94fdf2f312e2ab1b4fb1c1a5a252401760e41c1 Mon Sep 17 00:00:00 2001 From: jos <17252150+jostnes@users.noreply.github.com> Date: Fri, 15 Sep 2023 12:31:23 +0800 Subject: [PATCH 2/5] tap top of screen to dismiss block instead of swipe down --- WordPress/UITestsFoundation/Globals.swift | 5 +++++ .../UITestsFoundation/Screens/Editor/BlockEditorScreen.swift | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/WordPress/UITestsFoundation/Globals.swift b/WordPress/UITestsFoundation/Globals.swift index f0d947fed06b..8a7dc8cc5d93 100644 --- a/WordPress/UITestsFoundation/Globals.swift +++ b/WordPress/UITestsFoundation/Globals.swift @@ -24,6 +24,11 @@ public func navigateBack() { } } +public func tapTopOfScreen() { + let app = XCUIApplication() + app.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5)).tap() +} + public func pullToRefresh(app: XCUIApplication = XCUIApplication()) { let top = app.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.2)) let bottom = app.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.8)) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index bbb88b5f036b..224c8b68d101 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -187,7 +187,8 @@ public class BlockEditorScreen: ScreenObject { addBlock(blockType) insertFromUrlButton.tap() app.textFields.element.typeText(UrlPath) - app.swipeDown() + // to dismiss media block URL prompt + tapTopOfScreen() } @discardableResult From ae59afc3d6508cc1dbc9fc4044383b4596618c00 Mon Sep 17 00:00:00 2001 From: jos <17252150+jostnes@users.noreply.github.com> Date: Fri, 15 Sep 2023 13:32:48 +0800 Subject: [PATCH 3/5] adjust tap coordinate --- WordPress/UITestsFoundation/Globals.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/UITestsFoundation/Globals.swift b/WordPress/UITestsFoundation/Globals.swift index 8a7dc8cc5d93..11ebd9e9b865 100644 --- a/WordPress/UITestsFoundation/Globals.swift +++ b/WordPress/UITestsFoundation/Globals.swift @@ -26,7 +26,7 @@ public func navigateBack() { public func tapTopOfScreen() { let app = XCUIApplication() - app.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5)).tap() + app.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.2)).tap() } public func pullToRefresh(app: XCUIApplication = XCUIApplication()) { From 1e825da7c5b75e9a194ab3e5fbfabf326e527da5 Mon Sep 17 00:00:00 2001 From: jos <17252150+jostnes@users.noreply.github.com> Date: Fri, 15 Sep 2023 14:23:26 +0800 Subject: [PATCH 4/5] skip test on iPhone --- WordPress/UITests/Tests/EditorGutenbergTests.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/UITests/Tests/EditorGutenbergTests.swift b/WordPress/UITests/Tests/EditorGutenbergTests.swift index 75b4acbe378f..84aa154da23b 100644 --- a/WordPress/UITests/Tests/EditorGutenbergTests.swift +++ b/WordPress/UITests/Tests/EditorGutenbergTests.swift @@ -100,6 +100,8 @@ class EditorGutenbergTests: XCTestCase { } func testAddMediaBlocks() throws { + try XCTSkipIf(!XCUIDevice.isPad, "Test currently fails on iPhone in CI - Tapping on the coordinate location results in a blank screen. Skipping test on iPhone.") + try BlockEditorScreen() .addImage() .addVideoFromUrl(urlPath: videoUrlPath) From 09d9f2009c42e782d2df35dd88d480bfa81a1d9e Mon Sep 17 00:00:00 2001 From: jos <17252150+jostnes@users.noreply.github.com> Date: Fri, 15 Sep 2023 20:31:30 +0800 Subject: [PATCH 5/5] skip test on iPhone after testing add image --- WordPress/UITests/Tests/EditorGutenbergTests.swift | 7 +++++-- .../Screens/Editor/BlockEditorScreen.swift | 9 +++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/WordPress/UITests/Tests/EditorGutenbergTests.swift b/WordPress/UITests/Tests/EditorGutenbergTests.swift index 84aa154da23b..d2260291658e 100644 --- a/WordPress/UITests/Tests/EditorGutenbergTests.swift +++ b/WordPress/UITests/Tests/EditorGutenbergTests.swift @@ -100,10 +100,13 @@ class EditorGutenbergTests: XCTestCase { } func testAddMediaBlocks() throws { - try XCTSkipIf(!XCUIDevice.isPad, "Test currently fails on iPhone in CI - Tapping on the coordinate location results in a blank screen. Skipping test on iPhone.") - try BlockEditorScreen() .addImage() + .verifyImageBlockDisplayed() + + try XCTSkipIf(!XCUIDevice.isPad, "Test currently fails on iPhone in CI for add video and audio from URL - Tapping on the coordinate location results in a blank screen. Skipping rest of test on iPhone while investigation is in progress") + + try BlockEditorScreen() .addVideoFromUrl(urlPath: videoUrlPath) .addAudioFromUrl(urlPath: audioUrlPath) .verifyMediaBlocksDisplayed() diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index 224c8b68d101..0a34a44036b6 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -191,6 +191,15 @@ public class BlockEditorScreen: ScreenObject { tapTopOfScreen() } + // Can be removed once `testAddMediaBlocks()` test is fixed on iPhone + @discardableResult + public func verifyImageBlockDisplayed() -> Self { + let imagePredicate = NSPredicate(format: "label == 'Image Block. Row 1'") + XCTAssertTrue(app.buttons.containing(imagePredicate).firstMatch.waitForExistence(timeout: 5)) + + return self + } + @discardableResult public func verifyMediaBlocksDisplayed() -> Self { let imagePredicate = NSPredicate(format: "label == 'Image Block. Row 1'")