OLD | NEW |
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 <string> | 5 #include <string> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 // Simple consumer for WebIntents data. Stores the result data and quits UI | 147 // Simple consumer for WebIntents data. Stores the result data and quits UI |
148 // message loop when callback is invoked. | 148 // message loop when callback is invoked. |
149 class WebIntentsConsumer: public WebDataServiceConsumer { | 149 class WebIntentsConsumer: public WebDataServiceConsumer { |
150 public: | 150 public: |
151 virtual void OnWebDataServiceRequestDone(WebDataService::Handle h, | 151 virtual void OnWebDataServiceRequestDone(WebDataService::Handle h, |
152 const WDTypedResult* result) { | 152 const WDTypedResult* result) { |
153 intents.clear(); | 153 intents.clear(); |
154 if (result) { | 154 if (result) { |
155 DCHECK(result->GetType() == WEB_INTENTS_RESULT); | 155 DCHECK(result->GetType() == WEB_INTENTS_RESULT); |
156 intents = static_cast< | 156 intents = static_cast< |
157 const WDResult<std::vector<WebIntentData> >*>(result)->GetValue(); | 157 const WDResult<std::vector<WebIntentServiceData> >*>(result)-> |
| 158 GetValue(); |
158 } | 159 } |
159 | 160 |
160 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 161 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
161 MessageLoop::current()->Quit(); | 162 MessageLoop::current()->Quit(); |
162 } | 163 } |
163 | 164 |
164 // Run the current message loop. OnWebDataServiceRequestDone will invoke | 165 // Run the current message loop. OnWebDataServiceRequestDone will invoke |
165 // MessageLoop::Quit on completion, so this call will finish at that point. | 166 // MessageLoop::Quit on completion, so this call will finish at that point. |
166 static void WaitUntilCalled() { | 167 static void WaitUntilCalled() { |
167 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 168 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
168 MessageLoop::current()->Run(); | 169 MessageLoop::current()->Run(); |
169 } | 170 } |
170 | 171 |
171 std::vector<WebIntentData> intents; // Result data from completion callback. | 172 // Result data from completion callback. |
| 173 std::vector<WebIntentServiceData> intents; |
172 }; | 174 }; |
173 | 175 |
174 TEST_F(WebDataServiceAutofillTest, FormFillAdd) { | 176 TEST_F(WebDataServiceAutofillTest, FormFillAdd) { |
175 const AutofillChange expected_changes[] = { | 177 const AutofillChange expected_changes[] = { |
176 AutofillChange(AutofillChange::ADD, AutofillKey(name1_, value1_)), | 178 AutofillChange(AutofillChange::ADD, AutofillKey(name1_, value1_)), |
177 AutofillChange(AutofillChange::ADD, AutofillKey(name2_, value2_)) | 179 AutofillChange(AutofillChange::ADD, AutofillKey(name2_, value2_)) |
178 }; | 180 }; |
179 | 181 |
180 // This will verify that the correct notification is triggered, | 182 // This will verify that the correct notification is triggered, |
181 // passing the correct list of autofill keys in the details. | 183 // passing the correct list of autofill keys in the details. |
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
594 ASSERT_EQ(0U, card_consumer2.result().size()); | 596 ASSERT_EQ(0U, card_consumer2.result().size()); |
595 } | 597 } |
596 | 598 |
597 TEST_F(WebDataServiceTest, WebIntents) { | 599 TEST_F(WebDataServiceTest, WebIntents) { |
598 WebIntentsConsumer consumer; | 600 WebIntentsConsumer consumer; |
599 | 601 |
600 wds_->GetWebIntents(ASCIIToUTF16("share"), &consumer); | 602 wds_->GetWebIntents(ASCIIToUTF16("share"), &consumer); |
601 WebIntentsConsumer::WaitUntilCalled(); | 603 WebIntentsConsumer::WaitUntilCalled(); |
602 EXPECT_EQ(0U, consumer.intents.size()); | 604 EXPECT_EQ(0U, consumer.intents.size()); |
603 | 605 |
604 WebIntentData intent; | 606 WebIntentServiceData service; |
605 intent.service_url = GURL("http://google.com"); | 607 service.service_url = GURL("http://google.com"); |
606 intent.action = ASCIIToUTF16("share"); | 608 service.action = ASCIIToUTF16("share"); |
607 intent.type = ASCIIToUTF16("image/*"); | 609 service.type = ASCIIToUTF16("image/*"); |
608 wds_->AddWebIntent(intent); | 610 wds_->AddWebIntent(service); |
609 | 611 |
610 intent.type = ASCIIToUTF16("video/*"); | 612 service.type = ASCIIToUTF16("video/*"); |
611 wds_->AddWebIntent(intent); | 613 wds_->AddWebIntent(service); |
612 | 614 |
613 wds_->GetWebIntents(ASCIIToUTF16("share"), &consumer); | 615 wds_->GetWebIntents(ASCIIToUTF16("share"), &consumer); |
614 WebIntentsConsumer::WaitUntilCalled(); | 616 WebIntentsConsumer::WaitUntilCalled(); |
615 ASSERT_EQ(2U, consumer.intents.size()); | 617 ASSERT_EQ(2U, consumer.intents.size()); |
616 | 618 |
617 if (consumer.intents[0].type != ASCIIToUTF16("image/*")) | 619 if (consumer.intents[0].type != ASCIIToUTF16("image/*")) |
618 std::swap(consumer.intents[0],consumer.intents[1]); | 620 std::swap(consumer.intents[0],consumer.intents[1]); |
619 | 621 |
620 EXPECT_EQ(intent.service_url, consumer.intents[0].service_url); | 622 EXPECT_EQ(service.service_url, consumer.intents[0].service_url); |
621 EXPECT_EQ(intent.action, consumer.intents[0].action); | 623 EXPECT_EQ(service.action, consumer.intents[0].action); |
622 EXPECT_EQ(ASCIIToUTF16("image/*"), consumer.intents[0].type); | 624 EXPECT_EQ(ASCIIToUTF16("image/*"), consumer.intents[0].type); |
623 EXPECT_EQ(intent.service_url, consumer.intents[1].service_url); | 625 EXPECT_EQ(service.service_url, consumer.intents[1].service_url); |
624 EXPECT_EQ(intent.action, consumer.intents[1].action); | 626 EXPECT_EQ(service.action, consumer.intents[1].action); |
625 EXPECT_EQ(intent.type, consumer.intents[1].type); | 627 EXPECT_EQ(service.type, consumer.intents[1].type); |
626 | 628 |
627 intent.type = ASCIIToUTF16("image/*"); | 629 service.type = ASCIIToUTF16("image/*"); |
628 wds_->RemoveWebIntent(intent); | 630 wds_->RemoveWebIntent(service); |
629 | 631 |
630 wds_->GetWebIntents(ASCIIToUTF16("share"), &consumer); | 632 wds_->GetWebIntents(ASCIIToUTF16("share"), &consumer); |
631 WebIntentsConsumer::WaitUntilCalled(); | 633 WebIntentsConsumer::WaitUntilCalled(); |
632 ASSERT_EQ(1U, consumer.intents.size()); | 634 ASSERT_EQ(1U, consumer.intents.size()); |
633 | 635 |
634 intent.type = ASCIIToUTF16("video/*"); | 636 service.type = ASCIIToUTF16("video/*"); |
635 EXPECT_EQ(intent.service_url, consumer.intents[0].service_url); | 637 EXPECT_EQ(service.service_url, consumer.intents[0].service_url); |
636 EXPECT_EQ(intent.action, consumer.intents[0].action); | 638 EXPECT_EQ(service.action, consumer.intents[0].action); |
637 EXPECT_EQ(intent.type, consumer.intents[0].type); | 639 EXPECT_EQ(service.type, consumer.intents[0].type); |
638 } | 640 } |
639 | 641 |
640 TEST_F(WebDataServiceTest, WebIntentsGetAll) { | 642 TEST_F(WebDataServiceTest, WebIntentsGetAll) { |
641 WebIntentsConsumer consumer; | 643 WebIntentsConsumer consumer; |
642 | 644 |
643 WebIntentData intent; | 645 WebIntentServiceData service; |
644 intent.service_url = GURL("http://google.com"); | 646 service.service_url = GURL("http://google.com"); |
645 intent.action = ASCIIToUTF16("share"); | 647 service.action = ASCIIToUTF16("share"); |
646 intent.type = ASCIIToUTF16("image/*"); | 648 service.type = ASCIIToUTF16("image/*"); |
647 wds_->AddWebIntent(intent); | 649 wds_->AddWebIntent(service); |
648 | 650 |
649 intent.action = ASCIIToUTF16("edit"); | 651 service.action = ASCIIToUTF16("edit"); |
650 wds_->AddWebIntent(intent); | 652 wds_->AddWebIntent(service); |
651 | 653 |
652 wds_->GetAllWebIntents(&consumer); | 654 wds_->GetAllWebIntents(&consumer); |
653 WebIntentsConsumer::WaitUntilCalled(); | 655 WebIntentsConsumer::WaitUntilCalled(); |
654 ASSERT_EQ(2U, consumer.intents.size()); | 656 ASSERT_EQ(2U, consumer.intents.size()); |
655 | 657 |
656 if (consumer.intents[0].action != ASCIIToUTF16("edit")) | 658 if (consumer.intents[0].action != ASCIIToUTF16("edit")) |
657 std::swap(consumer.intents[0],consumer.intents[1]); | 659 std::swap(consumer.intents[0],consumer.intents[1]); |
658 | 660 |
659 EXPECT_EQ(intent, consumer.intents[0]); | 661 EXPECT_EQ(service, consumer.intents[0]); |
660 intent.action = ASCIIToUTF16("share"); | 662 service.action = ASCIIToUTF16("share"); |
661 EXPECT_EQ(intent, consumer.intents[1]); | 663 EXPECT_EQ(service, consumer.intents[1]); |
662 } | 664 } |
663 | |
OLD | NEW |