| 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 "chrome/browser/chromeos/drive/drive_webapps_registry.h" | 5 #include "chrome/browser/chromeos/drive/drive_webapps_registry.h" |
| 6 | 6 |
| 7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/json/json_file_value_serializer.h" | 9 #include "base/json/json_file_value_serializer.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| 11 #include "base/path_service.h" | 11 #include "base/path_service.h" |
| 12 #include "base/string16.h" | 12 #include "base/string16.h" |
| 13 #include "base/utf_string_conversions.h" | 13 #include "base/utf_string_conversions.h" |
| 14 #include "base/values.h" | 14 #include "base/values.h" |
| 15 #include "chrome/browser/chromeos/drive/drive_test_util.h" | 15 #include "chrome/browser/chromeos/drive/drive_test_util.h" |
| 16 #include "chrome/browser/google_apis/drive_api_parser.h" | 16 #include "chrome/browser/google_apis/drive_api_parser.h" |
| 17 #include "chrome/browser/google_apis/gdata_wapi_parser.h" | 17 #include "chrome/browser/google_apis/gdata_wapi_parser.h" |
| 18 #include "chrome/common/chrome_paths.h" | 18 #include "chrome/common/chrome_paths.h" |
| 19 #include "content/public/test/test_browser_thread.h" | 19 #include "content/public/test/test_browser_thread.h" |
| 20 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
| 21 | 21 |
| 22 using base::Value; | 22 using base::Value; |
| 23 using base::DictionaryValue; | 23 using base::DictionaryValue; |
| 24 using base::ListValue; | 24 using base::ListValue; |
| 25 | 25 |
| 26 namespace gdata { | 26 namespace drive { |
| 27 | 27 |
| 28 class DriveWebAppsRegistryTest : public testing::Test { | 28 class DriveWebAppsRegistryTest : public testing::Test { |
| 29 protected: | 29 protected: |
| 30 DriveWebAppsRegistryTest() | 30 DriveWebAppsRegistryTest() |
| 31 : ui_thread_(content::BrowserThread::UI, &message_loop_) { | 31 : ui_thread_(content::BrowserThread::UI, &message_loop_) { |
| 32 } | 32 } |
| 33 | 33 |
| 34 bool VerifyApp(const ScopedVector<DriveWebAppInfo>& list, | 34 bool VerifyApp(const ScopedVector<DriveWebAppInfo>& list, |
| 35 const std::string& web_store_id, | 35 const std::string& web_store_id, |
| 36 const std::string& app_id, | 36 const std::string& app_id, |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 is_primary); | 69 is_primary); |
| 70 } | 70 } |
| 71 | 71 |
| 72 private: | 72 private: |
| 73 MessageLoopForUI message_loop_; | 73 MessageLoopForUI message_loop_; |
| 74 content::TestBrowserThread ui_thread_; | 74 content::TestBrowserThread ui_thread_; |
| 75 }; | 75 }; |
| 76 | 76 |
| 77 TEST_F(DriveWebAppsRegistryTest, LoadAndFindWebApps) { | 77 TEST_F(DriveWebAppsRegistryTest, LoadAndFindWebApps) { |
| 78 scoped_ptr<Value> document = | 78 scoped_ptr<Value> document = |
| 79 test_util::LoadJSONFile("gdata/account_metadata.json"); | 79 gdata::test_util::LoadJSONFile("gdata/account_metadata.json"); |
| 80 ASSERT_TRUE(document.get()); | 80 ASSERT_TRUE(document.get()); |
| 81 ASSERT_TRUE(document->GetType() == Value::TYPE_DICTIONARY); | 81 ASSERT_TRUE(document->GetType() == Value::TYPE_DICTIONARY); |
| 82 DictionaryValue* entry_value; | 82 DictionaryValue* entry_value; |
| 83 ASSERT_TRUE(reinterpret_cast<DictionaryValue*>(document.get())->GetDictionary( | 83 ASSERT_TRUE(reinterpret_cast<DictionaryValue*>(document.get())->GetDictionary( |
| 84 std::string("entry"), &entry_value)); | 84 std::string("entry"), &entry_value)); |
| 85 ASSERT_TRUE(entry_value); | 85 ASSERT_TRUE(entry_value); |
| 86 | 86 |
| 87 // Load feed. | 87 // Load feed. |
| 88 scoped_ptr<AccountMetadataFeed> feed( | 88 scoped_ptr<gdata::AccountMetadataFeed> feed( |
| 89 AccountMetadataFeed::CreateFrom(*document)); | 89 gdata::AccountMetadataFeed::CreateFrom(*document)); |
| 90 ASSERT_TRUE(feed.get()); | 90 ASSERT_TRUE(feed.get()); |
| 91 scoped_ptr<DriveWebAppsRegistry> web_apps(new DriveWebAppsRegistry); | 91 scoped_ptr<DriveWebAppsRegistry> web_apps(new DriveWebAppsRegistry); |
| 92 web_apps->UpdateFromFeed(*feed.get()); | 92 web_apps->UpdateFromFeed(*feed.get()); |
| 93 | 93 |
| 94 // Find by extension 'ext_1'. | 94 // Find by extension 'ext_1'. |
| 95 ScopedVector<DriveWebAppInfo> ext_1_results; | 95 ScopedVector<DriveWebAppInfo> ext_1_results; |
| 96 FilePath ext1_file(FILE_PATH_LITERAL("gdata/SampleFile.ext_1")); | 96 FilePath ext1_file(FILE_PATH_LITERAL("gdata/SampleFile.ext_1")); |
| 97 web_apps->GetWebAppsForFile(ext1_file, std::string(), &ext_1_results); | 97 web_apps->GetWebAppsForFile(ext1_file, std::string(), &ext_1_results); |
| 98 ASSERT_EQ(1U, ext_1_results.size()); | 98 ASSERT_EQ(1U, ext_1_results.size()); |
| 99 EXPECT_TRUE(VerifyApp1(ext_1_results, true)); | 99 EXPECT_TRUE(VerifyApp1(ext_1_results, true)); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 117 ScopedVector<DriveWebAppInfo> mime_ext_results; | 117 ScopedVector<DriveWebAppInfo> mime_ext_results; |
| 118 FilePath mime_file(FILE_PATH_LITERAL("gdata/MimeFile.ext_2")); | 118 FilePath mime_file(FILE_PATH_LITERAL("gdata/MimeFile.ext_2")); |
| 119 web_apps->GetWebAppsForFile(mime_file, "application/test_type_2", | 119 web_apps->GetWebAppsForFile(mime_file, "application/test_type_2", |
| 120 &mime_ext_results); | 120 &mime_ext_results); |
| 121 ASSERT_EQ(2U, mime_ext_results.size()); | 121 ASSERT_EQ(2U, mime_ext_results.size()); |
| 122 EXPECT_TRUE(VerifyApp1(mime_ext_results, true)); | 122 EXPECT_TRUE(VerifyApp1(mime_ext_results, true)); |
| 123 EXPECT_TRUE(VerifyApp2(mime_ext_results, true)); | 123 EXPECT_TRUE(VerifyApp2(mime_ext_results, true)); |
| 124 } | 124 } |
| 125 | 125 |
| 126 TEST_F(DriveWebAppsRegistryTest, LoadAndFindDriveWebApps) { | 126 TEST_F(DriveWebAppsRegistryTest, LoadAndFindDriveWebApps) { |
| 127 scoped_ptr<Value> document = test_util::LoadJSONFile("drive/applist.json"); | 127 scoped_ptr<Value> document = |
| 128 gdata::test_util::LoadJSONFile("drive/applist.json"); |
| 128 ASSERT_TRUE(document.get()); | 129 ASSERT_TRUE(document.get()); |
| 129 ASSERT_TRUE(document->GetType() == Value::TYPE_DICTIONARY); | 130 ASSERT_TRUE(document->GetType() == Value::TYPE_DICTIONARY); |
| 130 | 131 |
| 131 // Load feed. | 132 // Load feed. |
| 132 scoped_ptr<AppList> app_list(AppList::CreateFrom(*document)); | 133 scoped_ptr<gdata::AppList> app_list(gdata::AppList::CreateFrom(*document)); |
| 133 ASSERT_TRUE(app_list.get()); | 134 ASSERT_TRUE(app_list.get()); |
| 134 scoped_ptr<DriveWebAppsRegistry> web_apps(new DriveWebAppsRegistry); | 135 scoped_ptr<DriveWebAppsRegistry> web_apps(new DriveWebAppsRegistry); |
| 135 web_apps->UpdateFromApplicationList(*app_list.get()); | 136 web_apps->UpdateFromApplicationList(*app_list.get()); |
| 136 | 137 |
| 137 // Find by primary extension 'exe'. | 138 // Find by primary extension 'exe'. |
| 138 ScopedVector<DriveWebAppInfo> ext_results; | 139 ScopedVector<DriveWebAppInfo> ext_results; |
| 139 FilePath ext_file(FILE_PATH_LITERAL("drive/file.exe")); | 140 FilePath ext_file(FILE_PATH_LITERAL("drive/file.exe")); |
| 140 web_apps->GetWebAppsForFile(ext_file, std::string(), &ext_results); | 141 web_apps->GetWebAppsForFile(ext_file, std::string(), &ext_results); |
| 141 ASSERT_EQ(1U, ext_results.size()); | 142 ASSERT_EQ(1U, ext_results.size()); |
| 142 VerifyApp(ext_results, "abcdefghabcdefghabcdefghabcdefgh", "123456788192", | 143 VerifyApp(ext_results, "abcdefghabcdefghabcdefghabcdefgh", "123456788192", |
| 143 "Drive app 1", "", true); | 144 "Drive app 1", "", true); |
| 144 | 145 |
| 145 // Find by primary MIME type. | 146 // Find by primary MIME type. |
| 146 ScopedVector<DriveWebAppInfo> primary_app; | 147 ScopedVector<DriveWebAppInfo> primary_app; |
| 147 web_apps->GetWebAppsForFile(FilePath(), | 148 web_apps->GetWebAppsForFile(FilePath(), |
| 148 "application/vnd.google-apps.drive-sdk.123456788192", &primary_app); | 149 "application/vnd.google-apps.drive-sdk.123456788192", &primary_app); |
| 149 ASSERT_EQ(1U, primary_app.size()); | 150 ASSERT_EQ(1U, primary_app.size()); |
| 150 VerifyApp(primary_app, "abcdefghabcdefghabcdefghabcdefgh", "123456788192", | 151 VerifyApp(primary_app, "abcdefghabcdefghabcdefghabcdefgh", "123456788192", |
| 151 "Drive app 1", "", true); | 152 "Drive app 1", "", true); |
| 152 | 153 |
| 153 // Find by secondary MIME type. | 154 // Find by secondary MIME type. |
| 154 ScopedVector<DriveWebAppInfo> secondary_app; | 155 ScopedVector<DriveWebAppInfo> secondary_app; |
| 155 web_apps->GetWebAppsForFile(FilePath(), "text/html", &secondary_app); | 156 web_apps->GetWebAppsForFile(FilePath(), "text/html", &secondary_app); |
| 156 ASSERT_EQ(1U, secondary_app.size()); | 157 ASSERT_EQ(1U, secondary_app.size()); |
| 157 VerifyApp(secondary_app, "abcdefghabcdefghabcdefghabcdefgh", "123456788192", | 158 VerifyApp(secondary_app, "abcdefghabcdefghabcdefghabcdefgh", "123456788192", |
| 158 "Drive app 1", "", false); | 159 "Drive app 1", "", false); |
| 159 } | 160 } |
| 160 | 161 |
| 161 } // namespace gdata | 162 } // namespace drive |
| OLD | NEW |