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

Side by Side Diff: ios/chrome/browser/passwords/credential_manager_js_unittest.mm

Issue 2559693003: [ObjC ARC] Converts ios/chrome/browser/passwords:unit_tests to ARC. (Closed)
Patch Set: Cleanup Created 4 years 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #include <memory> 5 #include <memory>
6 6
7 #include "base/mac/foundation_util.h" 7 #include "base/mac/foundation_util.h"
8 #import "base/mac/scoped_nsobject.h"
9 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
10 #include "base/values.h" 9 #include "base/values.h"
11 #import "ios/chrome/browser/passwords/js_credential_manager.h" 10 #import "ios/chrome/browser/passwords/js_credential_manager.h"
12 #include "ios/web/public/web_state/credential.h" 11 #include "ios/web/public/web_state/credential.h"
13 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h" 12 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h"
14 #import "ios/web/public/web_state/web_state.h" 13 #import "ios/web/public/web_state/web_state.h"
15 #include "ios/web/public/web_state/web_state_observer.h" 14 #include "ios/web/public/web_state/web_state_observer.h"
16 #import "ios/web/public/test/web_test_with_web_state.h" 15 #import "ios/web/public/test/web_test_with_web_state.h"
17 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
18 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
19 #include "testing/gtest_mac.h" 18 #include "testing/gtest_mac.h"
20 #include "url/gurl.h" 19 #include "url/gurl.h"
21 20
21 #if !defined(__has_feature) || !__has_feature(objc_arc)
22 #error "This file requires ARC support."
23 #endif
24
22 namespace { 25 namespace {
23 26
24 using ::testing::_; 27 using ::testing::_;
25 28
26 // Matcher to match web::Credential. 29 // Matcher to match web::Credential.
27 MATCHER_P(IsEqualTo, value, "") { 30 MATCHER_P(IsEqualTo, value, "") {
28 return arg.type == value.type && arg.id == value.id && 31 return arg.type == value.type && arg.id == value.id &&
29 arg.name == value.name && arg.avatar_url == value.avatar_url && 32 arg.name == value.name && arg.avatar_url == value.avatar_url &&
30 arg.password == value.password && 33 arg.password == value.password &&
31 arg.federation_origin.Serialize() == 34 arg.federation_origin.Serialize() ==
(...skipping 20 matching lines...) Expand all
52 DISALLOW_COPY_AND_ASSIGN(MockWebStateObserver); 55 DISALLOW_COPY_AND_ASSIGN(MockWebStateObserver);
53 }; 56 };
54 57
55 // Unit tests for the Credential Manager JavaScript and associated plumbing. 58 // Unit tests for the Credential Manager JavaScript and associated plumbing.
56 class CredentialManagerJsTest : public web::WebTestWithWebState { 59 class CredentialManagerJsTest : public web::WebTestWithWebState {
57 public: 60 public:
58 CredentialManagerJsTest() {} 61 CredentialManagerJsTest() {}
59 62
60 void SetUp() override { 63 void SetUp() override {
61 web::WebTestWithWebState::SetUp(); 64 web::WebTestWithWebState::SetUp();
62 js_credential_manager_.reset(base::mac::ObjCCastStrict<JSCredentialManager>( 65 js_credential_manager_ = base::mac::ObjCCastStrict<JSCredentialManager>(
63 [[web_state()->GetJSInjectionReceiver() 66 [web_state()->GetJSInjectionReceiver()
64 instanceOfClass:[JSCredentialManager class]] retain])); 67 instanceOfClass:[JSCredentialManager class]]);
65 observer_.reset(new MockWebStateObserver(web_state())); 68 observer_.reset(new MockWebStateObserver(web_state()));
66 } 69 }
67 70
68 // Sets up a web page and injects the JSCredentialManager. Must be called 71 // Sets up a web page and injects the JSCredentialManager. Must be called
69 // before any interaction with the page. 72 // before any interaction with the page.
70 void Inject() { 73 void Inject() {
71 LoadHtml(@""); 74 LoadHtml(@"");
72 [js_credential_manager_ inject]; 75 [js_credential_manager_ inject];
73 } 76 }
74 77
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 NSString* message, 251 NSString* message,
249 NSString* promise) { 252 NSString* promise) {
250 PrepareResolverAndRejecter(promise); 253 PrepareResolverAndRejecter(promise);
251 RejectPromise(request_id, error, message); 254 RejectPromise(request_id, error, message);
252 CheckRejected(error, message); 255 CheckRejected(error, message);
253 CheckNeverResolved(); 256 CheckNeverResolved();
254 } 257 }
255 258
256 private: 259 private:
257 // Manager for injected credential manager JavaScript. 260 // Manager for injected credential manager JavaScript.
258 base::scoped_nsobject<JSCredentialManager> js_credential_manager_; 261 JSCredentialManager* js_credential_manager_;
259 262
260 // Mock observer for testing. 263 // Mock observer for testing.
261 std::unique_ptr<MockWebStateObserver> observer_; 264 std::unique_ptr<MockWebStateObserver> observer_;
262 265
263 DISALLOW_COPY_AND_ASSIGN(CredentialManagerJsTest); 266 DISALLOW_COPY_AND_ASSIGN(CredentialManagerJsTest);
264 }; 267 };
265 268
266 // Tests that navigator.credentials calls use distinct request identifiers. 269 // Tests that navigator.credentials calls use distinct request identifiers.
267 TEST_F(CredentialManagerJsTest, RequestIdentifiersDiffer) { 270 TEST_F(CredentialManagerJsTest, RequestIdentifiersDiffer) {
268 Inject(); 271 Inject();
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 TEST_F(CredentialManagerJsTest, 499 TEST_F(CredentialManagerJsTest,
497 RejectPromiseWithSecurityError_notifySignedOut) { 500 RejectPromiseWithSecurityError_notifySignedOut) {
498 Inject(); 501 Inject();
499 const int request_id = 0; 502 const int request_id = 0;
500 EXPECT_CALL(observer(), SignedOut(request_id, _)); 503 EXPECT_CALL(observer(), SignedOut(request_id, _));
501 TestPromiseRejection(request_id, @"SecurityError", @"foo", 504 TestPromiseRejection(request_id, @"SecurityError", @"foo",
502 @"navigator.credentials.notifySignedOut()"); 505 @"navigator.credentials.notifySignedOut()");
503 } 506 }
504 507
505 } // namespace 508 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698