Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(125)

Side by Side Diff: ios/web/web_state/ui/crw_wk_script_message_router_unittest.mm

Issue 2933363002: [ObjC ARC] Converts ios/web:ios_web_web_state_ui_unittests to ARC. (Closed)
Patch Set: Review nits. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/web/web_state/ui/crw_wk_script_message_router.h" 5 #import "ios/web/web_state/ui/crw_wk_script_message_router.h"
6 6
7 #include "base/mac/scoped_block.h" 7 #include "base/mac/scoped_block.h"
8 #import "base/mac/scoped_nsobject.h"
9 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
10 #include "ios/web/public/test/fakes/test_browser_state.h" 9 #include "ios/web/public/test/fakes/test_browser_state.h"
11 #import "ios/web/public/test/fakes/test_web_client.h" 10 #import "ios/web/public/test/fakes/test_web_client.h"
12 #include "ios/web/public/test/scoped_testing_web_client.h" 11 #include "ios/web/public/test/scoped_testing_web_client.h"
13 #include "ios/web/public/test/web_test.h" 12 #include "ios/web/public/test/web_test.h"
14 #import "ios/web/public/web_view_creation_util.h" 13 #import "ios/web/public/web_view_creation_util.h"
15 #include "third_party/ocmock/OCMock/OCMock.h" 14 #include "third_party/ocmock/OCMock/OCMock.h"
16 #include "third_party/ocmock/gtest_support.h" 15 #include "third_party/ocmock/gtest_support.h"
17 16
17 #if !defined(__has_feature) || !__has_feature(objc_arc)
18 #error "This file requires ARC support."
19 #endif
20
18 namespace { 21 namespace {
19 22
20 // Returns WKScriptMessage mock. 23 // Returns WKScriptMessage mock.
21 id GetScriptMessageMock(WKWebView* web_view, NSString* name) { 24 id GetScriptMessageMock(WKWebView* web_view, NSString* name) {
22 id result = [OCMockObject mockForClass:[WKScriptMessage class]]; 25 id result = [OCMockObject mockForClass:[WKScriptMessage class]];
23 [[[result stub] andReturn:web_view] webView]; 26 [[[result stub] andReturn:web_view] webView];
24 [[[result stub] andReturn:name] name]; 27 [[[result stub] andReturn:name] name];
25 return result; 28 return result;
26 } 29 }
27 30
28 // Test fixture for CRWWKScriptMessageRouter. 31 // Test fixture for CRWWKScriptMessageRouter.
29 class CRWWKScriptMessageRouterTest : public web::WebTest { 32 class CRWWKScriptMessageRouterTest : public web::WebTest {
30 public: 33 public:
31 CRWWKScriptMessageRouterTest() 34 CRWWKScriptMessageRouterTest()
32 : web_client_(base::WrapUnique(new web::WebClient)) {} 35 : web_client_(base::WrapUnique(new web::WebClient)) {}
33 36
34 protected: 37 protected:
35 void SetUp() override { 38 void SetUp() override {
36 web::WebTest::SetUp(); 39 web::WebTest::SetUp();
37 // Mock WKUserContentController object. 40 // Mock WKUserContentController object.
38 controller_mock_.reset( 41 controller_mock_ =
39 [[OCMockObject mockForClass:[WKUserContentController class]] retain]); 42 [OCMockObject mockForClass:[WKUserContentController class]];
40 [controller_mock_ setExpectationOrderMatters:YES]; 43 [controller_mock_ setExpectationOrderMatters:YES];
41 44
42 // Create testable CRWWKScriptMessageRouter. 45 // Create testable CRWWKScriptMessageRouter.
43 router_.reset(static_cast<id<WKScriptMessageHandler>>( 46 router_ = static_cast<id<WKScriptMessageHandler>>(
44 [[CRWWKScriptMessageRouter alloc] 47 [[CRWWKScriptMessageRouter alloc]
45 initWithUserContentController:controller_mock_])); 48 initWithUserContentController:controller_mock_]);
46 49
47 // Prepare test data. 50 // Prepare test data.
48 handler1_.reset([^{ 51 handler1_ = [^{
49 } copy]); 52 } copy];
50 handler2_.reset([^{ 53 handler2_ = [^{
51 } copy]); 54 } copy];
52 handler3_.reset([^{ 55 handler3_ = [^{
53 } copy]); 56 } copy];
54 name1_.reset([@"name1" copy]); 57 name1_ = [@"name1" copy];
55 name2_.reset([@"name2" copy]); 58 name2_ = [@"name2" copy];
56 name3_.reset([@"name3" copy]); 59 name3_ = [@"name3" copy];
57 web_view1_.reset([web::BuildWKWebView(CGRectZero, &browser_state_) retain]); 60 web_view1_ = web::BuildWKWebView(CGRectZero, &browser_state_);
58 web_view2_.reset([web::BuildWKWebView(CGRectZero, &browser_state_) retain]); 61 web_view2_ = web::BuildWKWebView(CGRectZero, &browser_state_);
59 web_view3_.reset([web::BuildWKWebView(CGRectZero, &browser_state_) retain]); 62 web_view3_ = web::BuildWKWebView(CGRectZero, &browser_state_);
60 } 63 }
61 void TearDown() override { 64 void TearDown() override {
62 EXPECT_OCMOCK_VERIFY(controller_mock_); 65 EXPECT_OCMOCK_VERIFY(controller_mock_);
63 web::WebTest::TearDown(); 66 web::WebTest::TearDown();
64 } 67 }
65 68
66 // WKUserContentController mock used to create testable router. 69 // WKUserContentController mock used to create testable router.
67 base::scoped_nsobject<id> controller_mock_; 70 id controller_mock_;
68 71
69 // CRWWKScriptMessageRouter set up for testing. 72 // CRWWKScriptMessageRouter set up for testing.
70 base::scoped_nsobject<id> router_; 73 id router_;
71 74
72 // Tests data. 75 // Tests data.
73 typedef void (^WKScriptMessageHandler)(WKScriptMessage*); 76 typedef void (^WKScriptMessageHandler)(WKScriptMessage*);
74 base::mac::ScopedBlock<WKScriptMessageHandler> handler1_; 77 WKScriptMessageHandler handler1_;
75 base::mac::ScopedBlock<WKScriptMessageHandler> handler2_; 78 WKScriptMessageHandler handler2_;
76 base::mac::ScopedBlock<WKScriptMessageHandler> handler3_; 79 WKScriptMessageHandler handler3_;
77 base::scoped_nsobject<NSString> name1_; 80 NSString* name1_;
78 base::scoped_nsobject<NSString> name2_; 81 NSString* name2_;
79 base::scoped_nsobject<NSString> name3_; 82 NSString* name3_;
80 base::scoped_nsobject<WKWebView> web_view1_; 83 WKWebView* web_view1_;
81 base::scoped_nsobject<WKWebView> web_view2_; 84 WKWebView* web_view2_;
82 base::scoped_nsobject<WKWebView> web_view3_; 85 WKWebView* web_view3_;
83 86
84 private: 87 private:
85 // WebClient and BrowserState for testing. 88 // WebClient and BrowserState for testing.
86 web::ScopedTestingWebClient web_client_; 89 web::ScopedTestingWebClient web_client_;
87 web::TestBrowserState browser_state_; 90 web::TestBrowserState browser_state_;
88 }; 91 };
89 92
90 // Tests CRWWKScriptMessageRouter designated initializer. 93 // Tests CRWWKScriptMessageRouter designated initializer.
91 TEST_F(CRWWKScriptMessageRouterTest, Initialization) { 94 TEST_F(CRWWKScriptMessageRouterTest, Initialization) {
92 EXPECT_TRUE(router_); 95 EXPECT_TRUE(router_);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 didReceiveScriptMessage:message1]; 196 didReceiveScriptMessage:message1];
194 [router_ userContentController:controller_mock_ 197 [router_ userContentController:controller_mock_
195 didReceiveScriptMessage:message2]; 198 didReceiveScriptMessage:message2];
196 [router_ userContentController:controller_mock_ 199 [router_ userContentController:controller_mock_
197 didReceiveScriptMessage:message3]; 200 didReceiveScriptMessage:message3];
198 201
199 EXPECT_EQ(3, last_called_handler); 202 EXPECT_EQ(3, last_called_handler);
200 } 203 }
201 204
202 } // namespace 205 } // namespace
OLDNEW
« no previous file with comments | « ios/web/web_state/ui/crw_wk_navigation_states_unittest.mm ('k') | ios/web/web_state/ui/web_view_js_utils_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698