| Index: ios/web/web_state/js/crw_js_injection_manager_unittest.mm
|
| 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 dfc635abbfca698ee23bde3561f7492a1b210d87..3a5cfdc68b6b0cba8d53ba855e3840567ed0630b 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
|
| @@ -3,9 +3,8 @@
|
| // found in the LICENSE file.
|
|
|
| #include <stddef.h>
|
| -#import <UIKit/UIWebView.h>
|
| +#import <Foundation/Foundation.h>
|
|
|
| -#include "ios/web/public/test/web_test_util.h"
|
| #import "ios/web/public/web_state/js/crw_js_injection_manager.h"
|
| #import "ios/web/public/web_state/js/crw_js_injection_receiver.h"
|
| #import "ios/web/test/web_test.h"
|
| @@ -154,18 +153,16 @@
|
|
|
| #pragma mark -
|
|
|
| -namespace {
|
| +namespace web {
|
|
|
| -// A mixin class for testing with CRWWKWebViewWebController or
|
| -// CRWUIWebViewWebController.
|
| -template <typename WebTestT>
|
| -class JsInjectionManagerTest : public WebTestT {
|
| +// Test fixture to test web controller injection.
|
| +class JsInjectionManagerTest : public web::WebTestWithWKWebViewWebController {
|
| protected:
|
| - virtual void SetUp() override {
|
| - WebTestT::SetUp();
|
| + void SetUp() override {
|
| + web::WebTestWithWKWebViewWebController::SetUp();
|
| // Loads a dummy page to prepare JavaScript evaluation.
|
| NSString* const kPageContent = @"<html><body><div></div></body></html>";
|
| - WebTestT::LoadHtml(kPageContent);
|
| + LoadHtml(kPageContent);
|
| }
|
| // Returns the manager of the given class.
|
| CRWJSInjectionManager* GetInstanceOfClass(Class jsInjectionManagerClass);
|
| @@ -176,26 +173,9 @@ class JsInjectionManagerTest : public WebTestT {
|
| void TestAllDependencies(NSArray* expected, NSArray* actual);
|
| };
|
|
|
| -// Concrete test fixture to test UIWebView-based web controller injection.
|
| -typedef JsInjectionManagerTest<web::WebTestWithUIWebViewWebController>
|
| - JsInjectionManagerUIWebViewTest;
|
| -
|
| -// Concrete test fixture to test WKWebView-based web controller injection.
|
| -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::WebTestWithWKWebViewWebController>::SetUp();
|
| - }
|
| -};
|
| -
|
| -template <typename WebTestT>
|
| -bool JsInjectionManagerTest<WebTestT>::HasReceiverManagers(
|
| - NSArray* manager_classes) {
|
| +bool JsInjectionManagerTest::HasReceiverManagers(NSArray* manager_classes) {
|
| NSDictionary* receiver_managers =
|
| - [[WebTestT::webController_ jsInjectionReceiver] managers];
|
| + [[webController_ jsInjectionReceiver] managers];
|
| for (Class manager_class in manager_classes) {
|
| if (![receiver_managers objectForKey:manager_class])
|
| return false;
|
| @@ -203,10 +183,8 @@ bool JsInjectionManagerTest<WebTestT>::HasReceiverManagers(
|
| return true;
|
| }
|
|
|
| -template <typename WebTestT>
|
| -void JsInjectionManagerTest<WebTestT>::TestAllDependencies(
|
| - NSArray* expected_classes,
|
| - NSArray* actual) {
|
| +void JsInjectionManagerTest::TestAllDependencies(NSArray* expected_classes,
|
| + NSArray* actual) {
|
| EXPECT_EQ([expected_classes count], [actual count]);
|
|
|
| for (Class manager_class in expected_classes) {
|
| @@ -224,57 +202,49 @@ void JsInjectionManagerTest<WebTestT>::TestAllDependencies(
|
| }
|
| }
|
|
|
| -template <typename WebTestT>
|
| -CRWJSInjectionManager* JsInjectionManagerTest<WebTestT>::GetInstanceOfClass(
|
| +CRWJSInjectionManager* JsInjectionManagerTest::GetInstanceOfClass(
|
| Class jsInjectionManagerClass) {
|
| - return [[WebTestT::webController_ jsInjectionReceiver]
|
| + return [[webController_ jsInjectionReceiver]
|
| instanceOfClass:jsInjectionManagerClass];
|
| }
|
|
|
| -WEB_TEST_F(JsInjectionManagerUIWebViewTest,
|
| - JsInjectionManagerWKWebViewTest,
|
| - NoDependencies) {
|
| +TEST_F(JsInjectionManagerTest, NoDependencies) {
|
| NSUInteger originalCount =
|
| - [[[this->webController_ jsInjectionReceiver] managers] count];
|
| + [[[webController_ jsInjectionReceiver] managers] count];
|
| CRWJSInjectionManager* manager =
|
| - this->GetInstanceOfClass([TestingCRWJSBaseManager class]);
|
| + GetInstanceOfClass([TestingCRWJSBaseManager class]);
|
| EXPECT_TRUE(manager);
|
| EXPECT_EQ(originalCount + 1U,
|
| - [[[this->webController_ jsInjectionReceiver] managers] count]);
|
| - EXPECT_TRUE(this->HasReceiverManagers(@[ [TestingCRWJSBaseManager class] ]));
|
| + [[[webController_ jsInjectionReceiver] managers] count]);
|
| + EXPECT_TRUE(HasReceiverManagers(@[ [TestingCRWJSBaseManager class] ]));
|
| EXPECT_FALSE([manager hasBeenInjected]);
|
|
|
| [manager inject];
|
| EXPECT_TRUE([manager hasBeenInjected]);
|
| }
|
|
|
| -WEB_TEST_F(JsInjectionManagerUIWebViewTest,
|
| - JsInjectionManagerWKWebViewTest,
|
| - HasDependencies) {
|
| +TEST_F(JsInjectionManagerTest, HasDependencies) {
|
| NSUInteger originalCount =
|
| - [[[this->webController_ jsInjectionReceiver] managers] count];
|
| - CRWJSInjectionManager* manager =
|
| - this->GetInstanceOfClass([TestingJsManager class]);
|
| + [[[webController_ jsInjectionReceiver] managers] count];
|
| + CRWJSInjectionManager* manager = GetInstanceOfClass([TestingJsManager class]);
|
| EXPECT_TRUE(manager);
|
| EXPECT_EQ(originalCount + 2U,
|
| - [[[this->webController_ jsInjectionReceiver] managers] count])
|
| + [[[webController_ jsInjectionReceiver] managers] count])
|
| << "Two more CRWJSInjectionManagers should be created.";
|
| - EXPECT_TRUE(this->HasReceiverManagers(
|
| + EXPECT_TRUE(HasReceiverManagers(
|
| @[ [TestingCRWJSBaseManager class], [TestingCRWJSBaseManager class] ]));
|
|
|
| EXPECT_FALSE([manager hasBeenInjected]);
|
|
|
| [manager inject];
|
| EXPECT_TRUE([manager hasBeenInjected]);
|
| - EXPECT_TRUE([this->GetInstanceOfClass([TestingCRWJSBaseManager class])
|
| - hasBeenInjected]);
|
| + EXPECT_TRUE(
|
| + [GetInstanceOfClass([TestingCRWJSBaseManager class]) hasBeenInjected]);
|
| }
|
|
|
| -WEB_TEST_F(JsInjectionManagerUIWebViewTest,
|
| - JsInjectionManagerWKWebViewTest,
|
| - Dynamic) {
|
| +TEST_F(JsInjectionManagerTest, Dynamic) {
|
| CRWJSInjectionManager* manager =
|
| - this->GetInstanceOfClass([TestingDynamicJsManager class]);
|
| + GetInstanceOfClass([TestingDynamicJsManager class]);
|
| EXPECT_TRUE(manager);
|
|
|
| EXPECT_FALSE([manager hasBeenInjected]);
|
| @@ -284,67 +254,56 @@ WEB_TEST_F(JsInjectionManagerUIWebViewTest,
|
| EXPECT_NSNE([manager injectionContent], [manager injectionContent]);
|
| }
|
|
|
| -WEB_TEST_F(JsInjectionManagerUIWebViewTest,
|
| - JsInjectionManagerWKWebViewTest,
|
| - HasNestedDependencies) {
|
| +TEST_F(JsInjectionManagerTest, HasNestedDependencies) {
|
| NSUInteger originalCount =
|
| - [[[this->webController_ jsInjectionReceiver] managers] count];
|
| + [[[webController_ jsInjectionReceiver] managers] count];
|
| CRWJSInjectionManager* manager =
|
| - this->GetInstanceOfClass([TestingJsManagerWithNestedDependencies class]);
|
| + GetInstanceOfClass([TestingJsManagerWithNestedDependencies class]);
|
| EXPECT_TRUE(manager);
|
| EXPECT_EQ(originalCount + 3U,
|
| - [[[this->webController_ jsInjectionReceiver] managers] count])
|
| + [[[webController_ jsInjectionReceiver] managers] count])
|
| << "Three more CRWJSInjectionManagers should be created.";
|
| - EXPECT_TRUE(this->HasReceiverManagers(@[
|
| + EXPECT_TRUE(HasReceiverManagers(@[
|
| [TestingJsManagerWithNestedDependencies class],
|
| - [TestingCRWJSBaseManager class],
|
| - [TestingCRWJSBaseManager class]
|
| + [TestingCRWJSBaseManager class], [TestingCRWJSBaseManager class]
|
| ]));
|
|
|
| EXPECT_FALSE([manager hasBeenInjected]);
|
|
|
| [manager inject];
|
| EXPECT_TRUE([manager hasBeenInjected]);
|
| + EXPECT_TRUE([GetInstanceOfClass([TestingJsManager class]) hasBeenInjected]);
|
| EXPECT_TRUE(
|
| - [this->GetInstanceOfClass([TestingJsManager class]) hasBeenInjected]);
|
| - EXPECT_TRUE([this->GetInstanceOfClass([TestingCRWJSBaseManager class])
|
| - hasBeenInjected]);
|
| + [GetInstanceOfClass([TestingCRWJSBaseManager class]) hasBeenInjected]);
|
|
|
| NSArray* list = [manager allDependencies];
|
| - this->TestAllDependencies(
|
| + TestAllDependencies(
|
| @[
|
| - [TestingCRWJSBaseManager class],
|
| - [TestingJsManager class],
|
| + [TestingCRWJSBaseManager class], [TestingJsManager class],
|
| [TestingJsManagerWithNestedDependencies class]
|
| ],
|
| list);
|
| }
|
|
|
| // Tests that checking for an uninjected presence beacon returns false.
|
| -WEB_TEST_F(JsInjectionManagerUIWebViewTest,
|
| - JsInjectionManagerWKWebViewTest,
|
| - WebControllerCheckForUninjectedScript) {
|
| - EXPECT_FALSE([this->webController_
|
| +TEST_F(JsInjectionManagerTest, WebControllerCheckForUninjectedScript) {
|
| + EXPECT_FALSE([webController_
|
| scriptHasBeenInjectedForClass:Nil
|
| presenceBeacon:@"__gCrWeb.dummyBeacon"]);
|
| }
|
|
|
| -WEB_TEST_F(JsInjectionManagerUIWebViewTest,
|
| - JsInjectionManagerWKWebViewTest,
|
| - AllDependencies) {
|
| +TEST_F(JsInjectionManagerTest, AllDependencies) {
|
| CRWJSInjectionManager* manager =
|
| - this->GetInstanceOfClass([TestingJsManagerComplex class]);
|
| + GetInstanceOfClass([TestingJsManagerComplex class]);
|
| NSArray* list = [manager allDependencies];
|
| - this->TestAllDependencies(
|
| + TestAllDependencies(
|
| @[
|
| - [TestingCRWJSBaseManager class],
|
| - [TestingAnotherCRWJSBaseManager class],
|
| - [TestingJsManager class],
|
| - [TestingAnotherJsManager class],
|
| + [TestingCRWJSBaseManager class], [TestingAnotherCRWJSBaseManager class],
|
| + [TestingJsManager class], [TestingAnotherJsManager class],
|
| [TestingJsManagerWithNestedDependencies class],
|
| [TestingJsManagerComplex class]
|
| ],
|
| list);
|
| }
|
|
|
| -} // namespace
|
| +} // namespace web
|
|
|