summaryrefslogtreecommitdiffstats
path: root/ios
diff options
context:
space:
mode:
authorshreyasv <shreyasv@chromium.org>2015-07-22 15:23:35 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-22 22:24:17 +0000
commit0951989b305296f8683c77c820d42792431fe3b3 (patch)
tree16c2dbcd24f2c073c06b8295bfa8d9ae515dc979 /ios
parent4f9d88d8fa0bef0c5fbbe5829bb2d387970a83f1 (diff)
downloadchromium_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.h43
-rw-r--r--ios/web/web_state/js/common_js_unittest.mm6
-rw-r--r--ios/web/web_state/js/core_js_unittest.mm4
-rw-r--r--ios/web/web_state/js/crw_js_injection_manager_unittest.mm8
-rw-r--r--ios/web/web_state/ui/crw_web_controller_observer_unittest.mm4
-rw-r--r--ios/web/web_state/ui/crw_web_controller_unittest.mm47
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();