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

Unified Diff: chrome/browser/chromeos/gdata/gdata_parser_unittest.cc

Issue 10546034: Adds parsing for the app_id field from an "open-with-" link (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added json test Created 8 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/gdata/gdata_parser.cc ('k') | chrome/test/data/chromeos/gdata/basic_feed.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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().
« no previous file with comments | « chrome/browser/chromeos/gdata/gdata_parser.cc ('k') | chrome/test/data/chromeos/gdata/basic_feed.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698