diff --git a/loafwallet.xcodeproj/project.pbxproj b/loafwallet.xcodeproj/project.pbxproj index 98bf3ce4f..1efc840ff 100644 --- a/loafwallet.xcodeproj/project.pbxproj +++ b/loafwallet.xcodeproj/project.pbxproj @@ -273,6 +273,8 @@ C3188E2B26431E810008ADD1 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C3188E2926431E810008ADD1 /* GoogleService-Info.plist */; }; C3188E2C26431E810008ADD1 /* partner-keys.plist in Resources */ = {isa = PBXBuildFile; fileRef = C3188E2A26431E810008ADD1 /* partner-keys.plist */; }; C3188E3326445EA20008ADD1 /* FileTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3188E3226445EA20008ADD1 /* FileTests.swift */; }; + C31891C1267338D300ECE25C /* NonUSTabBarViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31891C0267338D300ECE25C /* NonUSTabBarViewControllerTests.swift */; }; + C31891C326733FD400ECE25C /* TabBarViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31891C226733FD400ECE25C /* TabBarViewControllerTests.swift */; }; C32142EA25C97CD900BECCD0 /* TransactionCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C32142E925C97CD900BECCD0 /* TransactionCellView.swift */; }; C32142FA25C988C800BECCD0 /* TransactionCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C32142F925C988C800BECCD0 /* TransactionCellViewModel.swift */; }; C3270B99259BF7F20073DA7B /* LitecoinCardUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3270B98259BF7F20073DA7B /* LitecoinCardUser.swift */; }; @@ -1458,6 +1460,8 @@ C3188E2926431E810008ADD1 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; C3188E2A26431E810008ADD1 /* partner-keys.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "partner-keys.plist"; sourceTree = ""; }; C3188E3226445EA20008ADD1 /* FileTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileTests.swift; sourceTree = ""; }; + C31891C0267338D300ECE25C /* NonUSTabBarViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NonUSTabBarViewControllerTests.swift; sourceTree = ""; }; + C31891C226733FD400ECE25C /* TabBarViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarViewControllerTests.swift; sourceTree = ""; }; C32142E925C97CD900BECCD0 /* TransactionCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionCellView.swift; sourceTree = ""; }; C32142F925C988C800BECCD0 /* TransactionCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionCellViewModel.swift; sourceTree = ""; }; C3270B98259BF7F20073DA7B /* LitecoinCardUser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LitecoinCardUser.swift; sourceTree = ""; }; @@ -1609,10 +1613,7 @@ CEAA9E961DC18E1F0066731D /* PhraseView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PhraseView.swift; path = src/Views/PhraseView.swift; sourceTree = ""; }; CEAA9E981DC262800066731D /* ConfirmPaperPhraseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ConfirmPaperPhraseViewController.swift; path = src/ViewControllers/ConfirmPaperPhraseViewController.swift; sourceTree = ""; }; CEAA9E9A1DC2B9320066731D /* ConfirmPhrase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ConfirmPhrase.swift; path = src/Views/ConfirmPhrase.swift; sourceTree = ""; }; - CEAA9E9D1DC2F90C0066731D /* CircularPro-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "CircularPro-Bold.otf"; path = "Fonts/CircularPro-Bold.otf"; sourceTree = ""; }; CEAA9E9F1DC2F9F50066731D /* UIFont+BRWAdditions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "UIFont+BRWAdditions.swift"; path = "src/Extensions/UIFont+BRWAdditions.swift"; sourceTree = ""; }; - CEAA9EA11DC2FC700066731D /* CircularPro-Book.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "CircularPro-Book.otf"; path = "Fonts/CircularPro-Book.otf"; sourceTree = ""; }; - CEAA9EA21DC2FC700066731D /* CircularPro-Medium.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "CircularPro-Medium.otf"; path = "Fonts/CircularPro-Medium.otf"; sourceTree = ""; }; CEAA9EA51DC3246F0066731D /* StartNavigationDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = StartNavigationDelegate.swift; path = src/FlowControllers/StartNavigationDelegate.swift; sourceTree = ""; }; CEAA9EA71DC3342E0066731D /* PinView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PinView.swift; path = src/Views/PinView.swift; sourceTree = ""; }; CEAFC8601E5D5B0500E4FD06 /* SegmentedButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SegmentedButton.swift; path = src/Controls/SegmentedButton.swift; sourceTree = ""; }; @@ -2183,6 +2184,8 @@ 249C570423B51F9B009CB5A9 /* TransactionsViewControllerTests.swift */, C3B7C43E25620D4400E98A64 /* SupportLitecoinFoundationViewModelTests.swift */, C3D783BF2565ECF60004FF70 /* UnstoppableDomainViewModelTests.swift */, + C31891C0267338D300ECE25C /* NonUSTabBarViewControllerTests.swift */, + C31891C226733FD400ECE25C /* TabBarViewControllerTests.swift */, ); path = "Class Tests"; sourceTree = ""; @@ -3474,9 +3477,6 @@ 24D5F23022599C0B00225462 /* BarlowSemiCondensed-Medium.ttf */, 24D5F23222599C0B00225462 /* BarlowSemiCondensed-Regular.ttf */, 24D5F23422599C0B00225462 /* BarlowSemiCondensed-SemiBold.ttf */, - CEAA9EA11DC2FC700066731D /* CircularPro-Book.otf */, - CEAA9EA21DC2FC700066731D /* CircularPro-Medium.otf */, - CEAA9E9D1DC2F90C0066731D /* CircularPro-Bold.otf */, ); name = Fonts; sourceTree = ""; @@ -4092,6 +4092,7 @@ C345D81525A8D52600657E30 /* LoginViewModelTests.swift in Sources */, 249C570523B51F9B009CB5A9 /* TransactionsViewControllerTests.swift in Sources */, 24470E2523A5EF0D00ADDA27 /* BRAPIClientTests.swift in Sources */, + C31891C326733FD400ECE25C /* TabBarViewControllerTests.swift in Sources */, 24470E3C23A5FFD700ADDA27 /* TouchIdEnabledTests.swift in Sources */, 24470E3023A5F55700ADDA27 /* BRHTTPServerTests.swift in Sources */, 24470E3A23A5FF5700ADDA27 /* TestHelpers.swift in Sources */, @@ -4100,6 +4101,7 @@ C345D82525A8D54200657E30 /* RegistrationViewModelTests.swift in Sources */, 24470E3623A5FDE800ADDA27 /* PhraseTests.swift in Sources */, C308993F2616124800EE6A40 /* CardWalletTests.swift in Sources */, + C31891C1267338D300ECE25C /* NonUSTabBarViewControllerTests.swift in Sources */, 24470E4523A608A700ADDA27 /* AmountTests.swift in Sources */, C3B7C3EE255FF59200E98A64 /* ConstantsTests.swift in Sources */, 24470E2323A5DB7D00ADDA27 /* WalletManagerTests.swift in Sources */, @@ -4758,7 +4760,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = loafwallet/loafwallet.entitlements; - CURRENT_PROJECT_VERSION = 7; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ZV7987N2ZC; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -4773,7 +4775,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.5.0; + MARKETING_VERSION = 3.5.1; OTHER_SWIFT_FLAGS = "-DDebug $(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = com.litecoin.loafwallet; PRODUCT_MODULE_NAME = loafwallet; @@ -4866,7 +4868,7 @@ CODE_SIGN_ENTITLEMENTS = TodayExtension/TodayExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 7; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ZV7987N2ZC; INFOPLIST_FILE = TodayExtension/Info.plist; @@ -4876,7 +4878,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 3.5.0; + MARKETING_VERSION = 3.5.1; PRODUCT_BUNDLE_IDENTIFIER = com.litecoin.loafwallet.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -5177,7 +5179,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = loafwallet/loafwallet.entitlements; - CURRENT_PROJECT_VERSION = 7; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ZV7987N2ZC; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = ( @@ -5191,7 +5193,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.5.0; + MARKETING_VERSION = 3.5.1; OTHER_SWIFT_FLAGS = "$(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = com.litecoin.loafwallet; PRODUCT_MODULE_NAME = loafwallet; @@ -5208,7 +5210,7 @@ CODE_SIGN_ENTITLEMENTS = TodayExtension/TodayExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 7; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ZV7987N2ZC; INFOPLIST_FILE = TodayExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 10.0; @@ -5217,7 +5219,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 3.5.0; + MARKETING_VERSION = 3.5.1; PRODUCT_BUNDLE_IDENTIFIER = com.litecoin.loafwallet.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -5308,7 +5310,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = loafwallet/loafwallet.entitlements; - CURRENT_PROJECT_VERSION = 7; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ZV7987N2ZC; FRAMEWORK_SEARCH_PATHS = ( @@ -5322,7 +5324,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.5.0; + MARKETING_VERSION = 3.5.1; OTHER_SWIFT_FLAGS = "-DDebug -DTestnet $(inherited)"; PRODUCT_BUNDLE_IDENTIFIER = com.litecoin.loafwallet; PRODUCT_MODULE_NAME = loafwallet; @@ -5340,7 +5342,7 @@ CODE_SIGN_ENTITLEMENTS = TodayExtension/TodayExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 7; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ZV7987N2ZC; INFOPLIST_FILE = TodayExtension/Info.plist; @@ -5350,7 +5352,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 3.5.0; + MARKETING_VERSION = 3.5.1; PRODUCT_BUNDLE_IDENTIFIER = com.litecoin.loafwallet.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/loafwallet/NonUSTabBarViewController.swift b/loafwallet/NonUSTabBarViewController.swift index 8ec4cb1a2..9abd07a4f 100644 --- a/loafwallet/NonUSTabBarViewController.swift +++ b/loafwallet/NonUSTabBarViewController.swift @@ -305,8 +305,8 @@ class NonUSTabBarViewController: UIViewController, Subscriber, Trackable, UITabB switch item.tag { case 0: item.title = S.History.barItemTitle case 1: item.title = S.Send.barItemTitle - case 3: item.title = S.Receive.barItemTitle - case 4: item.title = S.BuyCenter.barItemTitle + case 2: item.title = S.Receive.barItemTitle + case 3: item.title = S.BuyCenter.barItemTitle default: item.title = "NO-TITLE" NSLog("ERROR: UITabbar item count is wrong") diff --git a/loafwallet/Storyboards/Main.storyboard b/loafwallet/Storyboards/Main.storyboard index f0b92e16d..984c209b0 100644 --- a/loafwallet/Storyboards/Main.storyboard +++ b/loafwallet/Storyboards/Main.storyboard @@ -23,7 +23,7 @@ - + @@ -64,7 +64,6 @@ - @@ -72,7 +71,7 @@ - + @@ -114,7 +113,7 @@ - + @@ -133,14 +132,14 @@ - + - - + + @@ -180,7 +179,7 @@ - + @@ -222,7 +221,7 @@ - + diff --git a/loafwalletTests/Class Tests/NonUSTabBarViewControllerTests.swift b/loafwalletTests/Class Tests/NonUSTabBarViewControllerTests.swift new file mode 100644 index 000000000..db98df3e7 --- /dev/null +++ b/loafwalletTests/Class Tests/NonUSTabBarViewControllerTests.swift @@ -0,0 +1,53 @@ +// +// NonUSTabBarViewControllerTests.swift +// loafwalletTests +// +// Created by Kerry Washington on 6/11/21. +// Copyright © 2021 Litecoin Foundation. All rights reserved. +// + +import XCTest +@testable import loafwallet + +class NonUSTabBarViewControllerTests: XCTestCase { + var viewController: NonUSTabBarViewController! + + override func setUpWithError() throws { + + viewController = UIStoryboard.init(name: "Main", + bundle: nil) + .instantiateViewController(withIdentifier: "NonUSTabBarViewController") as? + NonUSTabBarViewController + + viewController.loadViewIfNeeded() + + print(viewController.tabBar.items?.count) + } + + + override func tearDownWithError() throws { + viewController = nil + } + + func testTabBarItemCount() throws { + + // There should be 4 tabs in this version for non-US users + + XCTAssertTrue(viewController.tabBar.items?.count == 4) + } + + func testTabBarItemRange() throws { + + //Using a tag is risky and this tests that the tab has the correct tag + + XCTAssertTrue(viewController.tabBar.items?[0].tag == 0) + + XCTAssertTrue(viewController.tabBar.items?[1].tag == 1) + + XCTAssertTrue(viewController.tabBar.items?[2].tag == 2) + + XCTAssertTrue(viewController.tabBar.items?[3].tag == 3) + + } + +} diff --git a/loafwalletTests/Class Tests/TabBarViewControllerTests.swift b/loafwalletTests/Class Tests/TabBarViewControllerTests.swift new file mode 100644 index 000000000..d62c767d5 --- /dev/null +++ b/loafwalletTests/Class Tests/TabBarViewControllerTests.swift @@ -0,0 +1,56 @@ +// +// TabBarViewControllerTests.swift +// loafwalletTests +// +// Created by Kerry Washington on 6/11/21. +// Copyright © 2021 Litecoin Foundation. All rights reserved. +// + +import XCTest +@testable import loafwallet + +class TabBarViewControllerTests: XCTestCase { + + var viewController: TabBarViewController! + + override func setUpWithError() throws { + + viewController = UIStoryboard.init(name: "Main", + bundle: nil) + .instantiateViewController(withIdentifier: "TabBarViewController") as? + TabBarViewController + + viewController.loadViewIfNeeded() + + } + + override func tearDownWithError() throws { + viewController = nil + } + + func testTabBarItemCount() throws { + + // There should be 5 tabs in this version for US users + + XCTAssertTrue(viewController.tabBar.items?.count == 5) + } + + func testTabBarItemRange() throws { + + //Using a tag is risky and this tests that the tab has the correct tag + + XCTAssertTrue(viewController.tabBar.items?[0].tag == 0) + + XCTAssertTrue(viewController.tabBar.items?[1].tag == 1) + + XCTAssertTrue(viewController.tabBar.items?[2].tag == 2) + + XCTAssertTrue(viewController.tabBar.items?[3].tag == 3) + + XCTAssertTrue(viewController.tabBar.items?[4].tag == 4) + + + } + +} + diff --git a/loafwalletTests/Legacy BRTests/DefaultFiatCurrencyTests.swift b/loafwalletTests/Legacy BRTests/DefaultFiatCurrencyTests.swift index d5ca15a54..d9589476d 100644 --- a/loafwalletTests/Legacy BRTests/DefaultFiatCurrencyTests.swift +++ b/loafwalletTests/Legacy BRTests/DefaultFiatCurrencyTests.swift @@ -1,28 +1,21 @@ - // DefaultCurrencyTests.swift -// breadwallet +// DefaultCurrencyTests.swift +// loafwalletTests // -// Created by Adrian Corscadden on 2017-04-06. -// Copyright © 2017 breadwallet LLC. All rights reserved. +// Created by Kerry Washington on 6/11/21. +// Copyright © 2021 Litecoin Foundation. All rights reserved. // - + import XCTest - @testable import loafwallet +@testable import loafwallet class DefaultCurrencyTests : XCTestCase { let defaultLocalCurrency = Locale(identifier: "en_US") - + override func setUp() { UserDefaults.standard.removeObject(forKey: "defaultcurrency") } - - func testInitialValue() { - - XCTAssertTrue(defaultLocalCurrency.currencyCode == - UserDefaults.defaultCurrencyCode, - "Default currency should be equal to the local currency (USD) by default") - } - + func testUpdateEUR() { UserDefaults.defaultCurrencyCode = "EUR" XCTAssertTrue(UserDefaults.defaultCurrencyCode == "EUR", "Default currency should update.") @@ -32,12 +25,12 @@ class DefaultCurrencyTests : XCTestCase { UserDefaults.defaultCurrencyCode = "JPY" XCTAssertTrue(UserDefaults.defaultCurrencyCode == "JPY", "Default currency should update.") } - + func testAction() { UserDefaults.defaultCurrencyCode = "USD" let store = Store() store.perform(action: DefaultCurrency.setDefault("CAD")) XCTAssertTrue(UserDefaults.defaultCurrencyCode == "CAD", "Actions should persist new value") } - } +