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

Side by Side Diff: chrome/browser/chromeos/login/signed_settings_unittest.cc

Issue 8091002: PART2: Make SignedSettings use proper Value types instead of string all around the place. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed the nits and rebased on ToT (which now has PART1 in). Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/chromeos/login/signed_settings.h" 5 #include "chrome/browser/chromeos/login/signed_settings.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/scoped_temp_dir.h" 9 #include "base/scoped_temp_dir.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 virtual void compare_expected(T to_compare) = 0; 71 virtual void compare_expected(T to_compare) = 0;
72 }; 72 };
73 73
74 template <class T> 74 template <class T>
75 class NormalDelegate : public DummyDelegate<T> { 75 class NormalDelegate : public DummyDelegate<T> {
76 public: 76 public:
77 explicit NormalDelegate(T to_expect) : DummyDelegate<T>(to_expect) {} 77 explicit NormalDelegate(T to_expect) : DummyDelegate<T>(to_expect) {}
78 virtual ~NormalDelegate() {} 78 virtual ~NormalDelegate() {}
79 protected: 79 protected:
80 virtual void compare_expected(T to_compare) { 80 virtual void compare_expected(T to_compare) {
81 EXPECT_EQ(this->expected_, to_compare); // without this-> this won't build. 81 // without this-> this won't build.
82 EXPECT_EQ(this->expected_, to_compare);
82 } 83 }
83 }; 84 };
84 85
86 // Specialized version for Value objects because these compare differently.
87 class PolicyDelegate : public DummyDelegate<const base::Value*> {
88 public:
89 explicit PolicyDelegate(const base::Value* to_expect)
90 : DummyDelegate<const base::Value*>(to_expect) {}
91 virtual ~PolicyDelegate() {}
92 protected:
93 virtual void compare_expected(const base::Value* to_compare) {
94 // without this-> this won't build.
95 EXPECT_TRUE(this->expected_->Equals(to_compare));
96 }
97 };
98
85 class ProtoDelegate : public DummyDelegate<const em::PolicyFetchResponse&> { 99 class ProtoDelegate : public DummyDelegate<const em::PolicyFetchResponse&> {
86 public: 100 public:
87 explicit ProtoDelegate(const em::PolicyFetchResponse& e) 101 explicit ProtoDelegate(const em::PolicyFetchResponse& e)
88 : DummyDelegate<const em::PolicyFetchResponse&>(e) { 102 : DummyDelegate<const em::PolicyFetchResponse&>(e) {
89 } 103 }
90 virtual ~ProtoDelegate() {} 104 virtual ~ProtoDelegate() {}
91 protected: 105 protected:
92 virtual void compare_expected(const em::PolicyFetchResponse& to_compare) { 106 virtual void compare_expected(const em::PolicyFetchResponse& to_compare) {
93 std::string ex_string, comp_string; 107 std::string ex_string, comp_string;
94 EXPECT_TRUE(expected_.SerializeToString(&ex_string)); 108 EXPECT_TRUE(expected_.SerializeToString(&ex_string));
95 EXPECT_TRUE(to_compare.SerializeToString(&comp_string)); 109 EXPECT_TRUE(to_compare.SerializeToString(&comp_string));
96 EXPECT_EQ(ex_string, comp_string); 110 EXPECT_EQ(ex_string, comp_string);
97 } 111 }
98 }; 112 };
99 113
100 } // anonymous namespace 114 } // anonymous namespace
101 115
102 class SignedSettingsTest : public testing::Test { 116 class SignedSettingsTest : public testing::Test {
103 public: 117 public:
104 SignedSettingsTest() 118 SignedSettingsTest()
105 : fake_email_("fakey@example.com"), 119 : fake_email_("fakey@example.com"),
106 fake_domain_("*@example.com"), 120 fake_domain_("*@example.com"),
107 fake_prop_(kAccountsPrefAllowGuest), 121 fake_prop_(kAccountsPrefAllowGuest),
108 fake_value_("false"), 122 fake_signature_("false"),
123 fake_value_(false),
124 fake_value_signature_(
125 fake_signature_.c_str(),
126 fake_signature_.c_str() + fake_signature_.length()),
109 message_loop_(MessageLoop::TYPE_UI), 127 message_loop_(MessageLoop::TYPE_UI),
110 ui_thread_(BrowserThread::UI, &message_loop_), 128 ui_thread_(BrowserThread::UI, &message_loop_),
111 file_thread_(BrowserThread::FILE), 129 file_thread_(BrowserThread::FILE),
112 mock_(new MockKeyUtils), 130 mock_(new MockKeyUtils),
113 injector_(mock_) /* injector_ takes ownership of mock_ */, 131 injector_(mock_) /* injector_ takes ownership of mock_ */,
114 mock_dbus_thread_manager_(new MockDBusThreadManager) { 132 mock_dbus_thread_manager_(new MockDBusThreadManager) {
115 } 133 }
116 134
117 virtual ~SignedSettingsTest() {} 135 virtual ~SignedSettingsTest() {}
118 136
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 em::PolicyFetchResponse fake_policy; 259 em::PolicyFetchResponse fake_policy;
242 if (!data.empty()) 260 if (!data.empty())
243 fake_policy.set_policy_data(data); 261 fake_policy.set_policy_data(data);
244 if (!sig.empty()) 262 if (!sig.empty())
245 fake_policy.set_policy_data_signature(sig); 263 fake_policy.set_policy_data_signature(sig);
246 EXPECT_TRUE(fake_policy.SerializeToString(out_serialized)); 264 EXPECT_TRUE(fake_policy.SerializeToString(out_serialized));
247 return fake_policy; 265 return fake_policy;
248 } 266 }
249 267
250 void DoRetrieveProperty(const std::string& name, 268 void DoRetrieveProperty(const std::string& name,
251 const std::string& value, 269 const base::Value* value,
252 em::PolicyData* fake_pol) { 270 em::PolicyData* fake_pol) {
253 NormalDelegate<std::string> d(value); 271 PolicyDelegate d(value);
254 d.expect_success(); 272 d.expect_success();
255 scoped_refptr<SignedSettings> s( 273 scoped_refptr<SignedSettings> s(
256 SignedSettings::CreateRetrievePropertyOp(name, &d)); 274 SignedSettings::CreateRetrievePropertyOp(name, &d));
257 mock_service(s.get(), &m_); 275 mock_service(s.get(), &m_);
258 EXPECT_CALL(m_, GetStatus(_)) 276 EXPECT_CALL(m_, GetStatus(_))
259 .WillOnce(Return(OwnershipService::OWNERSHIP_TAKEN)); 277 .WillOnce(Return(OwnershipService::OWNERSHIP_TAKEN));
260 EXPECT_CALL(m_, has_cached_policy()) 278 EXPECT_CALL(m_, has_cached_policy())
261 .WillOnce(Return(true)); 279 .WillOnce(Return(true));
262 280
263 EXPECT_CALL(m_, cached_policy()) 281 EXPECT_CALL(m_, cached_policy())
264 .WillOnce(ReturnRef(*fake_pol)); 282 .WillOnce(ReturnRef(*fake_pol));
265 283
266 s->Execute(); 284 s->Execute();
267 message_loop_.RunAllPending(); 285 message_loop_.RunAllPending();
268 } 286 }
269 287
270 const std::string fake_email_; 288 const std::string fake_email_;
271 const std::string fake_domain_; 289 const std::string fake_domain_;
272 const std::string fake_prop_; 290 const std::string fake_prop_;
273 const std::string fake_value_; 291 const std::string fake_signature_;
292 const base::FundamentalValue fake_value_;
293 const std::vector<uint8> fake_value_signature_;
274 MockOwnershipService m_; 294 MockOwnershipService m_;
275 295
276 ScopedTempDir tmpdir_; 296 ScopedTempDir tmpdir_;
277 FilePath tmpfile_; 297 FilePath tmpfile_;
278 298
279 MessageLoop message_loop_; 299 MessageLoop message_loop_;
280 content::TestBrowserThread ui_thread_; 300 content::TestBrowserThread ui_thread_;
281 content::TestBrowserThread file_thread_; 301 content::TestBrowserThread file_thread_;
282 302
283 std::vector<uint8> fake_public_key_; 303 std::vector<uint8> fake_public_key_;
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 TEST_F(SignedSettingsTest, StorePropertyNoKey) { 510 TEST_F(SignedSettingsTest, StorePropertyNoKey) {
491 FailingStorePropertyOp(OwnerManager::KEY_UNAVAILABLE); 511 FailingStorePropertyOp(OwnerManager::KEY_UNAVAILABLE);
492 } 512 }
493 513
494 TEST_F(SignedSettingsTest, StorePropertyFailed) { 514 TEST_F(SignedSettingsTest, StorePropertyFailed) {
495 FailingStorePropertyOp(OwnerManager::OPERATION_FAILED); 515 FailingStorePropertyOp(OwnerManager::OPERATION_FAILED);
496 } 516 }
497 517
498 TEST_F(SignedSettingsTest, RetrieveProperty) { 518 TEST_F(SignedSettingsTest, RetrieveProperty) {
499 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>()); 519 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>());
500 DoRetrieveProperty(fake_prop_, fake_value_, &fake_pol); 520 base::FundamentalValue fake_value(false);
521 DoRetrieveProperty(fake_prop_, &fake_value, &fake_pol);
501 } 522 }
502 523
503 TEST_F(SignedSettingsTest, RetrieveOwnerProperty) { 524 TEST_F(SignedSettingsTest, RetrieveOwnerProperty) {
504 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>()); 525 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>());
505 fake_pol.set_username(fake_email_); 526 fake_pol.set_username(fake_email_);
506 DoRetrieveProperty(kDeviceOwner, fake_email_, &fake_pol); 527 base::StringValue fake_value(fake_email_);
528 DoRetrieveProperty(kDeviceOwner, &fake_value, &fake_pol);
507 } 529 }
508 530
509 TEST_F(SignedSettingsTest, ExplicitlyAllowNewUsers) { 531 TEST_F(SignedSettingsTest, ExplicitlyAllowNewUsers) {
510 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>()); 532 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>());
511 SetAllowNewUsers(true, &fake_pol); 533 SetAllowNewUsers(true, &fake_pol);
512 DoRetrieveProperty(kAccountsPrefAllowNewUser, "true", &fake_pol); 534 base::FundamentalValue fake_value(true);
535 DoRetrieveProperty(kAccountsPrefAllowNewUser, &fake_value, &fake_pol);
513 } 536 }
514 537
515 TEST_F(SignedSettingsTest, ExplicitlyDisallowNewUsers) { 538 TEST_F(SignedSettingsTest, ExplicitlyDisallowNewUsers) {
516 std::vector<std::string> whitelist(1, fake_email_ + "m"); 539 std::vector<std::string> whitelist(1, fake_email_ + "m");
517 em::PolicyData fake_pol = BuildPolicyData(whitelist); 540 em::PolicyData fake_pol = BuildPolicyData(whitelist);
518 SetAllowNewUsers(false, &fake_pol); 541 SetAllowNewUsers(false, &fake_pol);
519 DoRetrieveProperty(kAccountsPrefAllowNewUser, "false", &fake_pol); 542 base::FundamentalValue fake_value(false);
543 DoRetrieveProperty(kAccountsPrefAllowNewUser, &fake_value, &fake_pol);
520 } 544 }
521 545
522 TEST_F(SignedSettingsTest, ImplicitlyDisallowNewUsers) { 546 TEST_F(SignedSettingsTest, ImplicitlyDisallowNewUsers) {
523 std::vector<std::string> whitelist(1, fake_email_ + "m"); 547 std::vector<std::string> whitelist(1, fake_email_ + "m");
524 em::PolicyData fake_pol = BuildPolicyData(whitelist); 548 em::PolicyData fake_pol = BuildPolicyData(whitelist);
525 DoRetrieveProperty(kAccountsPrefAllowNewUser, "false", &fake_pol); 549 base::FundamentalValue fake_value(false);
550 DoRetrieveProperty(kAccountsPrefAllowNewUser, &fake_value, &fake_pol);
526 } 551 }
527 552
528 TEST_F(SignedSettingsTest, AccidentallyDisallowNewUsers) { 553 TEST_F(SignedSettingsTest, AccidentallyDisallowNewUsers) {
529 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>()); 554 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>());
530 SetAllowNewUsers(false, &fake_pol); 555 SetAllowNewUsers(false, &fake_pol);
531 DoRetrieveProperty(kAccountsPrefAllowNewUser, "true", &fake_pol); 556 base::FundamentalValue fake_value(true);
557 DoRetrieveProperty(kAccountsPrefAllowNewUser, &fake_value, &fake_pol);
532 } 558 }
533 559
534 TEST_F(SignedSettingsTest, RetrievePropertyNotFound) { 560 TEST_F(SignedSettingsTest, RetrievePropertyNotFound) {
535 NormalDelegate<std::string> d(fake_value_); 561 PolicyDelegate d(&fake_value_);
536 d.expect_failure(SignedSettings::NOT_FOUND); 562 d.expect_failure(SignedSettings::NOT_FOUND);
537 scoped_refptr<SignedSettings> s( 563 scoped_refptr<SignedSettings> s(
538 SignedSettings::CreateRetrievePropertyOp("unknown_prop", &d)); 564 SignedSettings::CreateRetrievePropertyOp("unknown_prop", &d));
539 mock_service(s.get(), &m_); 565 mock_service(s.get(), &m_);
540 EXPECT_CALL(m_, GetStatus(_)) 566 EXPECT_CALL(m_, GetStatus(_))
541 .WillOnce(Return(OwnershipService::OWNERSHIP_TAKEN)); 567 .WillOnce(Return(OwnershipService::OWNERSHIP_TAKEN));
542 EXPECT_CALL(m_, has_cached_policy()) 568 EXPECT_CALL(m_, has_cached_policy())
543 .WillOnce(Return(true)); 569 .WillOnce(Return(true));
544 570
545 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>()); 571 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>());
546 EXPECT_CALL(m_, cached_policy()) 572 EXPECT_CALL(m_, cached_policy())
547 .WillOnce(ReturnRef(fake_pol)); 573 .WillOnce(ReturnRef(fake_pol));
548 574
549 s->Execute(); 575 s->Execute();
550 message_loop_.RunAllPending(); 576 message_loop_.RunAllPending();
551 } 577 }
552 578
553 TEST_F(SignedSettingsTest, RetrievePolicyToRetrieveProperty) { 579 TEST_F(SignedSettingsTest, RetrievePolicyToRetrieveProperty) {
554 NormalDelegate<std::string> d(fake_value_); 580 base::FundamentalValue fake_value(false);
581 PolicyDelegate d(&fake_value);
555 d.expect_success(); 582 d.expect_success();
556 scoped_refptr<SignedSettings> s( 583 scoped_refptr<SignedSettings> s(
557 SignedSettings::CreateRetrievePropertyOp(fake_prop_, &d)); 584 SignedSettings::CreateRetrievePropertyOp(fake_prop_, &d));
558 585
559 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>()); 586 em::PolicyData fake_pol = BuildPolicyData(std::vector<std::string>());
560 std::string data = fake_pol.SerializeAsString(); 587 std::string data = fake_pol.SerializeAsString();
561 std::string signed_serialized; 588 std::string signed_serialized;
562 em::PolicyFetchResponse signed_policy = BuildProto(data, 589 em::PolicyFetchResponse signed_policy = BuildProto(data,
563 fake_value_, 590 fake_signature_,
564 &signed_serialized); 591 &signed_serialized);
565 MockSessionManagerClient* client = 592 MockSessionManagerClient* client =
566 mock_dbus_thread_manager_->mock_session_manager_client(); 593 mock_dbus_thread_manager_->mock_session_manager_client();
567 EXPECT_CALL(*client, RetrievePolicy(_)) 594 EXPECT_CALL(*client, RetrievePolicy(_))
568 .WillOnce(Retrieve(signed_serialized)) 595 .WillOnce(Retrieve(signed_serialized))
569 .RetiresOnSaturation(); 596 .RetiresOnSaturation();
570 597
571 mock_service(s.get(), &m_); 598 mock_service(s.get(), &m_);
572 599
573 EXPECT_CALL(m_, GetStatus(_)) 600 EXPECT_CALL(m_, GetStatus(_))
574 .WillOnce(Return(OwnershipService::OWNERSHIP_TAKEN)) 601 .WillOnce(Return(OwnershipService::OWNERSHIP_TAKEN))
575 .WillOnce(Return(OwnershipService::OWNERSHIP_TAKEN)); 602 .WillOnce(Return(OwnershipService::OWNERSHIP_TAKEN));
576 EXPECT_CALL(m_, has_cached_policy()) 603 EXPECT_CALL(m_, has_cached_policy())
577 .WillOnce(Return(false)) 604 .WillOnce(Return(false))
578 .WillOnce(Return(true)); 605 .WillOnce(Return(true));
579 em::PolicyData out_pol; 606 em::PolicyData out_pol;
580 EXPECT_CALL(m_, set_cached_policy(A<const em::PolicyData&>())) 607 EXPECT_CALL(m_, set_cached_policy(A<const em::PolicyData&>()))
581 .WillOnce(SaveArg<0>(&out_pol)); 608 .WillOnce(SaveArg<0>(&out_pol));
582 EXPECT_CALL(m_, cached_policy()) 609 EXPECT_CALL(m_, cached_policy())
583 .WillOnce(ReturnRef(out_pol)); 610 .WillOnce(ReturnRef(out_pol));
584 611
585 std::vector<uint8> fake_sig(fake_value_.c_str(), 612 EXPECT_CALL(m_, StartVerifyAttempt(data, fake_value_signature_, _))
586 fake_value_.c_str() + fake_value_.length()); 613 .WillOnce(FinishKeyOp(fake_value_signature_))
587 EXPECT_CALL(m_, StartVerifyAttempt(data, fake_sig, _))
588 .WillOnce(FinishKeyOp(fake_sig))
589 .RetiresOnSaturation(); 614 .RetiresOnSaturation();
590 615
591 s->Execute(); 616 s->Execute();
592 message_loop_.RunAllPending(); 617 message_loop_.RunAllPending();
593 } 618 }
594 619
595 TEST_F(SignedSettingsTest, SignAndStorePolicy) { 620 TEST_F(SignedSettingsTest, SignAndStorePolicy) {
596 NormalDelegate<bool> d(true); 621 NormalDelegate<bool> d(true);
597 d.expect_success(); 622 d.expect_success();
598 623
(...skipping 13 matching lines...) Expand all
612 EXPECT_CALL(m_, set_cached_policy(A<const em::PolicyData&>())) 637 EXPECT_CALL(m_, set_cached_policy(A<const em::PolicyData&>()))
613 .WillOnce(SaveArg<0>(&out_pol)); 638 .WillOnce(SaveArg<0>(&out_pol));
614 639
615 // Ask for signature over unsigned policy. 640 // Ask for signature over unsigned policy.
616 s->Execute(); 641 s->Execute();
617 message_loop_.RunAllPending(); 642 message_loop_.RunAllPending();
618 643
619 // Fake out a successful signing. 644 // Fake out a successful signing.
620 std::string signed_serialized; 645 std::string signed_serialized;
621 em::PolicyFetchResponse signed_policy = BuildProto(data_serialized, 646 em::PolicyFetchResponse signed_policy = BuildProto(data_serialized,
622 fake_value_, 647 fake_signature_,
623 &signed_serialized); 648 &signed_serialized);
624 std::vector<uint8> fake_sig(fake_value_.c_str(),
625 fake_value_.c_str() + fake_value_.length());
626
627 MockSessionManagerClient* client = 649 MockSessionManagerClient* client =
628 mock_dbus_thread_manager_->mock_session_manager_client(); 650 mock_dbus_thread_manager_->mock_session_manager_client();
629 EXPECT_CALL(*client, StorePolicy(signed_serialized, _)) 651 EXPECT_CALL(*client, StorePolicy(signed_serialized, _))
630 .WillOnce(Store(true)) 652 .WillOnce(Store(true))
631 .RetiresOnSaturation(); 653 .RetiresOnSaturation();
632 s->OnKeyOpComplete(OwnerManager::SUCCESS, fake_sig); 654 s->OnKeyOpComplete(OwnerManager::SUCCESS, fake_value_signature_);
633 message_loop_.RunAllPending(); 655 message_loop_.RunAllPending();
634 } 656 }
635 657
636 TEST_F(SignedSettingsTest, StoreSignedPolicy) { 658 TEST_F(SignedSettingsTest, StoreSignedPolicy) {
637 NormalDelegate<bool> d(true); 659 NormalDelegate<bool> d(true);
638 d.expect_success(); 660 d.expect_success();
639 661
640 em::PolicyData in_pol = BuildPolicyData(std::vector<std::string>()); 662 em::PolicyData in_pol = BuildPolicyData(std::vector<std::string>());
641 std::string serialized = in_pol.SerializeAsString(); 663 std::string serialized = in_pol.SerializeAsString();
642 std::string signed_serialized; 664 std::string signed_serialized;
643 em::PolicyFetchResponse signed_policy = BuildProto(serialized, 665 em::PolicyFetchResponse signed_policy = BuildProto(serialized,
644 fake_value_, 666 fake_signature_,
645 &signed_serialized); 667 &signed_serialized);
646 scoped_refptr<SignedSettings> s( 668 scoped_refptr<SignedSettings> s(
647 SignedSettings::CreateStorePolicyOp(&signed_policy, &d)); 669 SignedSettings::CreateStorePolicyOp(&signed_policy, &d));
648 MockSessionManagerClient* client = 670 MockSessionManagerClient* client =
649 mock_dbus_thread_manager_->mock_session_manager_client(); 671 mock_dbus_thread_manager_->mock_session_manager_client();
650 EXPECT_CALL(*client, StorePolicy(signed_serialized, _)) 672 EXPECT_CALL(*client, StorePolicy(signed_serialized, _))
651 .WillOnce(Store(true)) 673 .WillOnce(Store(true))
652 .RetiresOnSaturation(); 674 .RetiresOnSaturation();
653 675
654 mock_service(s.get(), &m_); 676 mock_service(s.get(), &m_);
(...skipping 26 matching lines...) Expand all
681 703
682 s->Execute(); 704 s->Execute();
683 message_loop_.RunAllPending(); 705 message_loop_.RunAllPending();
684 } 706 }
685 707
686 TEST_F(SignedSettingsTest, RetrievePolicy) { 708 TEST_F(SignedSettingsTest, RetrievePolicy) {
687 em::PolicyData in_pol = BuildPolicyData(std::vector<std::string>()); 709 em::PolicyData in_pol = BuildPolicyData(std::vector<std::string>());
688 std::string serialized = in_pol.SerializeAsString(); 710 std::string serialized = in_pol.SerializeAsString();
689 std::string signed_serialized; 711 std::string signed_serialized;
690 em::PolicyFetchResponse signed_policy = BuildProto(serialized, 712 em::PolicyFetchResponse signed_policy = BuildProto(serialized,
691 fake_value_, 713 fake_signature_,
692 &signed_serialized); 714 &signed_serialized);
693 ProtoDelegate d(signed_policy); 715 ProtoDelegate d(signed_policy);
694 d.expect_success(); 716 d.expect_success();
695 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); 717 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d));
696 718
697 MockSessionManagerClient* client = 719 MockSessionManagerClient* client =
698 mock_dbus_thread_manager_->mock_session_manager_client(); 720 mock_dbus_thread_manager_->mock_session_manager_client();
699 EXPECT_CALL(*client, RetrievePolicy(_)) 721 EXPECT_CALL(*client, RetrievePolicy(_))
700 .WillOnce(Retrieve(signed_serialized)) 722 .WillOnce(Retrieve(signed_serialized))
701 .RetiresOnSaturation(); 723 .RetiresOnSaturation();
702 724
703 mock_service(s.get(), &m_); 725 mock_service(s.get(), &m_);
704 std::vector<uint8> fake_sig(fake_value_.c_str(), 726 EXPECT_CALL(m_, StartVerifyAttempt(serialized, fake_value_signature_, _))
705 fake_value_.c_str() + fake_value_.length());
706 EXPECT_CALL(m_, StartVerifyAttempt(serialized, fake_sig, _))
707 .Times(1); 727 .Times(1);
708 em::PolicyData out_pol; 728 em::PolicyData out_pol;
709 EXPECT_CALL(m_, set_cached_policy(A<const em::PolicyData&>())) 729 EXPECT_CALL(m_, set_cached_policy(A<const em::PolicyData&>()))
710 .WillOnce(SaveArg<0>(&out_pol)); 730 .WillOnce(SaveArg<0>(&out_pol));
711 731
712 s->Execute(); 732 s->Execute();
713 message_loop_.RunAllPending(); 733 message_loop_.RunAllPending();
714 734
715 s->OnKeyOpComplete(OwnerManager::SUCCESS, std::vector<uint8>()); 735 s->OnKeyOpComplete(OwnerManager::SUCCESS, std::vector<uint8>());
716 message_loop_.RunAllPending(); 736 message_loop_.RunAllPending();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 .WillOnce(Retrieve(serialized)) 784 .WillOnce(Retrieve(serialized))
765 .RetiresOnSaturation(); 785 .RetiresOnSaturation();
766 786
767 s->Execute(); 787 s->Execute();
768 message_loop_.RunAllPending(); 788 message_loop_.RunAllPending();
769 } 789 }
770 790
771 TEST_F(SignedSettingsTest, RetrieveMalsignedPolicy) { 791 TEST_F(SignedSettingsTest, RetrieveMalsignedPolicy) {
772 std::string signed_serialized; 792 std::string signed_serialized;
773 em::PolicyFetchResponse signed_policy = BuildProto(fake_prop_, 793 em::PolicyFetchResponse signed_policy = BuildProto(fake_prop_,
774 fake_value_, 794 fake_signature_,
775 &signed_serialized); 795 &signed_serialized);
776 ProtoDelegate d(signed_policy); 796 ProtoDelegate d(signed_policy);
777 d.expect_failure(SignedSettings::BAD_SIGNATURE); 797 d.expect_failure(SignedSettings::BAD_SIGNATURE);
778 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d)); 798 scoped_refptr<SignedSettings> s(SignedSettings::CreateRetrievePolicyOp(&d));
779 799
780 MockSessionManagerClient* client = 800 MockSessionManagerClient* client =
781 mock_dbus_thread_manager_->mock_session_manager_client(); 801 mock_dbus_thread_manager_->mock_session_manager_client();
782 EXPECT_CALL(*client, RetrievePolicy(_)) 802 EXPECT_CALL(*client, RetrievePolicy(_))
783 .WillOnce(Retrieve(signed_serialized)) 803 .WillOnce(Retrieve(signed_serialized))
784 .RetiresOnSaturation(); 804 .RetiresOnSaturation();
785 805
786 mock_service(s.get(), &m_); 806 mock_service(s.get(), &m_);
787 std::vector<uint8> fake_sig(fake_value_.c_str(), 807 EXPECT_CALL(m_, StartVerifyAttempt(fake_prop_, fake_value_signature_, _))
788 fake_value_.c_str() + fake_value_.length());
789 EXPECT_CALL(m_, StartVerifyAttempt(fake_prop_, fake_sig, _))
790 .Times(1); 808 .Times(1);
791 809
792 s->Execute(); 810 s->Execute();
793 message_loop_.RunAllPending(); 811 message_loop_.RunAllPending();
794 812
795 s->OnKeyOpComplete(OwnerManager::OPERATION_FAILED, std::vector<uint8>()); 813 s->OnKeyOpComplete(OwnerManager::OPERATION_FAILED, std::vector<uint8>());
796 message_loop_.RunAllPending(); 814 message_loop_.RunAllPending();
797 } 815 }
798 816
799 } // namespace chromeos 817 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698