blob: 841f09d6c5629421a2584ad9482bc9b6fcebc193 [file] [log] [blame]
// Copyright 2013 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/memory/scoped_ptr.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
const char kExtensionId[] = "extensionid";
const char kApiCall[] = "api.call";
const char kArgs[] = "1, 2";
const char kExtra[] = "extra";
} // extensions
namespace extensions {
using api::activity_log_private::BlockedChromeActivityDetail;
using api::activity_log_private::ChromeActivityDetail;
using api::activity_log_private::DomActivityDetail;
using api::activity_log_private::ExtensionActivity;
class ActivityLogApiUnitTest : public testing::Test {
};
TEST_F(ActivityLogApiUnitTest, ConvertBlockedAction) {
scoped_refptr<Action> action(
new BlockedAction(kExtensionId,
base::Time::Now(),
kApiCall,
kArgs,
BlockedAction::ACCESS_DENIED,
kExtra));
scoped_ptr<ExtensionActivity> result =
action->ConvertToExtensionActivity();
ASSERT_EQ(ExtensionActivity::ACTIVITY_TYPE_BLOCKED_CHROME,
result->activity_type);
ASSERT_EQ(kExtensionId, *(result->extension_id.get()));
ASSERT_EQ(kApiCall,
*(result->blocked_chrome_activity_detail->api_call.get()));
ASSERT_EQ(kArgs,
*(result->blocked_chrome_activity_detail->args.get()));
ASSERT_EQ(BlockedChromeActivityDetail::REASON_ACCESS_DENIED,
result->blocked_chrome_activity_detail->reason);
ASSERT_EQ(kExtra,
*(result->blocked_chrome_activity_detail->extra.get()));
}
TEST_F(ActivityLogApiUnitTest, ConvertChromeApiAction) {
scoped_refptr<Action> action(
new APIAction(kExtensionId,
base::Time::Now(),
APIAction::CALL,
kApiCall,
kArgs,
base::ListValue(),
kExtra));
scoped_ptr<ExtensionActivity> result =
action->ConvertToExtensionActivity();
ASSERT_EQ(ExtensionActivity::ACTIVITY_TYPE_CHROME,
result->activity_type);
ASSERT_EQ(kExtensionId, *(result->extension_id.get()));
ASSERT_EQ(ChromeActivityDetail::API_ACTIVITY_TYPE_CALL,
result->chrome_activity_detail->api_activity_type);
ASSERT_EQ(kApiCall,
*(result->chrome_activity_detail->api_call.get()));
ASSERT_EQ(kArgs,
*(result->chrome_activity_detail->args.get()));
ASSERT_EQ(kExtra,
*(result->chrome_activity_detail->extra.get()));
}
TEST_F(ActivityLogApiUnitTest, ConvertDomAction) {
scoped_refptr<Action> action(
new DOMAction(kExtensionId,
base::Time::Now(),
DomActionType::SETTER,
GURL("http://www.google.com"),
base::ASCIIToUTF16("Title"),
kApiCall,
kArgs,
kExtra));
scoped_ptr<ExtensionActivity> result =
action->ConvertToExtensionActivity();
ASSERT_EQ(ExtensionActivity::ACTIVITY_TYPE_DOM, result->activity_type);
ASSERT_EQ(kExtensionId, *(result->extension_id.get()));
ASSERT_EQ(DomActivityDetail::DOM_ACTIVITY_TYPE_SETTER,
result->dom_activity_detail->dom_activity_type);
ASSERT_EQ("http://www.google.com/",
*(result->dom_activity_detail->url.get()));
ASSERT_EQ("Title", *(result->dom_activity_detail->url_title.get()));
ASSERT_EQ(kApiCall,
*(result->dom_activity_detail->api_call.get()));
ASSERT_EQ(kArgs,
*(result->dom_activity_detail->args.get()));
ASSERT_EQ(kExtra,
*(result->dom_activity_detail->extra.get()));
}
} // extensions