1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/extensions/activity_log/activity_action_constants.h"
10 #include "chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h"
11 #include "testing/gtest/include/gtest/gtest.h"
15 const char kExtensionId[] = "extensionid";
16 const char kApiCall[] = "api.call";
17 const char kArgs[] = "[\"hello\",\"world\"]";
21 namespace extensions {
23 using api::activity_log_private::ExtensionActivity;
25 typedef testing::Test ActivityLogApiUnitTest;
27 TEST_F(ActivityLogApiUnitTest, ConvertChromeApiAction) {
28 scoped_ptr<base::ListValue> args(new base::ListValue());
29 args->Set(0, new base::StringValue("hello"));
30 args->Set(1, new base::StringValue("world"));
31 scoped_refptr<Action> action(new Action(kExtensionId,
33 Action::ACTION_API_CALL,
35 action->set_args(args.Pass());
36 scoped_ptr<ExtensionActivity> result = action->ConvertToExtensionActivity();
37 ASSERT_EQ(ExtensionActivity::ACTIVITY_TYPE_API_CALL, result->activity_type);
38 ASSERT_EQ(kExtensionId, *(result->extension_id.get()));
39 ASSERT_EQ(kApiCall, *(result->api_call.get()));
40 ASSERT_EQ(kArgs, *(result->args.get()));
43 TEST_F(ActivityLogApiUnitTest, ConvertDomAction) {
44 scoped_ptr<base::ListValue> args(new base::ListValue());
45 args->Set(0, new base::StringValue("hello"));
46 args->Set(1, new base::StringValue("world"));
47 scoped_refptr<Action> action(new Action(kExtensionId,
49 Action::ACTION_DOM_ACCESS,
51 action->set_args(args.Pass());
52 action->set_page_url(GURL("http://www.google.com"));
53 action->set_page_title("Title");
54 action->mutable_other()->SetInteger(activity_log_constants::kActionDomVerb,
55 DomActionType::INSERTED);
56 action->mutable_other()->SetBoolean(activity_log_constants::kActionPrerender,
58 scoped_ptr<ExtensionActivity> result = action->ConvertToExtensionActivity();
59 ASSERT_EQ(kExtensionId, *(result->extension_id.get()));
60 ASSERT_EQ("http://www.google.com/", *(result->page_url.get()));
61 ASSERT_EQ("Title", *(result->page_title.get()));
62 ASSERT_EQ(kApiCall, *(result->api_call.get()));
63 ASSERT_EQ(kArgs, *(result->args.get()));
64 scoped_ptr<ExtensionActivity::Other> other(result->other.Pass());
65 ASSERT_EQ(ExtensionActivity::Other::DOM_VERB_INSERTED, other->dom_verb);
66 ASSERT_TRUE(other->prerender.get());
69 } // namespace extensions