| Index: chrome/browser/chromeos/gdata/gdata_parser_unittest.cc
|
| diff --git a/chrome/browser/chromeos/gdata/gdata_parser_unittest.cc b/chrome/browser/chromeos/gdata/gdata_parser_unittest.cc
|
| index 29702df6bf67a9ff42e5a8a38e945ce5ce2625eb..427149f39b3a343cb3e5c58f893491077071ee39 100644
|
| --- a/chrome/browser/chromeos/gdata/gdata_parser_unittest.cc
|
| +++ b/chrome/browser/chromeos/gdata/gdata_parser_unittest.cc
|
| @@ -19,6 +19,14 @@ using base::Value;
|
| using base::DictionaryValue;
|
| using base::ListValue;
|
|
|
| +#define IF_EXPECT_EQ(arg1, arg2) \
|
| + EXPECT_EQ(arg1, arg2); \
|
| + if (arg1 == arg2)
|
| +
|
| +#define IF_EXPECT_TRUE(arg) \
|
| + EXPECT_TRUE(arg); \
|
| + if (arg)
|
| +
|
| namespace gdata {
|
|
|
| class GDataParserTest : public testing::Test {
|
| @@ -74,36 +82,40 @@ TEST_F(GDataParserTest, DocumentFeedJsonParser) {
|
| std::string error;
|
| scoped_ptr<Value> document(LoadJSONFile("basic_feed.json"));
|
| ASSERT_TRUE(document.get());
|
| - ASSERT_TRUE(document->GetType() == Value::TYPE_DICTIONARY);
|
| + ASSERT_EQ(Value::TYPE_DICTIONARY, document->GetType());
|
| scoped_ptr<DocumentFeed> feed(DocumentFeed::ExtractAndParse(*document));
|
| ASSERT_TRUE(feed.get());
|
|
|
| base::Time update_time;
|
| ASSERT_TRUE(FeedEntry::GetTimeFromString("2011-12-14T01:03:21.151Z",
|
| - &update_time));
|
| + &update_time));
|
|
|
| EXPECT_EQ(1, feed->start_index());
|
| EXPECT_EQ(1000, feed->items_per_page());
|
| EXPECT_EQ(update_time, feed->updated_time());
|
|
|
| // Check authors.
|
| - ASSERT_EQ(1U, feed->authors().size());
|
| - EXPECT_EQ(ASCIIToUTF16("tester"), feed->authors()[0]->name());
|
| - EXPECT_EQ("tester@testing.com", feed->authors()[0]->email());
|
| + IF_EXPECT_EQ(1U, feed->authors().size()) {
|
| + EXPECT_EQ(ASCIIToUTF16("tester"), feed->authors()[0]->name());
|
| + EXPECT_EQ("tester@testing.com", feed->authors()[0]->email());
|
| + }
|
|
|
| // Check links.
|
| - ASSERT_EQ(feed->links().size(), 6U);
|
| - const Link* self_link = feed->GetLinkByType(Link::SELF);
|
| - ASSERT_TRUE(self_link);
|
| - EXPECT_EQ("https://self_link/", self_link->href().spec());
|
| - EXPECT_EQ("application/atom+xml", self_link->mime_type());
|
| + IF_EXPECT_EQ(6U, feed->links().size()) {
|
| + const Link* self_link = feed->GetLinkByType(Link::SELF);
|
| + IF_EXPECT_TRUE(self_link) {
|
| + EXPECT_EQ("https://self_link/", self_link->href().spec());
|
| + EXPECT_EQ("application/atom+xml", self_link->mime_type());
|
| + }
|
| + }
|
|
|
| const Link* resumable_link =
|
| feed->GetLinkByType(Link::RESUMABLE_CREATE_MEDIA);
|
| - ASSERT_TRUE(resumable_link);
|
| - EXPECT_EQ("https://resumable_create_media_link/",
|
| - resumable_link->href().spec());
|
| - EXPECT_EQ("application/atom+xml", resumable_link->mime_type());
|
| + IF_EXPECT_TRUE(resumable_link) {
|
| + EXPECT_EQ("https://resumable_create_media_link/",
|
| + resumable_link->href().spec());
|
| + EXPECT_EQ("application/atom+xml", resumable_link->mime_type());
|
| + }
|
|
|
| // Check entries.
|
| ASSERT_EQ(4U, feed->entries().size());
|
| @@ -119,19 +131,20 @@ TEST_F(GDataParserTest, DocumentFeedJsonParser) {
|
| base::Time entry1_update_time;
|
| base::Time entry1_publish_time;
|
| ASSERT_TRUE(FeedEntry::GetTimeFromString("2011-04-01T18:34:08.234Z",
|
| - &entry1_update_time));
|
| + &entry1_update_time));
|
| ASSERT_TRUE(FeedEntry::GetTimeFromString("2010-11-07T05:03:54.719Z",
|
| - &entry1_publish_time));
|
| - ASSERT_EQ(entry1_update_time, folder_entry->updated_time());
|
| - ASSERT_EQ(entry1_publish_time, folder_entry->published_time());
|
| -
|
| - ASSERT_EQ(1U, folder_entry->authors().size());
|
| - EXPECT_EQ(ASCIIToUTF16("entry_tester"), folder_entry->authors()[0]->name());
|
| - EXPECT_EQ("entry_tester@testing.com", folder_entry->authors()[0]->email());
|
| - EXPECT_EQ("https://1_folder_content_url/",
|
| - folder_entry->content_url().spec());
|
| - EXPECT_EQ("application/atom+xml;type=feed",
|
| - folder_entry->content_mime_type());
|
| + &entry1_publish_time));
|
| + EXPECT_EQ(entry1_update_time, folder_entry->updated_time());
|
| + EXPECT_EQ(entry1_publish_time, folder_entry->published_time());
|
| +
|
| + IF_EXPECT_EQ(1U, folder_entry->authors().size()) {
|
| + EXPECT_EQ(ASCIIToUTF16("entry_tester"), folder_entry->authors()[0]->name());
|
| + EXPECT_EQ("entry_tester@testing.com", folder_entry->authors()[0]->email());
|
| + EXPECT_EQ("https://1_folder_content_url/",
|
| + folder_entry->content_url().spec());
|
| + EXPECT_EQ("application/atom+xml;type=feed",
|
| + folder_entry->content_mime_type());
|
| + }
|
|
|
| ASSERT_EQ(1U, folder_entry->feed_links().size());
|
| const FeedLink* feed_link = folder_entry->feed_links()[0];
|
| @@ -140,46 +153,69 @@ TEST_F(GDataParserTest, DocumentFeedJsonParser) {
|
|
|
| const Link* entry1_alternate_link =
|
| folder_entry->GetLinkByType(Link::ALTERNATE);
|
| - ASSERT_TRUE(entry1_alternate_link);
|
| - EXPECT_EQ("https://1_folder_alternate_link/",
|
| - entry1_alternate_link->href().spec());
|
| - EXPECT_EQ("text/html", entry1_alternate_link->mime_type());
|
| + IF_EXPECT_TRUE(entry1_alternate_link) {
|
| + EXPECT_EQ("https://1_folder_alternate_link/",
|
| + entry1_alternate_link->href().spec());
|
| + EXPECT_EQ("text/html", entry1_alternate_link->mime_type());
|
| + }
|
|
|
| const Link* entry1_edit_link = folder_entry->GetLinkByType(Link::EDIT);
|
| - ASSERT_TRUE(entry1_edit_link);
|
| - EXPECT_EQ("https://1_edit_link/", entry1_edit_link->href().spec());
|
| - EXPECT_EQ("application/atom+xml", entry1_edit_link->mime_type());
|
| + IF_EXPECT_TRUE(entry1_edit_link) {
|
| + EXPECT_EQ("https://1_edit_link/", entry1_edit_link->href().spec());
|
| + EXPECT_EQ("application/atom+xml", entry1_edit_link->mime_type());
|
| + }
|
|
|
| // Check a file entry.
|
| const DocumentEntry* file_entry = feed->entries()[1];
|
| - ASSERT_TRUE(file_entry);
|
| - EXPECT_EQ(DocumentEntry::FILE, file_entry->kind());
|
| - EXPECT_EQ(ASCIIToUTF16("filename.m4a"), file_entry->filename());
|
| - EXPECT_EQ(ASCIIToUTF16("sugg_file_name.m4a"),
|
| - file_entry->suggested_filename());
|
| - EXPECT_EQ("3b4382ebefec6e743578c76bbd0575ce", file_entry->file_md5());
|
| - EXPECT_EQ(892721, file_entry->file_size());
|
| - const Link* file_parent_link = file_entry->GetLinkByType(Link::PARENT);
|
| - ASSERT_TRUE(file_parent_link);
|
| - EXPECT_EQ("https://file_link_parent/", file_parent_link->href().spec());
|
| - EXPECT_EQ("application/atom+xml", file_parent_link->mime_type());
|
| - EXPECT_EQ(ASCIIToUTF16("Medical"), file_parent_link->title());
|
| + IF_EXPECT_TRUE(file_entry) {
|
| + EXPECT_EQ(DocumentEntry::FILE, file_entry->kind());
|
| + EXPECT_EQ(ASCIIToUTF16("filename.m4a"), file_entry->filename());
|
| + EXPECT_EQ(ASCIIToUTF16("sugg_file_name.m4a"),
|
| + file_entry->suggested_filename());
|
| + EXPECT_EQ("3b4382ebefec6e743578c76bbd0575ce", file_entry->file_md5());
|
| + EXPECT_EQ(892721, file_entry->file_size());
|
| + const Link* file_parent_link = file_entry->GetLinkByType(Link::PARENT);
|
| + IF_EXPECT_TRUE(file_parent_link) {
|
| + EXPECT_EQ("https://file_link_parent/", file_parent_link->href().spec());
|
| + EXPECT_EQ("application/atom+xml", file_parent_link->mime_type());
|
| + EXPECT_EQ(ASCIIToUTF16("Medical"), file_parent_link->title());
|
| + }
|
| + const Link* file_open_with_link =
|
| + file_entry->GetLinkByType(Link::OPEN_WITH);
|
| + IF_EXPECT_TRUE(file_open_with_link) {
|
| + EXPECT_EQ("https://xml_file_entry_open_with_link/",
|
| + file_open_with_link->href().spec());
|
| + EXPECT_EQ("application/atom+xml", file_open_with_link->mime_type());
|
| + EXPECT_EQ("the_app_id", file_open_with_link->app_id());
|
| + }
|
| +
|
| + const Link* file_unknown_link = file_entry->GetLinkByType(Link::UNKNOWN);
|
| + IF_EXPECT_TRUE(file_unknown_link) {
|
| + EXPECT_EQ("https://xml_file_fake_entry_open_with_link/",
|
| + file_unknown_link->href().spec());
|
| + EXPECT_EQ("application/atom+xml", file_unknown_link->mime_type());
|
| + EXPECT_EQ("", file_unknown_link->app_id());
|
| + }
|
| +
|
| + }
|
|
|
| // Check a file entry.
|
| const DocumentEntry* document_entry = feed->entries()[2];
|
| - ASSERT_TRUE(document_entry);
|
| - EXPECT_EQ(DocumentEntry::DOCUMENT, document_entry->kind());
|
| - EXPECT_TRUE(document_entry->is_hosted_document());
|
| - EXPECT_TRUE(document_entry->is_google_document());
|
| - EXPECT_FALSE(document_entry->is_external_document());
|
| + IF_EXPECT_TRUE(document_entry) {
|
| + EXPECT_EQ(DocumentEntry::DOCUMENT, document_entry->kind());
|
| + EXPECT_TRUE(document_entry->is_hosted_document());
|
| + EXPECT_TRUE(document_entry->is_google_document());
|
| + EXPECT_FALSE(document_entry->is_external_document());
|
| + }
|
|
|
| // Check an external document entry.
|
| const DocumentEntry* app_entry = feed->entries()[3];
|
| - ASSERT_TRUE(app_entry);
|
| - EXPECT_EQ(DocumentEntry::EXTERNAL_APP, app_entry->kind());
|
| - EXPECT_TRUE(app_entry->is_hosted_document());
|
| - EXPECT_TRUE(app_entry->is_external_document());
|
| - EXPECT_FALSE(app_entry->is_google_document());
|
| + IF_EXPECT_TRUE(app_entry) {
|
| + EXPECT_EQ(DocumentEntry::EXTERNAL_APP, app_entry->kind());
|
| + EXPECT_TRUE(app_entry->is_hosted_document());
|
| + EXPECT_TRUE(app_entry->is_external_document());
|
| + EXPECT_FALSE(app_entry->is_google_document());
|
| + }
|
| }
|
|
|
|
|
| @@ -196,13 +232,13 @@ TEST_F(GDataParserTest, DocumentEntryXmlParser) {
|
| base::Time entry1_update_time;
|
| base::Time entry1_publish_time;
|
| ASSERT_TRUE(FeedEntry::GetTimeFromString("2011-04-01T18:34:08.234Z",
|
| - &entry1_update_time));
|
| + &entry1_update_time));
|
| ASSERT_TRUE(FeedEntry::GetTimeFromString("2010-11-07T05:03:54.719Z",
|
| - &entry1_publish_time));
|
| - ASSERT_EQ(entry1_update_time, entry->updated_time());
|
| - ASSERT_EQ(entry1_publish_time, entry->published_time());
|
| + &entry1_publish_time));
|
| + EXPECT_EQ(entry1_update_time, entry->updated_time());
|
| + EXPECT_EQ(entry1_publish_time, entry->published_time());
|
|
|
| - ASSERT_EQ(1U, entry->authors().size());
|
| + EXPECT_EQ(1U, entry->authors().size());
|
| EXPECT_EQ(ASCIIToUTF16("entry_tester"), entry->authors()[0]->name());
|
| EXPECT_EQ("entry_tester@testing.com", entry->authors()[0]->email());
|
| EXPECT_EQ("https://1_xml_file_entry_content_url/",
|
| @@ -211,33 +247,57 @@ TEST_F(GDataParserTest, DocumentEntryXmlParser) {
|
| entry->content_mime_type());
|
|
|
| // Check feed links.
|
| - ASSERT_EQ(2U, entry->feed_links().size());
|
| - const FeedLink* feed_link_1 = entry->feed_links()[0];
|
| - ASSERT_TRUE(feed_link_1);
|
| - ASSERT_EQ(FeedLink::ACL, feed_link_1->type());
|
| - const FeedLink* feed_link_2 = entry->feed_links()[1];
|
| - ASSERT_TRUE(feed_link_2);
|
| - ASSERT_EQ(FeedLink::REVISIONS, feed_link_2->type());
|
| + IF_EXPECT_EQ(2U, entry->feed_links().size()) {
|
| + const FeedLink* feed_link_1 = entry->feed_links()[0];
|
| + IF_EXPECT_TRUE(feed_link_1) {
|
| + EXPECT_EQ(FeedLink::ACL, feed_link_1->type());
|
| + }
|
| + const FeedLink* feed_link_2 = entry->feed_links()[1];
|
| + IF_EXPECT_TRUE(feed_link_2) {
|
| + EXPECT_EQ(FeedLink::REVISIONS, feed_link_2->type());
|
| + }
|
| + }
|
|
|
| // Check links.
|
| - ASSERT_EQ(7U, entry->links().size());
|
| - const Link* entry1_alternate_link = entry->GetLinkByType(Link::ALTERNATE);
|
| - ASSERT_TRUE(entry1_alternate_link);
|
| - EXPECT_EQ("https://xml_file_entry_id_alternate_link/",
|
| - entry1_alternate_link->href().spec());
|
| - EXPECT_EQ("text/html", entry1_alternate_link->mime_type());
|
| -
|
| - const Link* entry1_edit_link = entry->GetLinkByType(Link::EDIT_MEDIA);
|
| - ASSERT_TRUE(entry1_edit_link);
|
| - EXPECT_EQ("https://xml_file_entry_id_edit_media_link/",
|
| - entry1_edit_link->href().spec());
|
| - EXPECT_EQ("application/x-tar", entry1_edit_link->mime_type());
|
| -
|
| - const Link* entry1_self_link = entry->GetLinkByType(Link::SELF);
|
| - ASSERT_TRUE(entry1_self_link);
|
| - EXPECT_EQ("https://xml_file_entry_id_self_link/",
|
| - entry1_self_link->href().spec());
|
| - EXPECT_EQ("application/atom+xml", entry1_self_link->mime_type());
|
| + IF_EXPECT_EQ(9U, entry->links().size()) {
|
| + const Link* entry1_alternate_link = entry->GetLinkByType(Link::ALTERNATE);
|
| + IF_EXPECT_TRUE(entry1_alternate_link) {
|
| + EXPECT_EQ("https://xml_file_entry_id_alternate_link/",
|
| + entry1_alternate_link->href().spec());
|
| + EXPECT_EQ("text/html", entry1_alternate_link->mime_type());
|
| + }
|
| +
|
| + const Link* entry1_edit_link = entry->GetLinkByType(Link::EDIT_MEDIA);
|
| + IF_EXPECT_TRUE(entry1_edit_link) {
|
| + EXPECT_EQ("https://xml_file_entry_id_edit_media_link/",
|
| + entry1_edit_link->href().spec());
|
| + EXPECT_EQ("application/x-tar", entry1_edit_link->mime_type());
|
| + }
|
| +
|
| + const Link* entry1_self_link = entry->GetLinkByType(Link::SELF);
|
| + IF_EXPECT_TRUE(entry1_self_link) {
|
| + EXPECT_EQ("https://xml_file_entry_id_self_link/",
|
| + entry1_self_link->href().spec());
|
| + EXPECT_EQ("application/atom+xml", entry1_self_link->mime_type());
|
| + EXPECT_EQ("", entry1_self_link->app_id());
|
| + }
|
| +
|
| + const Link* entry1_open_with_link = entry->GetLinkByType(Link::OPEN_WITH);
|
| + IF_EXPECT_TRUE(entry1_open_with_link) {
|
| + EXPECT_EQ("https://xml_file_entry_open_with_link/",
|
| + entry1_open_with_link->href().spec());
|
| + EXPECT_EQ("application/atom+xml", entry1_open_with_link->mime_type());
|
| + EXPECT_EQ("the_app_id", entry1_open_with_link->app_id());
|
| + }
|
| +
|
| + const Link* entry1_unknown_link = entry->GetLinkByType(Link::UNKNOWN);
|
| + IF_EXPECT_TRUE(entry1_unknown_link) {
|
| + EXPECT_EQ("https://xml_file_fake_entry_open_with_link/",
|
| + entry1_unknown_link->href().spec());
|
| + EXPECT_EQ("application/atom+xml", entry1_unknown_link->mime_type());
|
| + EXPECT_EQ("", entry1_unknown_link->app_id());
|
| + }
|
| + }
|
|
|
| // Check a file properties.
|
| EXPECT_EQ(DocumentEntry::FILE, entry->kind());
|
| @@ -251,8 +311,8 @@ TEST_F(GDataParserTest, DocumentEntryXmlParser) {
|
| TEST_F(GDataParserTest, AccountMetadataFeedParser) {
|
| scoped_ptr<Value> document(LoadJSONFile("account_metadata.json"));
|
| ASSERT_TRUE(document.get());
|
| - ASSERT_TRUE(document->GetType() == Value::TYPE_DICTIONARY);
|
| - DictionaryValue* entry_value;
|
| + ASSERT_EQ(Value::TYPE_DICTIONARY, document->GetType());
|
| + DictionaryValue* entry_value = NULL;
|
| ASSERT_TRUE(reinterpret_cast<DictionaryValue*>(document.get())->GetDictionary(
|
| std::string("entry"), &entry_value));
|
| ASSERT_TRUE(entry_value);
|
| @@ -263,37 +323,45 @@ TEST_F(GDataParserTest, AccountMetadataFeedParser) {
|
| EXPECT_EQ(GG_LONGLONG(6789012345), feed->quota_bytes_used());
|
| EXPECT_EQ(GG_LONGLONG(9876543210), feed->quota_bytes_total());
|
| EXPECT_EQ(654321, feed->largest_changestamp());
|
| - ASSERT_EQ(2U, feed->installed_apps()->size());
|
| + EXPECT_EQ(2U, feed->installed_apps()->size());
|
| const InstalledApp* first_app = feed->installed_apps()[0];
|
| const InstalledApp* second_app = feed->installed_apps()[1];
|
|
|
| - EXPECT_EQ("Drive App 1", UTF16ToUTF8(first_app->app_name()));
|
| - EXPECT_EQ("Drive App Object 1", UTF16ToUTF8(first_app->object_type()));
|
| - EXPECT_TRUE(first_app->supports_create());
|
| - EXPECT_EQ("https://chrome.google.com/webstore/detail/11111111",
|
| - first_app->GetProductUrl().spec());
|
| - ASSERT_EQ(2U, first_app->primary_mimetypes()->size());
|
| - EXPECT_EQ("application/test_type_1",
|
| - *first_app->primary_mimetypes()->at(0));
|
| - EXPECT_EQ("application/vnd.google-apps.drive-sdk.11111111",
|
| - *first_app->primary_mimetypes()->at(1));
|
| - ASSERT_EQ(1U, first_app->secondary_mimetypes()->size());
|
| - EXPECT_EQ("image/jpeg", *first_app->secondary_mimetypes()->at(0));
|
| - ASSERT_EQ(2U, first_app->primary_extensions()->size());
|
| - EXPECT_EQ("ext_1", *first_app->primary_extensions()->at(0));
|
| - EXPECT_EQ("ext_2", *first_app->primary_extensions()->at(1));
|
| - ASSERT_EQ(1U, first_app->secondary_extensions()->size());
|
| - EXPECT_EQ("ext_3", *first_app->secondary_extensions()->at(0));
|
| -
|
| - EXPECT_EQ("Drive App 2", UTF16ToUTF8(second_app->app_name()));
|
| - EXPECT_EQ("Drive App Object 2", UTF16ToUTF8(second_app->object_type()));
|
| - EXPECT_EQ("https://chrome.google.com/webstore/detail/22222222",
|
| - second_app->GetProductUrl().spec());
|
| - EXPECT_FALSE(second_app->supports_create());
|
| - EXPECT_EQ(2U, second_app->primary_mimetypes()->size());
|
| - EXPECT_EQ(0U, second_app->secondary_mimetypes()->size());
|
| - EXPECT_EQ(1U, second_app->primary_extensions()->size());
|
| - EXPECT_EQ(0U, second_app->secondary_extensions()->size());
|
| + IF_EXPECT_TRUE(first_app) {
|
| + EXPECT_EQ("Drive App 1", UTF16ToUTF8(first_app->app_name()));
|
| + EXPECT_EQ("Drive App Object 1", UTF16ToUTF8(first_app->object_type()));
|
| + EXPECT_TRUE(first_app->supports_create());
|
| + EXPECT_EQ("https://chrome.google.com/webstore/detail/11111111",
|
| + first_app->GetProductUrl().spec());
|
| + IF_EXPECT_EQ(2U, first_app->primary_mimetypes()->size()) {
|
| + EXPECT_EQ("application/test_type_1",
|
| + *first_app->primary_mimetypes()->at(0));
|
| + EXPECT_EQ("application/vnd.google-apps.drive-sdk.11111111",
|
| + *first_app->primary_mimetypes()->at(1));
|
| + }
|
| + IF_EXPECT_EQ(1U, first_app->secondary_mimetypes()->size()) {
|
| + EXPECT_EQ("image/jpeg", *first_app->secondary_mimetypes()->at(0));
|
| + }
|
| + IF_EXPECT_EQ(2U, first_app->primary_extensions()->size()) {
|
| + EXPECT_EQ("ext_1", *first_app->primary_extensions()->at(0));
|
| + EXPECT_EQ("ext_2", *first_app->primary_extensions()->at(1));
|
| + }
|
| + IF_EXPECT_EQ(1U, first_app->secondary_extensions()->size()) {
|
| + EXPECT_EQ("ext_3", *first_app->secondary_extensions()->at(0));
|
| + }
|
| + }
|
| +
|
| + IF_EXPECT_TRUE(second_app) {
|
| + EXPECT_EQ("Drive App 2", UTF16ToUTF8(second_app->app_name()));
|
| + EXPECT_EQ("Drive App Object 2", UTF16ToUTF8(second_app->object_type()));
|
| + EXPECT_EQ("https://chrome.google.com/webstore/detail/22222222",
|
| + second_app->GetProductUrl().spec());
|
| + EXPECT_FALSE(second_app->supports_create());
|
| + EXPECT_EQ(2U, second_app->primary_mimetypes()->size());
|
| + EXPECT_EQ(0U, second_app->secondary_mimetypes()->size());
|
| + EXPECT_EQ(1U, second_app->primary_extensions()->size());
|
| + EXPECT_EQ(0U, second_app->secondary_extensions()->size());
|
| + }
|
| }
|
|
|
| // Test file extension checking in DocumentEntry::HasDocumentExtension().
|
|
|