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

Side by Side Diff: ios/chrome/browser/ui/contextual_search/contextual_search_js_unittest.mm

Issue 2889993002: [ObjC ARC] Converts ios/chrome/browser/ui/contextual_search:unit_tests to ARC. (Closed)
Patch Set: Created 3 years, 7 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 <UIKit/UIKit.h> 5 #import <UIKit/UIKit.h>
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/ios/ios_util.h" 9 #include "base/ios/ios_util.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
11 #include "base/mac/scoped_nsobject.h"
12 #include "base/strings/sys_string_conversions.h" 11 #include "base/strings/sys_string_conversions.h"
13 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
14 #import "base/test/ios/wait_util.h" 13 #import "base/test/ios/wait_util.h"
15 #include "base/values.h" 14 #include "base/values.h"
16 #include "components/pref_registry/pref_registry_syncable.h" 15 #include "components/pref_registry/pref_registry_syncable.h"
17 #include "components/prefs/pref_registry_simple.h" 16 #include "components/prefs/pref_registry_simple.h"
18 #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" 17 #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
19 #import "ios/chrome/browser/ui/contextual_search/contextual_search_controller.h" 18 #import "ios/chrome/browser/ui/contextual_search/contextual_search_controller.h"
20 #import "ios/chrome/browser/ui/contextual_search/js_contextual_search_manager.h" 19 #import "ios/chrome/browser/ui/contextual_search/js_contextual_search_manager.h"
21 #import "ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_med iator+testing.h" 20 #import "ios/chrome/browser/ui/contextual_search/touch_to_search_permissions_med iator+testing.h"
22 #import "ios/chrome/browser/web/chrome_web_test.h" 21 #import "ios/chrome/browser/web/chrome_web_test.h"
23 #import "ios/web/public/web_state/js/crw_js_injection_manager.h" 22 #import "ios/web/public/web_state/js/crw_js_injection_manager.h"
24 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h" 23 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h"
25 #import "ios/web/public/web_state/web_state.h" 24 #import "ios/web/public/web_state/web_state.h"
26 #include "testing/gtest/include/gtest/gtest.h" 25 #include "testing/gtest/include/gtest/gtest.h"
27 #include "testing/gtest_mac.h" 26 #include "testing/gtest_mac.h"
28 #import "third_party/ocmock/OCMock/OCMock.h" 27 #import "third_party/ocmock/OCMock/OCMock.h"
29 28
29 #if !defined(__has_feature) || !__has_feature(objc_arc)
30 #error "This file requires ARC support."
31 #endif
32
30 // Unit tests for the resources/contextualsearch.js JavaScript file. 33 // Unit tests for the resources/contextualsearch.js JavaScript file.
31 34
32 struct ContextualSearchStruct { 35 struct ContextualSearchStruct {
33 std::string url; 36 std::string url;
34 std::string selectedText; 37 std::string selectedText;
35 std::string surroundingText; 38 std::string surroundingText;
36 int offsetStart; 39 int offsetStart;
37 int offsetEnd; 40 int offsetEnd;
38 }; 41 };
39 42
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 longString = [longString stringByAppendingString:sentence]; 219 longString = [longString stringByAppendingString:sentence];
217 if (newLine) { 220 if (newLine) {
218 longString = [longString stringByAppendingString:@"<br/>"]; 221 longString = [longString stringByAppendingString:@"<br/>"];
219 } 222 }
220 } 223 }
221 return longString; 224 return longString;
222 } 225 }
223 226
224 void SetUp() override { 227 void SetUp() override {
225 ChromeWebTest::SetUp(); 228 ChromeWebTest::SetUp();
226 mockDelegate_.reset([[OCMockObject 229 mockDelegate_ = [OCMockObject
227 niceMockForProtocol:@protocol(ContextualSearchControllerDelegate)] 230 niceMockForProtocol:@protocol(ContextualSearchControllerDelegate)];
228 retain]);
229 jsUnittestsAdditions_ = static_cast<JsContextualSearchAdditionsManager*>( 231 jsUnittestsAdditions_ = static_cast<JsContextualSearchAdditionsManager*>(
230 [web_state()->GetJSInjectionReceiver() 232 [web_state()->GetJSInjectionReceiver()
231 instanceOfClass:[JsContextualSearchAdditionsManager class]]); 233 instanceOfClass:[JsContextualSearchAdditionsManager class]]);
232 TestChromeBrowserState::Builder test_cbs_builder; 234 TestChromeBrowserState::Builder test_cbs_builder;
233 chrome_browser_state_ = test_cbs_builder.Build(); 235 chrome_browser_state_ = test_cbs_builder.Build();
234 controller_.reset([[ContextualSearchController alloc] 236 controller_ = [[ContextualSearchController alloc]
235 initWithBrowserState:chrome_browser_state_.get() 237 initWithBrowserState:chrome_browser_state_.get()
236 delegate:mockDelegate_]); 238 delegate:mockDelegate_];
237 [controller_ 239 [controller_
238 setPermissions:[[MockTouchToSearchPermissionsMediator alloc] 240 setPermissions:[[MockTouchToSearchPermissionsMediator alloc]
239 initWithBrowserState:chrome_browser_state_.get()]]; 241 initWithBrowserState:chrome_browser_state_.get()]];
240 [controller_ setWebState:web_state()]; 242 [controller_ setWebState:web_state()];
241 [controller_ enableContextualSearch:YES]; 243 [controller_ enableContextualSearch:YES];
242 } 244 }
243 245
244 void TearDown() override { 246 void TearDown() override {
245 [controller_ close]; 247 [controller_ close];
246 // Need to tear down the controller so it deregisters its JS handlers 248 // Need to tear down the controller so it deregisters its JS handlers
247 // before |webController_| is destroyed. 249 // before |webController_| is destroyed.
248 controller_.reset(); 250 controller_ = nil;
249 ChromeWebTest::TearDown(); 251 ChromeWebTest::TearDown();
250 } 252 }
251 253
252 std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; 254 std::unique_ptr<TestChromeBrowserState> chrome_browser_state_;
253 __unsafe_unretained JsContextualSearchAdditionsManager* jsUnittestsAdditions_; 255 __unsafe_unretained JsContextualSearchAdditionsManager* jsUnittestsAdditions_;
254 base::scoped_nsobject<ContextualSearchController> controller_; 256 ContextualSearchController* controller_;
255 base::scoped_nsobject<id> mockDelegate_; 257 id mockDelegate_;
256 base::scoped_nsobject<id> mockToolbarDelegate_; 258 id mockToolbarDelegate_;
257 }; 259 };
258 260
259 // Test that ignored elements do not trigger CS when tapped. 261 // Test that ignored elements do not trigger CS when tapped.
260 TEST_F(ContextualSearchJsTest, TestIgnoreTapsOnElements) { 262 TEST_F(ContextualSearchJsTest, TestIgnoreTapsOnElements) {
261 LoadHtml(kHTMLSentenceWithLabel); 263 LoadHtml(kHTMLSentenceWithLabel);
262 ContextualSearchStruct searchContext; 264 ContextualSearchStruct searchContext;
263 ASSERT_FALSE(GetContextFromId(@"taphere", &searchContext)); 265 ASSERT_FALSE(GetContextFromId(@"taphere", &searchContext));
264 }; 266 };
265 267
266 // Test that ingnored element are not included in highlight or surrounding text. 268 // Test that ingnored element are not included in highlight or surrounding text.
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 NSString* stringHTML = BuildLongTestString(0, 10, 5, true); 486 NSString* stringHTML = BuildLongTestString(0, 10, 5, true);
485 NSString* expectedHTML = BuildLongTestString(0, 10, -1, false); 487 NSString* expectedHTML = BuildLongTestString(0, 10, -1, false);
486 // LoadHtml will trim the last space. 488 // LoadHtml will trim the last space.
487 LoadHtml( 489 LoadHtml(
488 [NSString stringWithFormat:@"<html><body>%@</body></html>", stringHTML]); 490 [NSString stringWithFormat:@"<html><body>%@</body></html>", stringHTML]);
489 ContextualSearchStruct searchContext; 491 ContextualSearchStruct searchContext;
490 ASSERT_TRUE(GetContextFromId(@"taphere", &searchContext)); 492 ASSERT_TRUE(GetContextFromId(@"taphere", &searchContext));
491 CheckContextOffsets(searchContext, base::SysNSStringToUTF8(expectedHTML)); 493 CheckContextOffsets(searchContext, base::SysNSStringToUTF8(expectedHTML));
492 }; 494 };
493 } // namespace 495 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698