diff options
author | shreyasv <shreyasv@chromium.org> | 2015-07-22 15:23:35 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-07-22 22:24:17 +0000 |
commit | 0951989b305296f8683c77c820d42792431fe3b3 (patch) | |
tree | 16c2dbcd24f2c073c06b8295bfa8d9ae515dc979 /ios | |
parent | 4f9d88d8fa0bef0c5fbbe5829bb2d387970a83f1 (diff) | |
download | chromium_src-0951989b305296f8683c77c820d42792431fe3b3.zip chromium_src-0951989b305296f8683c77c820d42792431fe3b3.tar.gz chromium_src-0951989b305296f8683c77c820d42792431fe3b3.tar.bz2 |
Refactoring web_test
Added a replacement for WebTestBase, UIWebViewWebTest, WKWebViewWebTest.
Deprecated the test fixtures.
Making them a typedef is an interim step before removing the
deprecated test fixtures.
Moved all tests in web to use the new test fixtures.
BUG=512910
Review URL: https://codereview.chromium.org/1245953005
Cr-Commit-Position: refs/heads/master@{#339959}
Diffstat (limited to 'ios')
-rw-r--r-- | ios/web/test/web_test.h | 43 | ||||
-rw-r--r-- | ios/web/web_state/js/common_js_unittest.mm | 6 | ||||
-rw-r--r-- | ios/web/web_state/js/core_js_unittest.mm | 4 | ||||
-rw-r--r-- | ios/web/web_state/js/crw_js_injection_manager_unittest.mm | 8 | ||||
-rw-r--r-- | ios/web/web_state/ui/crw_web_controller_observer_unittest.mm | 4 | ||||
-rw-r--r-- | ios/web/web_state/ui/crw_web_controller_unittest.mm | 47 |
6 files changed, 75 insertions, 37 deletions
diff --git a/ios/web/test/web_test.h b/ios/web/test/web_test.h index 56ee45a..1c9209d 100644 --- a/ios/web/test/web_test.h +++ b/ios/web/test/web_test.h @@ -30,9 +30,12 @@ namespace web { -// An abstract class of tests that need to create real WebControllers that can -// be loaded with test HTML and JavaScripts. Concrete subclasses override +// An abstract test fixture that sets up a WebControllers that can be loaded +// with test HTML and JavaScripts. Concrete subclasses override // |CreateWebController| specifying the test WebController object. +// DEPRECATED. Please use WebTestWithWebController instead. +// TODO(shreyasv): Remove this after all clients have stopped using it. +// crbug.com/512910. class WebTestBase : public PlatformTest, public base::MessageLoop::TaskObserver { public: @@ -88,11 +91,22 @@ class WebTestBase : public PlatformTest, #pragma mark - -// A concrete test class that is needed to create a real -// CRWUIWebViewWebController. -class UIWebViewWebTest : public WebTestBase { +// A test fixture that sets up a WebControllers that can be loaded with test +// HTML and JavaScripts. Concrete subclasses override |CreateWebController| +// specifying the test WebController object. +typedef WebTestBase WebTestWithWebController; + +#pragma mark - + +// A test fixtures thats creates a CRWUIWebViewWebController for testing. +// DEPRECATED. Please use WebTestWithUIWebViewWebController instead. +// TODO(shreyasv): Remove this once all clients have moved over. +// crbug.com/512910. +class UIWebViewWebTest : public WebTestWithWebController { protected: + // WebTestWithWebController methods. CRWWebController* CreateWebController() override; + // Invokes JS->ObjC messages directly on the web controller, registering a // human interaction if userIsInteraction==YES. |commands| should be a // stringified message queue. @@ -103,13 +117,26 @@ class UIWebViewWebTest : public WebTestBase { #pragma mark - -// A concrete test class that is needed to create a real -// CRWWKWebViewWebController. -class WKWebViewWebTest : public WebTestBase { +// A test fixtures thats creates a CRWUIWebViewWebController for testing. +typedef UIWebViewWebTest WebTestWithUIWebViewWebController; + +#pragma mark - + +// A test fixtures thats creates a CRWWKWebViewWebController for testing. +// DEPRECATED. Please use WebTestWithWKWebViewWebController instead. +// TODO(shreyasv): Remove this once all clients have moved over. +// crbug.com/512910. +class WKWebViewWebTest : public WebTestWithWebController { protected: + // WebTestWithWebController methods. CRWWebController* CreateWebController() override; }; +#pragma mark - + +// A test fixtures thats creates a CRWWKWebViewWebController for testing. +typedef WKWebViewWebTest WebTestWithWKWebViewWebController; + } // namespace web #endif // IOS_WEB_TEST_WEB_TEST_H_ diff --git a/ios/web/web_state/js/common_js_unittest.mm b/ios/web/web_state/js/common_js_unittest.mm index 0f7048b..2044cbf 100644 --- a/ios/web/web_state/js/common_js_unittest.mm +++ b/ios/web/web_state/js/common_js_unittest.mm @@ -31,10 +31,12 @@ template <typename WebTestT> class CommonJsTest : public WebTestT {}; // Concrete test fixture to test core.js using UIWebView-based web controller. -typedef CommonJsTest<web::UIWebViewWebTest> CommonJSUIWebViewTest; +typedef CommonJsTest<web::WebTestWithUIWebViewWebController> + CommonJSUIWebViewTest; // Concrete test fixture to test core.js using WKWebView-based web controller. -typedef CommonJsTest<web::WKWebViewWebTest> CommonJSWKWebViewTest; +typedef CommonJsTest<web::WebTestWithWKWebViewWebController> + CommonJSWKWebViewTest; WEB_TEST_F(CommonJSUIWebViewTest, CommonJSWKWebViewTest, Foo) { this->LoadHtml(@"<html><body>" diff --git a/ios/web/web_state/js/core_js_unittest.mm b/ios/web/web_state/js/core_js_unittest.mm index ee8305c..93b91b5 100644 --- a/ios/web/web_state/js/core_js_unittest.mm +++ b/ios/web/web_state/js/core_js_unittest.mm @@ -68,10 +68,10 @@ class CoreJsTest : public WebTestT { }; // Concrete test fixture to test core.js using UIWebView-based web controller. -typedef CoreJsTest<web::UIWebViewWebTest> CoreJSUIWebViewTest; +typedef CoreJsTest<web::WebTestWithUIWebViewWebController> CoreJSUIWebViewTest; // Concrete test fixture to test core.js using WKWebView-based web controller. -typedef CoreJsTest<web::WKWebViewWebTest> CoreJSWKWebViewTest; +typedef CoreJsTest<web::WebTestWithWKWebViewWebController> CoreJSWKWebViewTest; WEB_TEST_F(CoreJSUIWebViewTest, CoreJSWKWebViewTest, GetImageUrlAtPoint) { NSString* htmlForImage = diff --git a/ios/web/web_state/js/crw_js_injection_manager_unittest.mm b/ios/web/web_state/js/crw_js_injection_manager_unittest.mm index 854bde2..fb7f657 100644 --- a/ios/web/web_state/js/crw_js_injection_manager_unittest.mm +++ b/ios/web/web_state/js/crw_js_injection_manager_unittest.mm @@ -176,17 +176,17 @@ class JsInjectionManagerTest : public WebTestT { }; // Concrete test fixture to test UIWebView-based web controller injection. -typedef JsInjectionManagerTest<web::UIWebViewWebTest> +typedef JsInjectionManagerTest<web::WebTestWithUIWebViewWebController> JsInjectionManagerUIWebViewTest; // Concrete test fixture to test WKWebView-based web controller injection. -class JsInjectionManagerWKWebViewTest : - public JsInjectionManagerTest<web::WKWebViewWebTest> { +class JsInjectionManagerWKWebViewTest + : public JsInjectionManagerTest<web::WebTestWithWKWebViewWebController> { protected: void SetUp() override { // SetUp crashes on WKWebView creation if running on iOS7. CR_TEST_REQUIRES_WK_WEB_VIEW(); - JsInjectionManagerTest<web::WKWebViewWebTest>::SetUp(); + JsInjectionManagerTest<web::WebTestWithWKWebViewWebController>::SetUp(); } }; diff --git a/ios/web/web_state/ui/crw_web_controller_observer_unittest.mm b/ios/web/web_state/ui/crw_web_controller_observer_unittest.mm index 9b99c9a..685428a 100644 --- a/ios/web/web_state/ui/crw_web_controller_observer_unittest.mm +++ b/ios/web/web_state/ui/crw_web_controller_observer_unittest.mm @@ -44,11 +44,11 @@ class CRWWebControllerObserverTest : public WebTestT { }; // Concrete test fixture to test UIWebView-based web controller observing. -typedef CRWWebControllerObserverTest<web::UIWebViewWebTest> +typedef CRWWebControllerObserverTest<web::WebTestWithUIWebViewWebController> CRWUIWebViewWebControllerObserverTest; // Concrete test fixture to test WKWebView-based web controller observing. -typedef CRWWebControllerObserverTest<web::WKWebViewWebTest> +typedef CRWWebControllerObserverTest<web::WebTestWithWKWebViewWebController> CRWWKWebViewWebControllerObserverTest; WEB_TEST_F(CRWUIWebViewWebControllerObserverTest, diff --git a/ios/web/web_state/ui/crw_web_controller_unittest.mm b/ios/web/web_state/ui/crw_web_controller_unittest.mm index 4e7a4ed..7061196 100644 --- a/ios/web/web_state/ui/crw_web_controller_unittest.mm +++ b/ios/web/web_state/ui/crw_web_controller_unittest.mm @@ -341,7 +341,7 @@ class WebControllerTest : public WebTestT { }; class CRWUIWebViewWebControllerTest - : public WebControllerTest<web::UIWebViewWebTest> { + : public WebControllerTest<web::WebTestWithUIWebViewWebController> { protected: UIView* CreateMockWebView() const override { id result = [[OCMockObject mockForClass:[UIWebView class]] retain]; @@ -367,11 +367,11 @@ class CRWUIWebViewWebControllerTest }; class CRWWKWebViewWebControllerTest - : public WebControllerTest<web::WKWebViewWebTest> { + : public WebControllerTest<web::WebTestWithWKWebViewWebController> { protected: void SetUp() override { CR_TEST_REQUIRES_WK_WEB_VIEW(); - WebControllerTest<web::WKWebViewWebTest>::SetUp(); + WebControllerTest<web::WebTestWithWKWebViewWebController>::SetUp(); } UIView* CreateMockWebView() const override { id result = [[OCMockObject mockForClass:[WKWebView class]] retain]; @@ -896,10 +896,12 @@ TEST_F(CRWWKWebViewWebControllerTest, SSLError) { #endif // !defined(ENABLE_CHROME_NET_STACK_FOR_WKWEBVIEW) // None of the |CRWUIWebViewWebControllerTest| setup is needed; -typedef web::UIWebViewWebTest CRWUIWebControllerPageDialogsOpenPolicyTest; +typedef web::WebTestWithUIWebViewWebController + CRWUIWebControllerPageDialogsOpenPolicyTest; // None of the |CRWWKWebViewWebControllerTest| setup is needed; -typedef web::WKWebViewWebTest CRWWKWebControllerPageDialogsOpenPolicyTest; +typedef web::WebTestWithWKWebViewWebController + CRWWKWebControllerPageDialogsOpenPolicyTest; WEB_TEST_F(CRWUIWebControllerPageDialogsOpenPolicyTest, CRWWKWebControllerPageDialogsOpenPolicyTest, @@ -919,7 +921,8 @@ WEB_TEST_F(CRWUIWebControllerPageDialogsOpenPolicyTest, // A separate test class, as none of the |CRWUIWebViewWebControllerTest| setup // is needed; -class CRWUIWebControllerPageScrollStateTest : public web::UIWebViewWebTest { +class CRWUIWebControllerPageScrollStateTest + : public web::WebTestWithUIWebViewWebController { protected: // Returns a web::PageDisplayState that will scroll a UIWebView to // |scrollOffset| and zoom the content by |relativeZoomScale|. @@ -938,7 +941,8 @@ class CRWUIWebControllerPageScrollStateTest : public web::UIWebViewWebTest { // A separate test class, as none of the |CRWUIWebViewWebControllerTest| setup // is needed; -class CRWWKWebControllerPageScrollStateTest : public web::WKWebViewWebTest { +class CRWWKWebControllerPageScrollStateTest + : public web::WebTestWithWKWebViewWebController { protected: // Returns a web::PageDisplayState that will scroll a WKWebView to // |scrollOffset| and zoom the content by |relativeZoomScale|. @@ -1179,10 +1183,12 @@ TEST_F(WebControllerJSEvaluationTest, JavaScriptEvaluationNilHandler) { } // Real UIWebView is required for JSEvaluationTest. -typedef web::UIWebViewWebTest CRWUIWebControllerJSEvaluationTest; +typedef web::WebTestWithUIWebViewWebController + CRWUIWebControllerJSEvaluationTest; // Real WKWebView is required for JSEvaluationTest. -typedef web::WKWebViewWebTest CRWWKWebControllerJSEvaluationTest; +typedef web::WebTestWithWKWebViewWebController + CRWWKWebControllerJSEvaluationTest; // Tests that a script correctly evaluates to string. WEB_TEST_F(CRWUIWebControllerJSEvaluationTest, @@ -1213,10 +1219,11 @@ WEB_TEST_F(CRWUIWebControllerJSEvaluationTest, // A separate test class is used for testing the keyboard dismissal, as none of // the setup in |CRWUIWebViewWebControllerTest| is needed; keyboard appearance // is tracked by the KeyboardAppearanceListener. -class WebControllerKeyboardTest : public web::UIWebViewWebTest { +class WebControllerKeyboardTest + : public web::WebTestWithUIWebViewWebController { protected: void SetUp() override { - UIWebViewWebTest::SetUp(); + web::WebTestWithUIWebViewWebController::SetUp(); // Close any outstanding alert boxes. ui::test::uiview_utils::CancelAlerts(); @@ -1293,8 +1300,8 @@ TEST_F(CRWWKWebViewWebControllerTest, WebURLWithTrustLevel) { // A separate test class, as none of the |CRWUIWebViewWebControllerTest| setup // is needed; -typedef web::UIWebViewWebTest CRWUIWebControllerObserversTest; -typedef web::WKWebViewWebTest CRWWKWebControllerObserversTest; +typedef web::WebTestWithUIWebViewWebController CRWUIWebControllerObserversTest; +typedef web::WebTestWithWKWebViewWebController CRWWKWebControllerObserversTest; // Tests that CRWWebControllerObservers are called. WEB_TEST_F(CRWUIWebControllerObserversTest, @@ -1329,11 +1336,12 @@ WEB_TEST_F(CRWUIWebControllerObserversTest, }; // Test fixture for window.open tests. -class CRWWKWebControllerWindowOpenTest : public web::WKWebViewWebTest { +class CRWWKWebControllerWindowOpenTest + : public web::WebTestWithWKWebViewWebController { protected: void SetUp() override { CR_TEST_REQUIRES_WK_WEB_VIEW(); - WKWebViewWebTest::SetUp(); + web::WebTestWithWKWebViewWebController::SetUp(); // Configure web delegate. delegate_.reset([[MockInteractionLoader alloc] @@ -1362,7 +1370,7 @@ class CRWWKWebControllerWindowOpenTest : public web::WKWebViewWebTest { [webController_ setDelegate:nil]; [child_ close]; - WKWebViewWebTest::TearDown(); + web::WebTestWithWKWebViewWebController::TearDown(); } // Executes JavaScript that opens a new window and returns evaluation result // as a string. @@ -1475,11 +1483,12 @@ TEST_F(CRWWKWebControllerWindowOpenTest, BlockPopup) { }; // Fixture class to test WKWebView crashes. -class CRWWKWebControllerWebProcessTest : public web::WKWebViewWebTest { +class CRWWKWebControllerWebProcessTest + : public web::WebTestWithWKWebViewWebController { protected: void SetUp() override { CR_TEST_REQUIRES_WK_WEB_VIEW(); - WKWebViewWebTest::SetUp(); + web::WebTestWithWKWebViewWebController::SetUp(); webView_.reset(web::CreateTerminatedWKWebView()); base::scoped_nsobject<TestWebViewContentView> webViewContentView( [[TestWebViewContentView alloc] @@ -1507,7 +1516,7 @@ TEST_F(CRWWKWebControllerWebProcessTest, Crash) { // Tests that WKWebView does not crash if deallocation happens during JavaScript // evaluation. -typedef web::WKWebViewWebTest DeallocationDuringJSEvaluation; +typedef web::WebTestWithWKWebViewWebController DeallocationDuringJSEvaluation; TEST_F(DeallocationDuringJSEvaluation, NoCrash) { CR_TEST_REQUIRES_WK_WEB_VIEW(); |