Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" | 5 #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" |
| 6 | 6 |
| 7 #import <Foundation/Foundation.h> | 7 #import <Foundation/Foundation.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| 11 #include "base/mac/scoped_nsautorelease_pool.h" | 11 #include "base/mac/scoped_nsautorelease_pool.h" |
| 12 #import "base/mac/scoped_nsobject.h" | 12 #import "base/mac/scoped_nsobject.h" |
| 13 #include "base/memory/ptr_util.h" | 13 #include "base/memory/ptr_util.h" |
| 14 #include "components/search_engines/template_url_service.h" | 14 #include "components/search_engines/template_url_service.h" |
| 15 #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" | 15 #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" |
| 16 #include "ios/chrome/browser/browser_state/test_chrome_browser_state_manager.h" | 16 #include "ios/chrome/browser/browser_state/test_chrome_browser_state_manager.h" |
| 17 #include "ios/chrome/browser/search_engines/template_url_service_factory.h" | 17 #include "ios/chrome/browser/search_engines/template_url_service_factory.h" |
| 18 #import "ios/chrome/browser/signin/authentication_service.h" | 18 #import "ios/chrome/browser/signin/authentication_service.h" |
| 19 #include "ios/chrome/browser/signin/authentication_service_factory.h" | 19 #include "ios/chrome/browser/signin/authentication_service_factory.h" |
| 20 #import "ios/chrome/browser/signin/authentication_service_fake.h" | 20 #import "ios/chrome/browser/signin/authentication_service_fake.h" |
| 21 #include "ios/chrome/browser/sync/sync_setup_service.h" | 21 #include "ios/chrome/browser/sync/sync_setup_service.h" |
| 22 #include "ios/chrome/browser/sync/sync_setup_service_factory.h" | 22 #include "ios/chrome/browser/sync/sync_setup_service_factory.h" |
| 23 #include "ios/chrome/test/testing_application_context.h" | 23 #include "ios/chrome/test/ios_chrome_scoped_testing_chrome_browser_state_manager .h" |
| 24 #include "ios/web/public/test/test_web_thread_bundle.h" | 24 #include "ios/web/public/test/test_web_thread_bundle.h" |
| 25 #include "testing/gmock/include/gmock/gmock.h" | 25 #include "testing/gmock/include/gmock/gmock.h" |
| 26 #include "testing/gtest/include/gtest/gtest.h" | 26 #include "testing/gtest/include/gtest/gtest.h" |
| 27 #import "testing/gtest_mac.h" | 27 #import "testing/gtest_mac.h" |
| 28 #include "testing/platform_test.h" | 28 #include "testing/platform_test.h" |
| 29 #import "third_party/ocmock/OCMock/OCMock.h" | 29 #import "third_party/ocmock/OCMock/OCMock.h" |
| 30 #include "third_party/ocmock/gtest_support.h" | 30 #include "third_party/ocmock/gtest_support.h" |
| 31 | 31 |
| 32 namespace { | 32 namespace { |
| 33 | 33 |
| 34 NSString* const kSpdyProxyEnabled = @"SpdyProxyEnabled"; | 34 NSString* const kSpdyProxyEnabled = @"SpdyProxyEnabled"; |
| 35 | 35 |
| 36 using testing::ReturnRef; | 36 using testing::ReturnRef; |
| 37 | 37 |
| 38 class SettingsNavigationControllerTest : public PlatformTest { | 38 class SettingsNavigationControllerTest : public PlatformTest { |
| 39 protected: | 39 protected: |
| 40 SettingsNavigationControllerTest() | 40 SettingsNavigationControllerTest() |
| 41 : browser_state_manager_(base::FilePath()) {} | 41 : scoped_browser_state_manager_( |
| 42 | 42 base::MakeUnique<TestChromeBrowserStateManager>(base::FilePath())) { |
| 43 void SetUp() override { | |
| 44 PlatformTest::SetUp(); | |
| 45 TestingApplicationContext::GetGlobal()->SetChromeBrowserStateManager( | |
| 46 &browser_state_manager_); | |
| 47 | |
| 48 TestChromeBrowserState::Builder test_cbs_builder; | 43 TestChromeBrowserState::Builder test_cbs_builder; |
| 49 test_cbs_builder.AddTestingFactory( | 44 test_cbs_builder.AddTestingFactory( |
| 50 AuthenticationServiceFactory::GetInstance(), | 45 AuthenticationServiceFactory::GetInstance(), |
| 51 &AuthenticationServiceFake::CreateAuthenticationService); | 46 &AuthenticationServiceFake::CreateAuthenticationService); |
| 52 test_cbs_builder.AddTestingFactory( | 47 test_cbs_builder.AddTestingFactory( |
| 53 ios::TemplateURLServiceFactory::GetInstance(), | 48 ios::TemplateURLServiceFactory::GetInstance(), |
| 54 ios::TemplateURLServiceFactory::GetDefaultFactory()); | 49 ios::TemplateURLServiceFactory::GetDefaultFactory()); |
| 55 chrome_browser_state_ = test_cbs_builder.Build(); | 50 chrome_browser_state_ = test_cbs_builder.Build(); |
| 56 | 51 |
| 57 mockDelegate_.reset([[OCMockObject | 52 mockDelegate_.reset([[OCMockObject |
| 58 niceMockForProtocol:@protocol(SettingsNavigationControllerDelegate)] | 53 niceMockForProtocol:@protocol(SettingsNavigationControllerDelegate)] |
| 59 retain]); | 54 retain]); |
| 60 | 55 |
| 61 TemplateURLService* template_url_service = | 56 TemplateURLService* template_url_service = |
| 62 ios::TemplateURLServiceFactory::GetForBrowserState( | 57 ios::TemplateURLServiceFactory::GetForBrowserState( |
| 63 chrome_browser_state_.get()); | 58 chrome_browser_state_.get()); |
| 64 template_url_service->Load(); | 59 template_url_service->Load(); |
| 65 | 60 |
| 66 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; | 61 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; |
| 67 initialValueForSpdyProxyEnabled_.reset( | 62 initialValueForSpdyProxyEnabled_.reset( |
| 68 [[defaults stringForKey:kSpdyProxyEnabled] copy]); | 63 [[defaults stringForKey:kSpdyProxyEnabled] copy]); |
| 69 [defaults setObject:@"Disabled" forKey:kSpdyProxyEnabled]; | 64 [defaults setObject:@"Disabled" forKey:kSpdyProxyEnabled]; |
| 70 }; | 65 }; |
| 71 | 66 |
| 72 void TearDown() override { | 67 ~SettingsNavigationControllerTest() override { |
| 73 if (initialValueForSpdyProxyEnabled_) { | 68 if (initialValueForSpdyProxyEnabled_) { |
| 74 [[NSUserDefaults standardUserDefaults] | 69 [[NSUserDefaults standardUserDefaults] |
| 75 setObject:initialValueForSpdyProxyEnabled_.get() | 70 setObject:initialValueForSpdyProxyEnabled_.get() |
| 76 forKey:kSpdyProxyEnabled]; | 71 forKey:kSpdyProxyEnabled]; |
| 77 } else { | 72 } else { |
| 78 [[NSUserDefaults standardUserDefaults] | 73 [[NSUserDefaults standardUserDefaults] |
| 79 removeObjectForKey:kSpdyProxyEnabled]; | 74 removeObjectForKey:kSpdyProxyEnabled]; |
| 80 } | 75 } |
| 81 TestingApplicationContext::GetGlobal()->SetChromeBrowserStateManager( | |
| 82 nullptr); | |
| 83 PlatformTest::TearDown(); | |
| 84 } | 76 } |
| 85 | 77 |
| 86 web::TestWebThreadBundle threadBundle_; | 78 web::TestWebThreadBundle thread_Bundle_; |
|
rohitrao (ping after 24h)
2017/01/10 17:22:09
Capital B?
sdefresne
2017/01/10 17:51:25
Fixed.
| |
| 87 TestChromeBrowserStateManager browser_state_manager_; | 79 IOSChromeScopedTestingChromeBrowserStateManager scoped_browser_state_manager_; |
| 88 std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; | 80 std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; |
| 89 base::mac::ScopedNSAutoreleasePool pool; | 81 base::mac::ScopedNSAutoreleasePool pool_; |
| 90 base::scoped_nsprotocol<id> mockDelegate_; | 82 base::scoped_nsprotocol<id> mockDelegate_; |
| 91 base::scoped_nsobject<NSString> initialValueForSpdyProxyEnabled_; | 83 base::scoped_nsobject<NSString> initialValueForSpdyProxyEnabled_; |
| 92 }; | 84 }; |
| 93 | 85 |
| 94 // When navigation stack has more than one view controller, | 86 // When navigation stack has more than one view controller, |
| 95 // -popViewControllerAnimated: successfully removes the top view controller. | 87 // -popViewControllerAnimated: successfully removes the top view controller. |
| 96 TEST_F(SettingsNavigationControllerTest, PopController) { | 88 TEST_F(SettingsNavigationControllerTest, PopController) { |
| 97 base::scoped_nsobject<SettingsNavigationController> settingsController( | 89 base::scoped_nsobject<SettingsNavigationController> settingsController( |
| 98 [SettingsNavigationController | 90 [SettingsNavigationController |
| 99 newSettingsMainControllerWithMainBrowserState:chrome_browser_state_ | 91 newSettingsMainControllerWithMainBrowserState:chrome_browser_state_ |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 161 currentBrowserState:chrome_browser_state_ | 153 currentBrowserState:chrome_browser_state_ |
| 162 .get() | 154 .get() |
| 163 delegate:mockDelegate_]); | 155 delegate:mockDelegate_]); |
| 164 EXPECT_EQ(1U, [[settingsController viewControllers] count]); | 156 EXPECT_EQ(1U, [[settingsController viewControllers] count]); |
| 165 [[mockDelegate_ expect] closeSettings]; | 157 [[mockDelegate_ expect] closeSettings]; |
| 166 [settingsController popViewControllerOrCloseSettingsAnimated:NO]; | 158 [settingsController popViewControllerOrCloseSettingsAnimated:NO]; |
| 167 EXPECT_OCMOCK_VERIFY(mockDelegate_); | 159 EXPECT_OCMOCK_VERIFY(mockDelegate_); |
| 168 } | 160 } |
| 169 | 161 |
| 170 } // namespace | 162 } // namespace |
| OLD | NEW |