blob: 3eb95b321ad83ca4af68450dfbdb8cc0321e7a7e [file] [log] [blame]
// 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 <string>
#include "base/utf_string_conversions.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 {
void Expect(
const std::string& action,
const std::string& type,
const std::string& scheme,
const std::string& url,
const std::string& title,
const WebIntentServiceData::Disposition disposition,
const WebIntentServiceData* intent) {
EXPECT_EQ(GURL(url), intent->service_url);
EXPECT_EQ(ASCIIToUTF16(action), intent->action);
EXPECT_EQ(ASCIIToUTF16(type), intent->type);
EXPECT_EQ(ASCIIToUTF16(scheme), intent->scheme);
EXPECT_EQ(ASCIIToUTF16(title), intent->title);
EXPECT_EQ(disposition, intent->disposition);
}
TEST(WebIntentServiceDataTest, Defaults) {
WebIntentServiceData intent;
EXPECT_EQ(string16(), intent.action);
EXPECT_EQ(string16(), intent.type);
EXPECT_EQ(string16(), intent.scheme);
EXPECT_EQ(string16(), intent.title);
EXPECT_EQ(WebIntentServiceData::DISPOSITION_WINDOW, intent.disposition);
}
TEST(WebIntentServiceDataTest, ActionServicesEqual) {
// with default disposition...
WebIntentServiceData intent(
ASCIIToUTF16("http://webintents.org/share"),
ASCIIToUTF16("image/png"),
string16(),
GURL("http://abc.com/xyx.html"),
ASCIIToUTF16("Image Sharing Service"));
Expect(
"http://webintents.org/share",
"image/png",
std::string(),
"http://abc.com/xyx.html",
"Image Sharing Service",
WebIntentServiceData::DISPOSITION_WINDOW,
&intent);
}
TEST(WebIntentServiceDataTest, SchemeServicesEqual) {
// with default disposition...
WebIntentServiceData intent(
string16(),
string16(),
ASCIIToUTF16("mailto"),
GURL("http://abc.com/xyx.html"),
ASCIIToUTF16("Image Sharing Service"));
Expect(
"",
"",
"mailto",
"http://abc.com/xyx.html",
"Image Sharing Service",
WebIntentServiceData::DISPOSITION_WINDOW,
&intent);
}
} // namespace