| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/file_path.h" | 5 #include "base/file_path.h" |
| 6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
| 7 #include "base/json/json_file_value_serializer.h" | 7 #include "base/json/json_file_value_serializer.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/string16.h" | 9 #include "base/string16.h" |
| 10 #include "base/time.h" | 10 #include "base/time.h" |
| 11 #include "base/utf_string_conversions.h" | 11 #include "base/utf_string_conversions.h" |
| 12 #include "base/values.h" | 12 #include "base/values.h" |
| 13 #include "chrome/browser/chromeos/gdata/gdata_parser.h" | 13 #include "chrome/browser/chromeos/gdata/gdata_wapi_parser.h" |
| 14 #include "chrome/common/chrome_paths.h" | 14 #include "chrome/common/chrome_paths.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 16 #include "third_party/libxml/chromium/libxml_utils.h" | 16 #include "third_party/libxml/chromium/libxml_utils.h" |
| 17 | 17 |
| 18 using base::Value; | 18 using base::Value; |
| 19 using base::DictionaryValue; | 19 using base::DictionaryValue; |
| 20 using base::ListValue; | 20 using base::ListValue; |
| 21 | 21 |
| 22 #define IF_EXPECT_EQ(arg1, arg2) \ | 22 #define IF_EXPECT_EQ(arg1, arg2) \ |
| 23 EXPECT_EQ(arg1, arg2); \ | 23 EXPECT_EQ(arg1, arg2); \ |
| 24 if (arg1 == arg2) | 24 if (arg1 == arg2) |
| 25 | 25 |
| 26 #define IF_EXPECT_TRUE(arg) \ | 26 #define IF_EXPECT_TRUE(arg) \ |
| 27 EXPECT_TRUE(arg); \ | 27 EXPECT_TRUE(arg); \ |
| 28 if (arg) | 28 if (arg) |
| 29 | 29 |
| 30 namespace gdata { | 30 namespace gdata { |
| 31 | 31 |
| 32 class GDataParserTest : public testing::Test { | 32 class GDataWAPIParserTest : public testing::Test { |
| 33 protected: | 33 protected: |
| 34 static Value* LoadJSONFile(const std::string& filename) { | 34 static Value* LoadJSONFile(const std::string& filename) { |
| 35 FilePath path; | 35 FilePath path; |
| 36 std::string error; | 36 std::string error; |
| 37 // Test files for this unit test are located in | 37 // Test files for this unit test are located in |
| 38 // src/chrome/test/data/chromeos/gdata/* | 38 // src/chrome/test/data/chromeos/gdata/* |
| 39 PathService::Get(chrome::DIR_TEST_DATA, &path); | 39 PathService::Get(chrome::DIR_TEST_DATA, &path); |
| 40 path = path.AppendASCII("chromeos") | 40 path = path.AppendASCII("chromeos") |
| 41 .AppendASCII("gdata") | 41 .AppendASCII("gdata") |
| 42 .AppendASCII(filename.c_str()); | 42 .AppendASCII(filename.c_str()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 71 if (reader.NodeName() == "entry") { | 71 if (reader.NodeName() == "entry") { |
| 72 entry.reset(DocumentEntry::CreateFromXml(&reader)); | 72 entry.reset(DocumentEntry::CreateFromXml(&reader)); |
| 73 break; | 73 break; |
| 74 } | 74 } |
| 75 } | 75 } |
| 76 return entry.release(); | 76 return entry.release(); |
| 77 } | 77 } |
| 78 }; | 78 }; |
| 79 | 79 |
| 80 // Test document feed parsing. | 80 // Test document feed parsing. |
| 81 TEST_F(GDataParserTest, DocumentFeedJsonParser) { | 81 TEST_F(GDataWAPIParserTest, DocumentFeedJsonParser) { |
| 82 std::string error; | 82 std::string error; |
| 83 scoped_ptr<Value> document(LoadJSONFile("basic_feed.json")); | 83 scoped_ptr<Value> document(LoadJSONFile("basic_feed.json")); |
| 84 ASSERT_TRUE(document.get()); | 84 ASSERT_TRUE(document.get()); |
| 85 ASSERT_EQ(Value::TYPE_DICTIONARY, document->GetType()); | 85 ASSERT_EQ(Value::TYPE_DICTIONARY, document->GetType()); |
| 86 scoped_ptr<DocumentFeed> feed(DocumentFeed::ExtractAndParse(*document)); | 86 scoped_ptr<DocumentFeed> feed(DocumentFeed::ExtractAndParse(*document)); |
| 87 ASSERT_TRUE(feed.get()); | 87 ASSERT_TRUE(feed.get()); |
| 88 | 88 |
| 89 base::Time update_time; | 89 base::Time update_time; |
| 90 ASSERT_TRUE(FeedEntry::GetTimeFromString("2011-12-14T01:03:21.151Z", | 90 ASSERT_TRUE(FeedEntry::GetTimeFromString("2011-12-14T01:03:21.151Z", |
| 91 &update_time)); | 91 &update_time)); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 IF_EXPECT_TRUE(app_entry) { | 213 IF_EXPECT_TRUE(app_entry) { |
| 214 EXPECT_EQ(DocumentEntry::EXTERNAL_APP, app_entry->kind()); | 214 EXPECT_EQ(DocumentEntry::EXTERNAL_APP, app_entry->kind()); |
| 215 EXPECT_TRUE(app_entry->is_hosted_document()); | 215 EXPECT_TRUE(app_entry->is_hosted_document()); |
| 216 EXPECT_TRUE(app_entry->is_external_document()); | 216 EXPECT_TRUE(app_entry->is_external_document()); |
| 217 EXPECT_FALSE(app_entry->is_google_document()); | 217 EXPECT_FALSE(app_entry->is_google_document()); |
| 218 } | 218 } |
| 219 } | 219 } |
| 220 | 220 |
| 221 | 221 |
| 222 // Test document feed parsing. | 222 // Test document feed parsing. |
| 223 TEST_F(GDataParserTest, DocumentEntryXmlParser) { | 223 TEST_F(GDataWAPIParserTest, DocumentEntryXmlParser) { |
| 224 scoped_ptr<DocumentEntry> entry(LoadDocumentEntryFromXml("entry.xml")); | 224 scoped_ptr<DocumentEntry> entry(LoadDocumentEntryFromXml("entry.xml")); |
| 225 ASSERT_TRUE(entry.get()); | 225 ASSERT_TRUE(entry.get()); |
| 226 | 226 |
| 227 EXPECT_EQ(DocumentEntry::FILE, entry->kind()); | 227 EXPECT_EQ(DocumentEntry::FILE, entry->kind()); |
| 228 EXPECT_EQ("\"HhMOFgcNHSt7ImBr\"", entry->etag()); | 228 EXPECT_EQ("\"HhMOFgcNHSt7ImBr\"", entry->etag()); |
| 229 EXPECT_EQ("file:xml_file_resouce_id", entry->resource_id()); | 229 EXPECT_EQ("file:xml_file_resouce_id", entry->resource_id()); |
| 230 EXPECT_EQ("https://xml_file_id", entry->id()); | 230 EXPECT_EQ("https://xml_file_id", entry->id()); |
| 231 EXPECT_EQ(ASCIIToUTF16("Xml Entry File Title.tar"), entry->title()); | 231 EXPECT_EQ(ASCIIToUTF16("Xml Entry File Title.tar"), entry->title()); |
| 232 base::Time entry1_update_time; | 232 base::Time entry1_update_time; |
| 233 base::Time entry1_publish_time; | 233 base::Time entry1_publish_time; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 | 301 |
| 302 // Check a file properties. | 302 // Check a file properties. |
| 303 EXPECT_EQ(DocumentEntry::FILE, entry->kind()); | 303 EXPECT_EQ(DocumentEntry::FILE, entry->kind()); |
| 304 EXPECT_EQ(ASCIIToUTF16("Xml Entry File Name.tar"), entry->filename()); | 304 EXPECT_EQ(ASCIIToUTF16("Xml Entry File Name.tar"), entry->filename()); |
| 305 EXPECT_EQ(ASCIIToUTF16("Xml Entry Suggested File Name.tar"), | 305 EXPECT_EQ(ASCIIToUTF16("Xml Entry Suggested File Name.tar"), |
| 306 entry->suggested_filename()); | 306 entry->suggested_filename()); |
| 307 EXPECT_EQ("e48f4d5c46a778de263e0e3f4b3d2a7d", entry->file_md5()); | 307 EXPECT_EQ("e48f4d5c46a778de263e0e3f4b3d2a7d", entry->file_md5()); |
| 308 EXPECT_EQ(26562560, entry->file_size()); | 308 EXPECT_EQ(26562560, entry->file_size()); |
| 309 } | 309 } |
| 310 | 310 |
| 311 TEST_F(GDataParserTest, AccountMetadataFeedParser) { | 311 TEST_F(GDataWAPIParserTest, AccountMetadataFeedParser) { |
| 312 scoped_ptr<Value> document(LoadJSONFile("account_metadata.json")); | 312 scoped_ptr<Value> document(LoadJSONFile("account_metadata.json")); |
| 313 ASSERT_TRUE(document.get()); | 313 ASSERT_TRUE(document.get()); |
| 314 ASSERT_EQ(Value::TYPE_DICTIONARY, document->GetType()); | 314 ASSERT_EQ(Value::TYPE_DICTIONARY, document->GetType()); |
| 315 DictionaryValue* entry_value = NULL; | 315 DictionaryValue* entry_value = NULL; |
| 316 ASSERT_TRUE(reinterpret_cast<DictionaryValue*>(document.get())->GetDictionary( | 316 ASSERT_TRUE(reinterpret_cast<DictionaryValue*>(document.get())->GetDictionary( |
| 317 std::string("entry"), &entry_value)); | 317 std::string("entry"), &entry_value)); |
| 318 ASSERT_TRUE(entry_value); | 318 ASSERT_TRUE(entry_value); |
| 319 | 319 |
| 320 scoped_ptr<AccountMetadataFeed> feed( | 320 scoped_ptr<AccountMetadataFeed> feed( |
| 321 AccountMetadataFeed::CreateFrom(*document)); | 321 AccountMetadataFeed::CreateFrom(*document)); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 371 second_app->GetProductUrl().spec()); | 371 second_app->GetProductUrl().spec()); |
| 372 EXPECT_FALSE(second_app->supports_create()); | 372 EXPECT_FALSE(second_app->supports_create()); |
| 373 EXPECT_EQ(2U, second_app->primary_mimetypes().size()); | 373 EXPECT_EQ(2U, second_app->primary_mimetypes().size()); |
| 374 EXPECT_EQ(0U, second_app->secondary_mimetypes().size()); | 374 EXPECT_EQ(0U, second_app->secondary_mimetypes().size()); |
| 375 EXPECT_EQ(1U, second_app->primary_extensions().size()); | 375 EXPECT_EQ(1U, second_app->primary_extensions().size()); |
| 376 EXPECT_EQ(0U, second_app->secondary_extensions().size()); | 376 EXPECT_EQ(0U, second_app->secondary_extensions().size()); |
| 377 } | 377 } |
| 378 } | 378 } |
| 379 | 379 |
| 380 // Test file extension checking in DocumentEntry::HasDocumentExtension(). | 380 // Test file extension checking in DocumentEntry::HasDocumentExtension(). |
| 381 TEST_F(GDataParserTest, DocumentEntryHasDocumentExtension) { | 381 TEST_F(GDataWAPIParserTest, DocumentEntryHasDocumentExtension) { |
| 382 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( | 382 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( |
| 383 FilePath(FILE_PATH_LITERAL("Test.gdoc")))); | 383 FilePath(FILE_PATH_LITERAL("Test.gdoc")))); |
| 384 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( | 384 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( |
| 385 FilePath(FILE_PATH_LITERAL("Test.gsheet")))); | 385 FilePath(FILE_PATH_LITERAL("Test.gsheet")))); |
| 386 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( | 386 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( |
| 387 FilePath(FILE_PATH_LITERAL("Test.gslides")))); | 387 FilePath(FILE_PATH_LITERAL("Test.gslides")))); |
| 388 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( | 388 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( |
| 389 FilePath(FILE_PATH_LITERAL("Test.gdraw")))); | 389 FilePath(FILE_PATH_LITERAL("Test.gdraw")))); |
| 390 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( | 390 EXPECT_TRUE(DocumentEntry::HasHostedDocumentExtension( |
| 391 FilePath(FILE_PATH_LITERAL("Test.gtable")))); | 391 FilePath(FILE_PATH_LITERAL("Test.gtable")))); |
| 392 EXPECT_FALSE(DocumentEntry::HasHostedDocumentExtension( | 392 EXPECT_FALSE(DocumentEntry::HasHostedDocumentExtension( |
| 393 FilePath(FILE_PATH_LITERAL("Test.tar.gz")))); | 393 FilePath(FILE_PATH_LITERAL("Test.tar.gz")))); |
| 394 EXPECT_FALSE(DocumentEntry::HasHostedDocumentExtension( | 394 EXPECT_FALSE(DocumentEntry::HasHostedDocumentExtension( |
| 395 FilePath(FILE_PATH_LITERAL("Test.txt")))); | 395 FilePath(FILE_PATH_LITERAL("Test.txt")))); |
| 396 EXPECT_FALSE(DocumentEntry::HasHostedDocumentExtension( | 396 EXPECT_FALSE(DocumentEntry::HasHostedDocumentExtension( |
| 397 FilePath(FILE_PATH_LITERAL("Test")))); | 397 FilePath(FILE_PATH_LITERAL("Test")))); |
| 398 EXPECT_FALSE(DocumentEntry::HasHostedDocumentExtension( | 398 EXPECT_FALSE(DocumentEntry::HasHostedDocumentExtension( |
| 399 FilePath(FILE_PATH_LITERAL("")))); | 399 FilePath(FILE_PATH_LITERAL("")))); |
| 400 } | 400 } |
| 401 | 401 |
| 402 } // namespace gdata | 402 } // namespace gdata |
| OLD | NEW |