From 75fac9f455da173dbaed42a396c822ffceb85b7b Mon Sep 17 00:00:00 2001 From: rachelmcr Date: Wed, 14 Oct 2020 16:05:56 +0100 Subject: [PATCH 1/4] Paste text in secure text fields where typing fails --- .../Screens/Login/LoginUsernamePasswordScreen.swift | 8 +++++++- .../WordPressUITests/Utils/XCTest+Extensions.swift | 11 +++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/WordPress/WordPressUITests/Screens/Login/LoginUsernamePasswordScreen.swift b/WordPress/WordPressUITests/Screens/Login/LoginUsernamePasswordScreen.swift index 46dbebd584ce..58650e5ffb1d 100644 --- a/WordPress/WordPressUITests/Screens/Login/LoginUsernamePasswordScreen.swift +++ b/WordPress/WordPressUITests/Screens/Login/LoginUsernamePasswordScreen.swift @@ -38,7 +38,13 @@ class LoginUsernamePasswordScreen: BaseScreen { usernameTextField.tap() usernameTextField.typeText(username) passwordTextField.tap() - passwordTextField.typeText(password) + // Workaround to enter password in languages where typing doesn't work + // Pasting is not reliable enough to use all the time so we only use it where it's necessary + if ["ru", "th"].contains(Locale.current.languageCode) { + passwordTextField.pasteText(password) + } else { + passwordTextField.typeText(password) + } nextButton.tap() return LoginEpilogueScreen() diff --git a/WordPress/WordPressUITests/Utils/XCTest+Extensions.swift b/WordPress/WordPressUITests/Utils/XCTest+Extensions.swift index 70206e23f59d..cde1148c1e80 100644 --- a/WordPress/WordPressUITests/Utils/XCTest+Extensions.swift +++ b/WordPress/WordPressUITests/Utils/XCTest+Extensions.swift @@ -39,6 +39,17 @@ extension XCUIElement { self.typeText(text) } + /** + Pastes text from clipboard to the field + Useful for scenarios where typing is problematic, e.g. secure text fields in Russian. + - Parameter text: the text to paste into the field + */ + func pasteText(_ text: String) -> Void { + UIPasteboard.general.string = text + self.press(forDuration: 1.2) + XCUIApplication().menuItems.element(boundBy: 0).tap() + } + var stringValue: String? { return self.value as? String } From ebdb6021fdc53171ef90c828dc86d881d55da485 Mon Sep 17 00:00:00 2001 From: rachelmcr Date: Wed, 14 Oct 2020 16:18:30 +0100 Subject: [PATCH 2/4] Test new mock for media screenshot --- Podfile | 4 ++-- Podfile.lock | 15 ++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Podfile b/Podfile index 44e5e18dfd90..ffd8a980727c 100644 --- a/Podfile +++ b/Podfile @@ -366,9 +366,9 @@ end ## =================== ## def wordpress_mocks - pod 'WordPressMocks', '~> 0.0.9-beta.1' + # pod 'WordPressMocks', '~> 0.0.9-beta' # pod 'WordPressMocks', :git => 'https://github.com/wordpress-mobile/WordPressMocks.git', :commit => '' - # pod 'WordPressMocks', :git => 'https://github.com/wordpress-mobile/WordPressMocks.git', :branch => '' + pod 'WordPressMocks', :git => 'https://github.com/wordpress-mobile/WordPressMocks.git', :branch => 'update/media-mocks' # pod 'WordPressMocks', :path => '../WordPressMocks' end diff --git a/Podfile.lock b/Podfile.lock index 1ee07579feb5..56be69a77a06 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -414,7 +414,7 @@ PODS: - UIDeviceIdentifier (~> 1) - WordPressShared (~> 1.12) - wpxmlrpc (~> 0.9.0) - - WordPressMocks (0.0.9-beta.1) + - WordPressMocks (0.0.9-beta.2) - WordPressShared (1.12.0): - CocoaLumberjack (~> 3.4) - FormatterKit/TimeIntervalFormatter (= 1.8.2) @@ -507,7 +507,7 @@ DEPENDENCIES: - WordPress-Editor-iOS (~> 1.19.3) - WordPressAuthenticator (~> 1.27.0-beta) - WordPressKit (~> 4.19-beta.1) - - WordPressMocks (~> 0.0.9-beta.1) + - WordPressMocks (from `https://github.com/wordpress-mobile/WordPressMocks.git`, branch `update/media-mocks`) - WordPressShared (~> 1.12.0) - WordPressUI (~> 1.7.1) - WPMediaPicker (~> 1.7.2) @@ -557,7 +557,6 @@ SPEC REPOS: - WordPress-Editor-iOS - WordPressAuthenticator - WordPressKit - - WordPressMocks - WordPressShared - WordPressUI - WPMediaPicker @@ -657,6 +656,9 @@ EXTERNAL SOURCES: :commit: 5ff93360313e9919c7a4b7f0faa1cb9e5e9c3542 :git: https://github.com/wordpress-mobile/gutenberg-mobile/ :submodules: true + WordPressMocks: + :branch: update/media-mocks + :git: https://github.com/wordpress-mobile/WordPressMocks.git Yoga: :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/5ff93360313e9919c7a4b7f0faa1cb9e5e9c3542/third-party-podspecs/Yoga.podspec.json @@ -675,6 +677,9 @@ CHECKOUT OPTIONS: :commit: 5ff93360313e9919c7a4b7f0faa1cb9e5e9c3542 :git: https://github.com/wordpress-mobile/gutenberg-mobile/ :submodules: true + WordPressMocks: + :commit: 307f00415be299bd65601fc9955a4556ccd04288 + :git: https://github.com/wordpress-mobile/WordPressMocks.git SPEC CHECKSUMS: 1PasswordExtension: f97cc80ae58053c331b2b6dc8843ba7103b33794 @@ -757,7 +762,7 @@ SPEC CHECKSUMS: WordPress-Editor-iOS: 1886f7fe464d79ee64ccfe7985281f8cf45f75eb WordPressAuthenticator: b22bc0844ebfed1266e062bfeebac47f34990162 WordPressKit: 1fb3b2fddd237dd9fa14f52b9c2b6f329a94c6fc - WordPressMocks: 1e04de6afa3a17f6f1ab4782f8460d7faefcf2f7 + WordPressMocks: 512df883edd980e5e4f11fa6341bde07c0b1ab26 WordPressShared: 38cb62e9cb998d4dc3c1611f17934c6875a6b3e8 WordPressUI: 9da5d966b8beb091950cd96880db398d7f30e246 WPMediaPicker: d5ae9a83cd5cc0e4de46bfc1c59120aa86658bc3 @@ -772,6 +777,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: a87ab1e4badace92c75eb11dc77ede1e995b2adc ZIPFoundation: 249fa8890597086cd536bb2df5c9804d84e122b0 -PODFILE CHECKSUM: 0a96308f2c70d67aecf167e2ff9b9f5af4770554 +PODFILE CHECKSUM: 903455f2b41b701f333fdf42f28982458105b7d0 COCOAPODS: 1.9.3 From b0d6f49034c050ee1f865f066d712028c40a3f7b Mon Sep 17 00:00:00 2001 From: rachelmcr Date: Wed, 14 Oct 2020 17:31:53 +0100 Subject: [PATCH 3/4] Preserve clipboard contents when pasting text --- WordPress/WordPressUITests/Utils/XCTest+Extensions.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/WordPress/WordPressUITests/Utils/XCTest+Extensions.swift b/WordPress/WordPressUITests/Utils/XCTest+Extensions.swift index cde1148c1e80..b381748f49f0 100644 --- a/WordPress/WordPressUITests/Utils/XCTest+Extensions.swift +++ b/WordPress/WordPressUITests/Utils/XCTest+Extensions.swift @@ -45,9 +45,15 @@ extension XCUIElement { - Parameter text: the text to paste into the field */ func pasteText(_ text: String) -> Void { + let previousPasteboardContents = UIPasteboard.general.string UIPasteboard.general.string = text + self.press(forDuration: 1.2) - XCUIApplication().menuItems.element(boundBy: 0).tap() + XCUIApplication().menuItems.firstMatch.tap() + + if let string = previousPasteboardContents { + UIPasteboard.general.string = string + } } var stringValue: String? { From dfe6342145d7c112d5c9107ee055feb8f908da82 Mon Sep 17 00:00:00 2001 From: rachelmcr Date: Wed, 14 Oct 2020 18:03:38 +0100 Subject: [PATCH 4/4] Update WordPressMocks pod --- Podfile | 4 ++-- Podfile.lock | 11 +++-------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/Podfile b/Podfile index ffd8a980727c..21f9cf4da48d 100644 --- a/Podfile +++ b/Podfile @@ -366,9 +366,9 @@ end ## =================== ## def wordpress_mocks - # pod 'WordPressMocks', '~> 0.0.9-beta' + pod 'WordPressMocks', '~> 0.0.9-beta' # pod 'WordPressMocks', :git => 'https://github.com/wordpress-mobile/WordPressMocks.git', :commit => '' - pod 'WordPressMocks', :git => 'https://github.com/wordpress-mobile/WordPressMocks.git', :branch => 'update/media-mocks' + # pod 'WordPressMocks', :git => 'https://github.com/wordpress-mobile/WordPressMocks.git', :branch => '' # pod 'WordPressMocks', :path => '../WordPressMocks' end diff --git a/Podfile.lock b/Podfile.lock index 56be69a77a06..01356e9c745c 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -507,7 +507,7 @@ DEPENDENCIES: - WordPress-Editor-iOS (~> 1.19.3) - WordPressAuthenticator (~> 1.27.0-beta) - WordPressKit (~> 4.19-beta.1) - - WordPressMocks (from `https://github.com/wordpress-mobile/WordPressMocks.git`, branch `update/media-mocks`) + - WordPressMocks (~> 0.0.9-beta) - WordPressShared (~> 1.12.0) - WordPressUI (~> 1.7.1) - WPMediaPicker (~> 1.7.2) @@ -557,6 +557,7 @@ SPEC REPOS: - WordPress-Editor-iOS - WordPressAuthenticator - WordPressKit + - WordPressMocks - WordPressShared - WordPressUI - WPMediaPicker @@ -656,9 +657,6 @@ EXTERNAL SOURCES: :commit: 5ff93360313e9919c7a4b7f0faa1cb9e5e9c3542 :git: https://github.com/wordpress-mobile/gutenberg-mobile/ :submodules: true - WordPressMocks: - :branch: update/media-mocks - :git: https://github.com/wordpress-mobile/WordPressMocks.git Yoga: :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/5ff93360313e9919c7a4b7f0faa1cb9e5e9c3542/third-party-podspecs/Yoga.podspec.json @@ -677,9 +675,6 @@ CHECKOUT OPTIONS: :commit: 5ff93360313e9919c7a4b7f0faa1cb9e5e9c3542 :git: https://github.com/wordpress-mobile/gutenberg-mobile/ :submodules: true - WordPressMocks: - :commit: 307f00415be299bd65601fc9955a4556ccd04288 - :git: https://github.com/wordpress-mobile/WordPressMocks.git SPEC CHECKSUMS: 1PasswordExtension: f97cc80ae58053c331b2b6dc8843ba7103b33794 @@ -777,6 +772,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: a87ab1e4badace92c75eb11dc77ede1e995b2adc ZIPFoundation: 249fa8890597086cd536bb2df5c9804d84e122b0 -PODFILE CHECKSUM: 903455f2b41b701f333fdf42f28982458105b7d0 +PODFILE CHECKSUM: 1b24b7d426ca6c46f73b36b025f7f34458122151 COCOAPODS: 1.9.3