Skip to content
This repository was archived by the owner on Feb 5, 2025. It is now read-only.

Commit a8b598e

Browse files
authored
Merge pull request #532 from wordpress-mobile/issue/531-pop-navigation
Add a command to navigate back one step
2 parents 93865b1 + f4a4387 commit a8b598e

File tree

4 files changed

+43
-1
lines changed

4 files changed

+43
-1
lines changed

WordPressAuthenticator.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "WordPressAuthenticator"
3-
s.version = "1.30.0"
3+
s.version = "1.31.0-beta.1"
44
s.summary = "WordPressAuthenticator implements an easy and elegant way to authenticate your WordPress Apps."
55

66
s.description = <<-DESC

WordPressAuthenticator.xcodeproj/project.pbxproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,8 @@
161161
D85C3882256E3FEC00D56E34 /* WordPressComSiteInfoTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D85C3881256E3FEC00D56E34 /* WordPressComSiteInfoTests.swift */; };
162162
D8610CE82570A5B000A5DF27 /* NavigateToRoot.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8610CE72570A5B000A5DF27 /* NavigateToRoot.swift */; };
163163
D8610CEC2570A60C00A5DF27 /* NavigationToRootTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8610CEB2570A60C00A5DF27 /* NavigationToRootTests.swift */; };
164+
D8611A63257622ED00A5DF27 /* NavigateBack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8611A62257622ED00A5DF27 /* NavigateBack.swift */; };
165+
D8611A672576236800A5DF27 /* NavigateBackTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8611A662576236800A5DF27 /* NavigateBackTests.swift */; };
164166
D881A30D256B5A7900FE5605 /* NavigationCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = D881A30C256B5A7900FE5605 /* NavigationCommand.swift */; };
165167
D881A311256B5B4700FE5605 /* NavigateToEnterSite.swift in Sources */ = {isa = PBXBuildFile; fileRef = D881A310256B5B4700FE5605 /* NavigateToEnterSite.swift */; };
166168
D881A315256B5B5800FE5605 /* NavigateToEnterAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = D881A314256B5B5800FE5605 /* NavigateToEnterAccount.swift */; };
@@ -370,6 +372,8 @@
370372
D85C3881256E3FEC00D56E34 /* WordPressComSiteInfoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPressComSiteInfoTests.swift; sourceTree = "<group>"; };
371373
D8610CE72570A5B000A5DF27 /* NavigateToRoot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigateToRoot.swift; sourceTree = "<group>"; };
372374
D8610CEB2570A60C00A5DF27 /* NavigationToRootTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationToRootTests.swift; sourceTree = "<group>"; };
375+
D8611A62257622ED00A5DF27 /* NavigateBack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigateBack.swift; sourceTree = "<group>"; };
376+
D8611A662576236800A5DF27 /* NavigateBackTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigateBackTests.swift; sourceTree = "<group>"; };
373377
D881A30C256B5A7900FE5605 /* NavigationCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationCommand.swift; sourceTree = "<group>"; };
374378
D881A310256B5B4700FE5605 /* NavigateToEnterSite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigateToEnterSite.swift; sourceTree = "<group>"; };
375379
D881A314256B5B5800FE5605 /* NavigateToEnterAccount.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigateToEnterAccount.swift; sourceTree = "<group>"; };
@@ -889,6 +893,7 @@
889893
D85C36E5256E0DDE00D56E34 /* NavigationToEnterSiteTests.swift */,
890894
D85C36EF256E118D00D56E34 /* NavigationToEnterAccountTests.swift */,
891895
D8610CEB2570A60C00A5DF27 /* NavigationToRootTests.swift */,
896+
D8611A662576236800A5DF27 /* NavigateBackTests.swift */,
892897
);
893898
path = Navigation;
894899
sourceTree = "<group>";
@@ -900,6 +905,7 @@
900905
D881A310256B5B4700FE5605 /* NavigateToEnterSite.swift */,
901906
D881A314256B5B5800FE5605 /* NavigateToEnterAccount.swift */,
902907
D8610CE72570A5B000A5DF27 /* NavigateToRoot.swift */,
908+
D8611A62257622ED00A5DF27 /* NavigateBack.swift */,
903909
);
904910
path = Navigation;
905911
sourceTree = "<group>";
@@ -1225,6 +1231,7 @@
12251231
CE6BCD2E24A3A235001BCDC5 /* TextLabelTableViewCell.swift in Sources */,
12261232
B56090D3208A4F5400399AE4 /* NUXLinkAuthViewController.swift in Sources */,
12271233
B5609120208A555E00399AE4 /* SignupNavigationController.swift in Sources */,
1234+
D8611A63257622ED00A5DF27 /* NavigateBack.swift in Sources */,
12281235
B5609143208A563800399AE4 /* LoginSocialErrorViewController.swift in Sources */,
12291236
B56090F8208A533200399AE4 /* WordPressAuthenticator+Notifications.swift in Sources */,
12301237
98ED483624802F8F00992B2D /* GoogleAuthViewController.swift in Sources */,
@@ -1342,6 +1349,7 @@
13421349
D85C36F0256E118D00D56E34 /* NavigationToEnterAccountTests.swift in Sources */,
13431350
D85C36E6256E0DDE00D56E34 /* NavigationToEnterSiteTests.swift in Sources */,
13441351
D85C3882256E3FEC00D56E34 /* WordPressComSiteInfoTests.swift in Sources */,
1352+
D8611A672576236800A5DF27 /* NavigateBackTests.swift in Sources */,
13451353
F12F9FB824D8A7FC00771BCE /* AnalyticsTrackerTests.swift in Sources */,
13461354
B501C046208FC6A700D1E58F /* WordPressAuthenticatorTests.swift in Sources */,
13471355
);
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import Foundation
2+
3+
/// Navigates back one step.
4+
///
5+
public struct NavigateBack: NavigationCommand {
6+
public init() {}
7+
public func execute(from: UIViewController?) {
8+
pop(navigationController: from?.navigationController)
9+
}
10+
}
11+
12+
private extension NavigateBack {
13+
func pop(navigationController: UINavigationController?) {
14+
navigationController?.popViewController(animated: true)
15+
}
16+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import XCTest
2+
@testable import WordPressAuthenticator
3+
4+
final class NavigateBackTests: XCTestCase {
5+
6+
func testNavigationCommandNavigatesToExpectedDestination() {
7+
let origin = UIViewController()
8+
let navigationController = MockNavigationController(rootViewController: origin)
9+
navigationController.pushViewController(origin, animated: false)
10+
11+
let command = NavigateBack()
12+
command.execute(from: origin)
13+
14+
let navigationStackCount = navigationController.viewControllers.count
15+
16+
XCTAssertEqual(navigationStackCount, 1)
17+
}
18+
}

0 commit comments

Comments
 (0)