| Index: chrome/browser/webdata/web_intents_table_unittest.cc
|
| diff --git a/chrome/browser/webdata/web_intents_table_unittest.cc b/chrome/browser/webdata/web_intents_table_unittest.cc
|
| deleted file mode 100644
|
| index 65f519143cc4e23452906ca38ffedffc4c2dbf27..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/webdata/web_intents_table_unittest.cc
|
| +++ /dev/null
|
| @@ -1,373 +0,0 @@
|
| -// Copyright (c) 2012 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 <algorithm>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/file_util.h"
|
| -#include "base/files/scoped_temp_dir.h"
|
| -#include "base/string16.h"
|
| -#include "base/utf_string_conversions.h"
|
| -#include "chrome/browser/intents/default_web_intent_service.h"
|
| -#include "chrome/browser/webdata/web_database.h"
|
| -#include "chrome/browser/webdata/web_intents_table.h"
|
| -#include "chrome/common/chrome_paths.h"
|
| -#include "googleurl/src/gurl.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "webkit/glue/web_intent_service_data.h"
|
| -
|
| -using webkit_glue::WebIntentServiceData;
|
| -
|
| -namespace {
|
| -
|
| -const string16 test_action =
|
| - ASCIIToUTF16("http://webintents.org/intents/share");
|
| -const string16 test_action_2 =
|
| - ASCIIToUTF16("http://webintents.org/intents/view");
|
| -const string16 test_scheme = ASCIIToUTF16("mailto");
|
| -const string16 test_scheme_2 = ASCIIToUTF16("web+poodles");
|
| -const GURL test_url("http://google.com/");
|
| -const GURL test_url_fake("http://fakegoogle.com/");
|
| -const GURL test_service_url("http://jiggle.com/dojiggle");
|
| -const GURL test_service_url_2("http://waddle.com/waddler");
|
| -const string16 test_title = ASCIIToUTF16("Test WebIntent");
|
| -const string16 test_title_2 = ASCIIToUTF16("Test WebIntent #2");
|
| -const string16 mime_image = ASCIIToUTF16("image/*");
|
| -const string16 mime_video = ASCIIToUTF16("video/*");
|
| -
|
| -WebIntentServiceData MakeActionService(const GURL& url,
|
| - const string16& action,
|
| - const string16& type,
|
| - const string16& title) {
|
| - WebIntentServiceData service;
|
| - service.service_url = url;
|
| - service.action = action;
|
| - service.type = type;
|
| - service.title = title;
|
| - service.disposition = WebIntentServiceData::DISPOSITION_INLINE;
|
| - return service;
|
| -}
|
| -
|
| -WebIntentServiceData MakeSchemeService(
|
| - const string16& scheme, const GURL& url, const string16& title) {
|
| - WebIntentServiceData service;
|
| - service.scheme = scheme;
|
| - service.service_url = url;
|
| - service.title = title;
|
| - service.disposition = WebIntentServiceData::DISPOSITION_INLINE;
|
| - return service;
|
| -}
|
| -
|
| -class WebIntentsTableTest : public testing::Test {
|
| - protected:
|
| - virtual void SetUp() {
|
| - ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
|
| - ASSERT_EQ(sql::INIT_OK,
|
| - db_.Init(temp_dir_.path().AppendASCII("TestWebDatabase.db"),
|
| - std::string()));
|
| - }
|
| -
|
| - WebIntentsTable* IntentsTable() {
|
| - return db_.GetWebIntentsTable();
|
| - }
|
| -
|
| - WebDatabase db_;
|
| - base::ScopedTempDir temp_dir_;
|
| -};
|
| -
|
| -// Test we can add, retrieve, and remove intent services from the database.
|
| -TEST_F(WebIntentsTableTest, ActionIntents) {
|
| - std::vector<WebIntentServiceData> services;
|
| -
|
| - // By default, no intent services exist.
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForAction(test_action,
|
| - &services));
|
| - EXPECT_EQ(0U, services.size());
|
| -
|
| - // Now adding one.
|
| - WebIntentServiceData service =
|
| - MakeActionService(test_url, test_action, mime_image, test_title);
|
| - EXPECT_TRUE(IntentsTable()->SetWebIntentService(service));
|
| -
|
| - // Make sure that service can now be fetched
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForAction(test_action,
|
| - &services));
|
| - ASSERT_EQ(1U, services.size());
|
| - EXPECT_EQ(service, services[0]);
|
| -
|
| - // Remove the service.
|
| - EXPECT_TRUE(IntentsTable()->RemoveWebIntentService(service));
|
| -
|
| - // Should now be gone.
|
| - services.clear();
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForAction(test_action,
|
| - &services));
|
| - EXPECT_EQ(0U, services.size());
|
| -}
|
| -
|
| -// Test we can add, retrieve, and remove intent services from the database.
|
| -TEST_F(WebIntentsTableTest, SchemeIntents) {
|
| - std::vector<WebIntentServiceData> services;
|
| -
|
| - // By default, no intent services exist.
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForScheme(
|
| - test_scheme, &services));
|
| - EXPECT_EQ(0U, services.size());
|
| -
|
| - // Add a couple new intent services.
|
| - WebIntentServiceData service =
|
| - MakeSchemeService(test_scheme, test_url, test_title);
|
| - EXPECT_TRUE(IntentsTable()->SetWebIntentService(service));
|
| -
|
| - WebIntentServiceData service2 =
|
| - MakeSchemeService(test_scheme_2, test_url, test_title_2);
|
| - EXPECT_TRUE(IntentsTable()->SetWebIntentService(service2));
|
| -
|
| - // Make sure we can load both services...
|
| - services.clear();
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForScheme(
|
| - test_scheme, &services));
|
| - ASSERT_EQ(1U, services.size());
|
| - EXPECT_EQ(service, services[0]);
|
| -
|
| - services.clear();
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForScheme(
|
| - test_scheme_2, &services));
|
| - ASSERT_EQ(1U, services.size());
|
| - EXPECT_EQ(service2, services[0]);
|
| -
|
| - // Remove the first service.
|
| - EXPECT_TRUE(IntentsTable()->RemoveWebIntentService(service));
|
| -
|
| - // Should now be gone.
|
| - services.clear();
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForScheme(
|
| - test_scheme, &services));
|
| - EXPECT_EQ(0U, services.size());
|
| -
|
| - // Service2 should still be present.
|
| - services.clear();
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForScheme(
|
| - test_scheme_2, &services));
|
| - ASSERT_EQ(1U, services.size());
|
| - EXPECT_EQ(service2, services[0]);
|
| -}
|
| -
|
| -// Test we support multiple intent services for the same MIME type
|
| -TEST_F(WebIntentsTableTest, SetMultipleIntents) {
|
| - std::vector<WebIntentServiceData> services;
|
| -
|
| - WebIntentServiceData service =
|
| - MakeActionService(test_url, test_action, mime_image, test_title);
|
| - EXPECT_TRUE(IntentsTable()->SetWebIntentService(service));
|
| -
|
| - service.type = mime_video;
|
| - service.title = test_title_2;
|
| - EXPECT_TRUE(IntentsTable()->SetWebIntentService(service));
|
| -
|
| - // Recover stored intent services from DB.
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForAction(test_action,
|
| - &services));
|
| - ASSERT_EQ(2U, services.size());
|
| -
|
| - // WebIntentsTable does not guarantee order, so ensure order here.
|
| - if (services[0].type == mime_video)
|
| - std::swap(services[0], services[1]);
|
| -
|
| - EXPECT_EQ(service, services[1]);
|
| -
|
| - service.type = mime_image;
|
| - service.title = test_title;
|
| - EXPECT_EQ(service, services[0]);
|
| -}
|
| -
|
| -// Test we support getting all intent services independent of action.
|
| -TEST_F(WebIntentsTableTest, GetAllIntents) {
|
| - std::vector<WebIntentServiceData> services;
|
| -
|
| - WebIntentServiceData service =
|
| - MakeActionService(test_url, test_action, mime_image, test_title);
|
| - EXPECT_TRUE(IntentsTable()->SetWebIntentService(service));
|
| -
|
| - service.action = test_action_2;
|
| - service.title = test_title_2;
|
| - EXPECT_TRUE(IntentsTable()->SetWebIntentService(service));
|
| -
|
| - // Recover stored services from DB.
|
| - EXPECT_TRUE(IntentsTable()->GetAllWebIntentServices(&services));
|
| - ASSERT_EQ(2U, services.size());
|
| -
|
| - // WebIntentsTable does not guarantee order, so ensure order here.
|
| - if (services[0].type == test_action_2)
|
| - std::swap(services[0], services[1]);
|
| -
|
| - EXPECT_EQ(service, services[1]);
|
| -
|
| - service.action = test_action;
|
| - service.title = test_title;
|
| - EXPECT_EQ(service, services[0]);
|
| -}
|
| -
|
| -TEST_F(WebIntentsTableTest, DispositionToStringMapping) {
|
| - WebIntentServiceData service =
|
| - MakeActionService(test_url, test_action, mime_image, test_title);
|
| - service.disposition = WebIntentServiceData::DISPOSITION_WINDOW;
|
| - EXPECT_TRUE(IntentsTable()->SetWebIntentService(service));
|
| -
|
| - service = MakeActionService(test_url, test_action, mime_video, test_title);
|
| - service.disposition = WebIntentServiceData::DISPOSITION_INLINE;
|
| - EXPECT_TRUE(IntentsTable()->SetWebIntentService(service));
|
| -
|
| - std::vector<WebIntentServiceData> services;
|
| - EXPECT_TRUE(IntentsTable()->GetAllWebIntentServices(&services));
|
| - ASSERT_EQ(2U, services.size());
|
| -
|
| - if (services[0].disposition == WebIntentServiceData::DISPOSITION_WINDOW)
|
| - std::swap(services[0], services[1]);
|
| -
|
| - EXPECT_EQ(WebIntentServiceData::DISPOSITION_INLINE, services[0].disposition);
|
| - EXPECT_EQ(WebIntentServiceData::DISPOSITION_WINDOW, services[1].disposition);
|
| -}
|
| -
|
| -TEST_F(WebIntentsTableTest, GetByURL) {
|
| - WebIntentServiceData intent = MakeActionService(
|
| - test_url, test_action, mime_image, test_title);
|
| - ASSERT_TRUE(IntentsTable()->SetWebIntentService(intent));
|
| -
|
| - std::vector<WebIntentServiceData> intents;
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForURL(
|
| - UTF8ToUTF16(test_url.spec()), &intents));
|
| - ASSERT_EQ(1U, intents.size());
|
| - EXPECT_EQ(intent, intents[0]);
|
| -
|
| - intents.clear();
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForURL(
|
| - UTF8ToUTF16(test_url_fake.spec()), &intents));
|
| - EXPECT_EQ(0U, intents.size());
|
| -
|
| - intent.action = test_action_2;
|
| - ASSERT_TRUE(IntentsTable()->SetWebIntentService(intent));
|
| - EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForURL(
|
| - UTF8ToUTF16(test_url.spec()), &intents));
|
| - ASSERT_EQ(2U, intents.size());
|
| -}
|
| -
|
| -TEST_F(WebIntentsTableTest, DefaultServices) {
|
| - DefaultWebIntentService default_service;
|
| - default_service.action = test_action;
|
| - default_service.type = mime_image;
|
| - ASSERT_EQ(URLPattern::PARSE_SUCCESS,
|
| - default_service.url_pattern.Parse(test_url.spec()));
|
| - default_service.user_date = 1;
|
| - default_service.suppression = 4;
|
| - default_service.service_url = "service_url";
|
| - ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service));
|
| -
|
| - default_service.action = test_action_2;
|
| - ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service));
|
| -
|
| - std::vector<DefaultWebIntentService> defaults;
|
| - ASSERT_TRUE(IntentsTable()->GetDefaultServices(ASCIIToUTF16("no_action"),
|
| - &defaults));
|
| - EXPECT_EQ(0U, defaults.size());
|
| -
|
| - ASSERT_TRUE(IntentsTable()->GetDefaultServices(test_action, &defaults));
|
| - ASSERT_EQ(1U, defaults.size());
|
| -
|
| - EXPECT_EQ(test_action, defaults[0].action);
|
| - EXPECT_EQ(mime_image, defaults[0].type);
|
| - URLPattern test_pattern(URLPattern::SCHEME_HTTP, test_url.spec());
|
| - EXPECT_EQ(test_pattern.GetAsString(), defaults[0].url_pattern.GetAsString());
|
| - EXPECT_EQ(1, defaults[0].user_date);
|
| - EXPECT_EQ(4, defaults[0].suppression);
|
| - EXPECT_EQ("service_url", defaults[0].service_url);
|
| -
|
| - defaults.clear();
|
| - ASSERT_TRUE(IntentsTable()->GetAllDefaultServices(&defaults));
|
| - ASSERT_EQ(2U, defaults.size());
|
| -
|
| - default_service.action = test_action;
|
| - IntentsTable()->RemoveDefaultService(default_service);
|
| -
|
| - defaults.clear();
|
| - ASSERT_TRUE(IntentsTable()->GetDefaultServices(test_action, &defaults));
|
| - ASSERT_EQ(0U, defaults.size());
|
| -
|
| - defaults.clear();
|
| - ASSERT_TRUE(IntentsTable()->GetDefaultServices(test_action_2, &defaults));
|
| - ASSERT_EQ(1U, defaults.size());
|
| -
|
| - defaults.clear();
|
| - ASSERT_TRUE(IntentsTable()->GetAllDefaultServices(&defaults));
|
| - ASSERT_EQ(1U, defaults.size());
|
| -}
|
| -
|
| -TEST_F(WebIntentsTableTest, RemoveDefaultServicesForServiceURL) {
|
| - DefaultWebIntentService s0;
|
| - s0.action = test_action;
|
| - s0.type = mime_image;
|
| - ASSERT_EQ(URLPattern::PARSE_SUCCESS,
|
| - s0.url_pattern.Parse(test_url.spec()));
|
| - s0.user_date = 1;
|
| - s0.suppression = 4;
|
| - s0.service_url = test_service_url.spec();
|
| - ASSERT_TRUE(IntentsTable()->SetDefaultService(s0));
|
| -
|
| - DefaultWebIntentService s1;
|
| - s1.action = test_action_2;
|
| - s1.type = mime_image;
|
| - ASSERT_EQ(URLPattern::PARSE_SUCCESS,
|
| - s1.url_pattern.Parse(test_url.spec()));
|
| - s1.user_date = 1;
|
| - s1.suppression = 4;
|
| - s1.service_url = test_service_url.spec();
|
| - ASSERT_TRUE(IntentsTable()->SetDefaultService(s1));
|
| -
|
| - DefaultWebIntentService s2;
|
| - s2.action = test_action_2;
|
| - s2.type = mime_image;
|
| - ASSERT_EQ(URLPattern::PARSE_SUCCESS,
|
| - s2.url_pattern.Parse(test_url.spec()));
|
| - s2.user_date = 1;
|
| - s2.suppression = 4;
|
| - s2.service_url = test_service_url_2.spec();
|
| - ASSERT_TRUE(IntentsTable()->SetDefaultService(s2));
|
| -
|
| - std::vector<DefaultWebIntentService> defaults;
|
| - ASSERT_TRUE(IntentsTable()->GetAllDefaultServices(&defaults));
|
| - ASSERT_EQ(2U, defaults.size());
|
| -
|
| - ASSERT_TRUE(IntentsTable()->RemoveServiceDefaults(test_service_url));
|
| -
|
| - defaults.clear();
|
| - ASSERT_TRUE(IntentsTable()->GetAllDefaultServices(&defaults));
|
| - ASSERT_EQ(1U, defaults.size());
|
| - EXPECT_EQ(test_service_url_2.spec(), defaults[0].service_url);
|
| -}
|
| -
|
| -TEST_F(WebIntentsTableTest, OverwriteDefaults) {
|
| - DefaultWebIntentService default_service;
|
| - default_service.action = test_action;
|
| - default_service.type = mime_image;
|
| - default_service.user_date = 1;
|
| - default_service.suppression = 4;
|
| - default_service.service_url = "service_url";
|
| - ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service));
|
| -
|
| - default_service.user_date = 2;
|
| - default_service.service_url = "service_url2";
|
| - ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service));
|
| -
|
| - default_service.user_date = 3;
|
| - default_service.service_url = "service_url3";
|
| - ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service));
|
| -
|
| - std::vector<DefaultWebIntentService> defaults;
|
| - ASSERT_TRUE(IntentsTable()->GetAllDefaultServices(&defaults));
|
| - ASSERT_EQ(1U, defaults.size());
|
| - EXPECT_EQ("service_url3", defaults[0].service_url);
|
| -}
|
| -
|
| -} // namespace
|
|
|