| Index: ios/chrome/browser/ui/settings/settings_navigation_controller_unittest.mm
|
| diff --git a/ios/chrome/browser/ui/settings/settings_navigation_controller_unittest.mm b/ios/chrome/browser/ui/settings/settings_navigation_controller_unittest.mm
|
| index 79355de561eb82694ab2fc389079884f8b903e96..8924d916ffdcf72c96646b9732679b39f054b7c5 100644
|
| --- a/ios/chrome/browser/ui/settings/settings_navigation_controller_unittest.mm
|
| +++ b/ios/chrome/browser/ui/settings/settings_navigation_controller_unittest.mm
|
| @@ -8,8 +8,6 @@
|
|
|
| #include <memory>
|
|
|
| -#include "base/mac/scoped_nsautorelease_pool.h"
|
| -#import "base/mac/scoped_nsobject.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "components/search_engines/template_url_service.h"
|
| #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
|
| @@ -29,6 +27,10 @@
|
| #import "third_party/ocmock/OCMock/OCMock.h"
|
| #include "third_party/ocmock/gtest_support.h"
|
|
|
| +#if !defined(__has_feature) || !__has_feature(objc_arc)
|
| +#error "This file requires ARC support."
|
| +#endif
|
| +
|
| namespace {
|
|
|
| NSString* const kSpdyProxyEnabled = @"SpdyProxyEnabled";
|
| @@ -49,9 +51,8 @@ class SettingsNavigationControllerTest : public PlatformTest {
|
| ios::TemplateURLServiceFactory::GetDefaultFactory());
|
| chrome_browser_state_ = test_cbs_builder.Build();
|
|
|
| - mockDelegate_.reset([[OCMockObject
|
| - niceMockForProtocol:@protocol(SettingsNavigationControllerDelegate)]
|
| - retain]);
|
| + mockDelegate_ = [OCMockObject
|
| + niceMockForProtocol:@protocol(SettingsNavigationControllerDelegate)];
|
|
|
| TemplateURLService* template_url_service =
|
| ios::TemplateURLServiceFactory::GetForBrowserState(
|
| @@ -59,15 +60,15 @@ class SettingsNavigationControllerTest : public PlatformTest {
|
| template_url_service->Load();
|
|
|
| NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
| - initialValueForSpdyProxyEnabled_.reset(
|
| - [[defaults stringForKey:kSpdyProxyEnabled] copy]);
|
| + initialValueForSpdyProxyEnabled_ =
|
| + [[defaults stringForKey:kSpdyProxyEnabled] copy];
|
| [defaults setObject:@"Disabled" forKey:kSpdyProxyEnabled];
|
| };
|
|
|
| ~SettingsNavigationControllerTest() override {
|
| if (initialValueForSpdyProxyEnabled_) {
|
| [[NSUserDefaults standardUserDefaults]
|
| - setObject:initialValueForSpdyProxyEnabled_.get()
|
| + setObject:initialValueForSpdyProxyEnabled_
|
| forKey:kSpdyProxyEnabled];
|
| } else {
|
| [[NSUserDefaults standardUserDefaults]
|
| @@ -78,45 +79,48 @@ class SettingsNavigationControllerTest : public PlatformTest {
|
| web::TestWebThreadBundle thread_bundle_;
|
| IOSChromeScopedTestingChromeBrowserStateManager scoped_browser_state_manager_;
|
| std::unique_ptr<TestChromeBrowserState> chrome_browser_state_;
|
| - base::mac::ScopedNSAutoreleasePool pool_;
|
| - base::scoped_nsprotocol<id> mockDelegate_;
|
| - base::scoped_nsobject<NSString> initialValueForSpdyProxyEnabled_;
|
| + id mockDelegate_;
|
| + NSString* initialValueForSpdyProxyEnabled_;
|
| };
|
|
|
| // When navigation stack has more than one view controller,
|
| // -popViewControllerAnimated: successfully removes the top view controller.
|
| TEST_F(SettingsNavigationControllerTest, PopController) {
|
| - base::scoped_nsobject<SettingsNavigationController> settingsController(
|
| - [SettingsNavigationController
|
| - newSettingsMainControllerWithMainBrowserState:chrome_browser_state_
|
| - .get()
|
| - currentBrowserState:chrome_browser_state_
|
| - .get()
|
| - delegate:nil]);
|
| - base::scoped_nsobject<UIViewController> viewController(
|
| - [[UIViewController alloc] initWithNibName:nil bundle:nil]);
|
| - [settingsController pushViewController:viewController animated:NO];
|
| - EXPECT_EQ(2U, [[settingsController viewControllers] count]);
|
| -
|
| - UIViewController* poppedViewController =
|
| - [settingsController popViewControllerAnimated:NO];
|
| - EXPECT_NSEQ(viewController, poppedViewController);
|
| - EXPECT_EQ(1U, [[settingsController viewControllers] count]);
|
| + @autoreleasepool {
|
| + SettingsNavigationController* settingsController =
|
| + [SettingsNavigationController
|
| + newSettingsMainControllerWithMainBrowserState:chrome_browser_state_
|
| + .get()
|
| + currentBrowserState:chrome_browser_state_
|
| + .get()
|
| + delegate:nil];
|
| + UIViewController* viewController =
|
| + [[UIViewController alloc] initWithNibName:nil bundle:nil];
|
| + [settingsController pushViewController:viewController animated:NO];
|
| + EXPECT_EQ(2U, [[settingsController viewControllers] count]);
|
| +
|
| + UIViewController* poppedViewController =
|
| + [settingsController popViewControllerAnimated:NO];
|
| + EXPECT_NSEQ(viewController, poppedViewController);
|
| + EXPECT_EQ(1U, [[settingsController viewControllers] count]);
|
| + }
|
| }
|
|
|
| // When the navigation stack has only one view controller,
|
| // -popViewControllerAnimated: returns false.
|
| TEST_F(SettingsNavigationControllerTest, DontPopRootController) {
|
| - base::scoped_nsobject<SettingsNavigationController> settingsController(
|
| - [SettingsNavigationController
|
| - newSettingsMainControllerWithMainBrowserState:chrome_browser_state_
|
| - .get()
|
| - currentBrowserState:chrome_browser_state_
|
| - .get()
|
| - delegate:nil]);
|
| - EXPECT_EQ(1U, [[settingsController viewControllers] count]);
|
| -
|
| - EXPECT_FALSE([settingsController popViewControllerAnimated:NO]);
|
| + @autoreleasepool {
|
| + SettingsNavigationController* settingsController =
|
| + [SettingsNavigationController
|
| + newSettingsMainControllerWithMainBrowserState:chrome_browser_state_
|
| + .get()
|
| + currentBrowserState:chrome_browser_state_
|
| + .get()
|
| + delegate:nil];
|
| + EXPECT_EQ(1U, [[settingsController viewControllers] count]);
|
| +
|
| + EXPECT_FALSE([settingsController popViewControllerAnimated:NO]);
|
| + }
|
| }
|
|
|
| // When the settings navigation stack has more than one view controller, calling
|
| @@ -124,21 +128,23 @@ TEST_F(SettingsNavigationControllerTest, DontPopRootController) {
|
| // reveal the view controller underneath.
|
| TEST_F(SettingsNavigationControllerTest,
|
| PopWhenNavigationStackSizeIsGreaterThanOne) {
|
| - base::scoped_nsobject<SettingsNavigationController> settingsController(
|
| - [SettingsNavigationController
|
| - newSettingsMainControllerWithMainBrowserState:chrome_browser_state_
|
| - .get()
|
| - currentBrowserState:chrome_browser_state_
|
| - .get()
|
| - delegate:mockDelegate_]);
|
| - base::scoped_nsobject<UIViewController> viewController(
|
| - [[UIViewController alloc] initWithNibName:nil bundle:nil]);
|
| - [settingsController pushViewController:viewController animated:NO];
|
| - EXPECT_EQ(2U, [[settingsController viewControllers] count]);
|
| - [[mockDelegate_ reject] closeSettings];
|
| - [settingsController popViewControllerOrCloseSettingsAnimated:NO];
|
| - EXPECT_EQ(1U, [[settingsController viewControllers] count]);
|
| - EXPECT_OCMOCK_VERIFY(mockDelegate_);
|
| + @autoreleasepool {
|
| + SettingsNavigationController* settingsController =
|
| + [SettingsNavigationController
|
| + newSettingsMainControllerWithMainBrowserState:chrome_browser_state_
|
| + .get()
|
| + currentBrowserState:chrome_browser_state_
|
| + .get()
|
| + delegate:mockDelegate_];
|
| + UIViewController* viewController =
|
| + [[UIViewController alloc] initWithNibName:nil bundle:nil];
|
| + [settingsController pushViewController:viewController animated:NO];
|
| + EXPECT_EQ(2U, [[settingsController viewControllers] count]);
|
| + [[mockDelegate_ reject] closeSettings];
|
| + [settingsController popViewControllerOrCloseSettingsAnimated:NO];
|
| + EXPECT_EQ(1U, [[settingsController viewControllers] count]);
|
| + EXPECT_OCMOCK_VERIFY(mockDelegate_);
|
| + }
|
| }
|
|
|
| // When the settings navigation stack only has one view controller, calling
|
| @@ -146,17 +152,19 @@ TEST_F(SettingsNavigationControllerTest,
|
| // delegate.
|
| TEST_F(SettingsNavigationControllerTest,
|
| CloseSettingsWhenNavigationStackSizeIsOne) {
|
| - base::scoped_nsobject<SettingsNavigationController> settingsController(
|
| - [SettingsNavigationController
|
| - newSettingsMainControllerWithMainBrowserState:chrome_browser_state_
|
| - .get()
|
| - currentBrowserState:chrome_browser_state_
|
| - .get()
|
| - delegate:mockDelegate_]);
|
| - EXPECT_EQ(1U, [[settingsController viewControllers] count]);
|
| - [[mockDelegate_ expect] closeSettings];
|
| - [settingsController popViewControllerOrCloseSettingsAnimated:NO];
|
| - EXPECT_OCMOCK_VERIFY(mockDelegate_);
|
| + @autoreleasepool {
|
| + SettingsNavigationController* settingsController =
|
| + [SettingsNavigationController
|
| + newSettingsMainControllerWithMainBrowserState:chrome_browser_state_
|
| + .get()
|
| + currentBrowserState:chrome_browser_state_
|
| + .get()
|
| + delegate:mockDelegate_];
|
| + EXPECT_EQ(1U, [[settingsController viewControllers] count]);
|
| + [[mockDelegate_ expect] closeSettings];
|
| + [settingsController popViewControllerOrCloseSettingsAnimated:NO];
|
| + EXPECT_OCMOCK_VERIFY(mockDelegate_);
|
| + }
|
| }
|
|
|
| } // namespace
|
|
|