| Index: chrome/browser/drive/drive_app_registry_unittest.cc
|
| diff --git a/chrome/browser/drive/drive_app_registry_unittest.cc b/chrome/browser/drive/drive_app_registry_unittest.cc
|
| deleted file mode 100644
|
| index da23cb6a8ac3d2b2cbdd2c843837013806a69668..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/drive/drive_app_registry_unittest.cc
|
| +++ /dev/null
|
| @@ -1,224 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/drive/drive_app_registry.h"
|
| -
|
| -#include "base/files/file_path.h"
|
| -#include "base/macros.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/run_loop.h"
|
| -#include "base/values.h"
|
| -#include "chrome/browser/drive/drive_app_registry_observer.h"
|
| -#include "chrome/browser/drive/fake_drive_service.h"
|
| -#include "google_apis/drive/drive_api_parser.h"
|
| -#include "google_apis/drive/test_util.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace drive {
|
| -
|
| -class TestDriveAppRegistryObserver : public DriveAppRegistryObserver {
|
| - public:
|
| - explicit TestDriveAppRegistryObserver(DriveAppRegistry* registry)
|
| - : registry_(registry),
|
| - update_count_(0) {
|
| - registry_->AddObserver(this);
|
| - }
|
| - ~TestDriveAppRegistryObserver() override { registry_->RemoveObserver(this); }
|
| -
|
| - int update_count() const { return update_count_; }
|
| -
|
| - private:
|
| - // DriveAppRegistryObserver overrides:
|
| - void OnDriveAppRegistryUpdated() override { ++update_count_; }
|
| -
|
| - DriveAppRegistry* registry_;
|
| - int update_count_;
|
| - DISALLOW_COPY_AND_ASSIGN(TestDriveAppRegistryObserver);
|
| -};
|
| -
|
| -class DriveAppRegistryTest : public testing::Test {
|
| - protected:
|
| - void SetUp() override {
|
| - fake_drive_service_.reset(new FakeDriveService);
|
| - fake_drive_service_->LoadAppListForDriveApi("drive/applist.json");
|
| -
|
| - apps_registry_.reset(new DriveAppRegistry(fake_drive_service_.get()));
|
| - }
|
| -
|
| - bool VerifyApp(const std::vector<DriveAppInfo>& list,
|
| - const std::string& app_id,
|
| - const std::string& app_name) {
|
| - bool found = false;
|
| - for (size_t i = 0; i < list.size(); ++i) {
|
| - const DriveAppInfo& app = list[i];
|
| - if (app_id == app.app_id) {
|
| - EXPECT_EQ(app_name, app.app_name);
|
| - found = true;
|
| - break;
|
| - }
|
| - }
|
| - EXPECT_TRUE(found) << "Unable to find app with app_id " << app_id;
|
| - return found;
|
| - }
|
| -
|
| - base::MessageLoop message_loop_;
|
| - scoped_ptr<FakeDriveService> fake_drive_service_;
|
| - scoped_ptr<DriveAppRegistry> apps_registry_;
|
| -};
|
| -
|
| -TEST_F(DriveAppRegistryTest, BasicParse) {
|
| - TestDriveAppRegistryObserver observer(apps_registry_.get());
|
| -
|
| - apps_registry_->Update();
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(1, observer.update_count());
|
| -
|
| - std::vector<DriveAppInfo> apps;
|
| - apps_registry_->GetAppList(&apps);
|
| -
|
| - ASSERT_EQ(2u, apps.size());
|
| - EXPECT_EQ("123456788192", apps[0].app_id);
|
| - EXPECT_EQ("Drive app 1", apps[0].app_name);
|
| - EXPECT_EQ("https://www.example.com/createForApp1",
|
| - apps[0].create_url.spec());
|
| - EXPECT_EQ("abcdefghabcdefghabcdefghabcdefgh", apps[0].product_id);
|
| - EXPECT_TRUE(apps[0].is_removable);
|
| -}
|
| -
|
| -TEST_F(DriveAppRegistryTest, LoadAndFindDriveApps) {
|
| - TestDriveAppRegistryObserver observer(apps_registry_.get());
|
| -
|
| - apps_registry_->Update();
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(1, observer.update_count());
|
| -
|
| - // Find by primary extension 'exe'.
|
| - std::vector<DriveAppInfo> ext_results;
|
| - base::FilePath ext_file(FILE_PATH_LITERAL("drive/file.exe"));
|
| - apps_registry_->GetAppsForFile(ext_file.Extension(), "", &ext_results);
|
| - ASSERT_EQ(1U, ext_results.size());
|
| - VerifyApp(ext_results, "123456788192", "Drive app 1");
|
| -
|
| - // Find by primary MIME type.
|
| - std::vector<DriveAppInfo> primary_app;
|
| - apps_registry_->GetAppsForFile(base::FilePath::StringType(),
|
| - "application/vnd.google-apps.drive-sdk.123456788192", &primary_app);
|
| - ASSERT_EQ(1U, primary_app.size());
|
| - VerifyApp(primary_app, "123456788192", "Drive app 1");
|
| -
|
| - // Find by secondary MIME type.
|
| - std::vector<DriveAppInfo> secondary_app;
|
| - apps_registry_->GetAppsForFile(
|
| - base::FilePath::StringType(), "text/html", &secondary_app);
|
| - ASSERT_EQ(1U, secondary_app.size());
|
| - VerifyApp(secondary_app, "123456788192", "Drive app 1");
|
| -}
|
| -
|
| -TEST_F(DriveAppRegistryTest, UpdateFromAppList) {
|
| - scoped_ptr<base::Value> app_info_value =
|
| - google_apis::test_util::LoadJSONFile("drive/applist.json");
|
| - scoped_ptr<google_apis::AppList> app_list(
|
| - google_apis::AppList::CreateFrom(*app_info_value));
|
| -
|
| - TestDriveAppRegistryObserver observer(apps_registry_.get());
|
| - apps_registry_->UpdateFromAppList(*app_list);
|
| - EXPECT_EQ(1, observer.update_count());
|
| -
|
| - // Confirm that something was loaded from applist.json.
|
| - std::vector<DriveAppInfo> ext_results;
|
| - base::FilePath ext_file(FILE_PATH_LITERAL("drive/file.exe"));
|
| - apps_registry_->GetAppsForFile(ext_file.Extension(), "", &ext_results);
|
| - ASSERT_EQ(1U, ext_results.size());
|
| -}
|
| -
|
| -TEST_F(DriveAppRegistryTest, MultipleUpdate) {
|
| - TestDriveAppRegistryObserver observer(apps_registry_.get());
|
| -
|
| - // Call Update().
|
| - apps_registry_->Update();
|
| - EXPECT_EQ(0, observer.update_count());
|
| -
|
| - // Call Update() again.
|
| - // This call should be ignored because there is already an ongoing update.
|
| - apps_registry_->Update();
|
| - EXPECT_EQ(0, observer.update_count());
|
| -
|
| - // The app list should be loaded only once.
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(1, fake_drive_service_->app_list_load_count());
|
| - EXPECT_EQ(1, observer.update_count());
|
| -}
|
| -
|
| -TEST(DriveAppRegistryUtilTest, FindPreferredIcon_Empty) {
|
| - DriveAppInfo::IconList icons;
|
| - EXPECT_EQ("",
|
| - util::FindPreferredIcon(icons, util::kPreferredIconSize).spec());
|
| -}
|
| -
|
| -TEST(DriveAppRegistryUtilTest, FindPreferredIcon_) {
|
| - const char kSmallerIconUrl[] = "http://example.com/smaller.png";
|
| - const char kMediumIconUrl[] = "http://example.com/medium.png";
|
| - const char kBiggerIconUrl[] = "http://example.com/bigger.png";
|
| - const int kMediumSize = 16;
|
| -
|
| - DriveAppInfo::IconList icons;
|
| - // The icons are not sorted by the size.
|
| - icons.push_back(std::make_pair(kMediumSize,
|
| - GURL(kMediumIconUrl)));
|
| - icons.push_back(std::make_pair(kMediumSize + 2,
|
| - GURL(kBiggerIconUrl)));
|
| - icons.push_back(std::make_pair(kMediumSize - 2,
|
| - GURL(kSmallerIconUrl)));
|
| -
|
| - // Exact match.
|
| - EXPECT_EQ(kMediumIconUrl,
|
| - util::FindPreferredIcon(icons, kMediumSize).spec());
|
| - // The requested size is in-between of smaller.png and
|
| - // medium.png. medium.png should be returned.
|
| - EXPECT_EQ(kMediumIconUrl,
|
| - util::FindPreferredIcon(icons, kMediumSize - 1).spec());
|
| - // The requested size is smaller than the smallest icon. The smallest icon
|
| - // should be returned.
|
| - EXPECT_EQ(kSmallerIconUrl,
|
| - util::FindPreferredIcon(icons, kMediumSize - 3).spec());
|
| - // The requested size is larger than the largest icon. The largest icon
|
| - // should be returned.
|
| - EXPECT_EQ(kBiggerIconUrl,
|
| - util::FindPreferredIcon(icons, kMediumSize + 3).spec());
|
| -}
|
| -
|
| -TEST_F(DriveAppRegistryTest, UninstallDriveApp) {
|
| - apps_registry_->Update();
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - std::vector<DriveAppInfo> apps;
|
| - apps_registry_->GetAppList(&apps);
|
| - size_t original_count = apps.size();
|
| -
|
| - // Uninstall an existing app.
|
| - google_apis::DriveApiErrorCode error = google_apis::DRIVE_OTHER_ERROR;
|
| - apps_registry_->UninstallApp(
|
| - "123456788192",
|
| - google_apis::test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(error, google_apis::HTTP_NO_CONTENT);
|
| -
|
| - // Check that the number of apps is decreased by one.
|
| - apps_registry_->GetAppList(&apps);
|
| - EXPECT_EQ(original_count - 1, apps.size());
|
| -
|
| - // Try to uninstall a non-existing app.
|
| - error = google_apis::DRIVE_OTHER_ERROR;
|
| - apps_registry_->UninstallApp(
|
| - "non-existing-app-id",
|
| - google_apis::test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(error, google_apis::HTTP_NOT_FOUND);
|
| -
|
| - // Check that the number is not changed this time.
|
| - apps_registry_->GetAppList(&apps);
|
| - EXPECT_EQ(original_count - 1, apps.size());
|
| -}
|
| -
|
| -} // namespace drive
|
|
|