Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(641)

Side by Side Diff: chrome/test/chromedriver/chrome_desktop_impl_unittest.cc

Issue 12848005: [chromedriver] Separate stuff of chrome from chromedriver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments and fix compile error on mac. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 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.
4
5 #include "base/base64.h"
6 #include "base/base_paths.h"
7 #include "base/command_line.h"
8 #include "base/file_util.h"
9 #include "base/files/file_path.h"
10 #include "base/path_service.h"
11 #include "base/strings/string_split.h"
12 #include "base/values.h"
13 #include "chrome/test/chromedriver/chrome_desktop_impl.h"
14 #include "chrome/test/chromedriver/status.h"
15 #include "testing/gtest/include/gtest/gtest.h"
16
17 TEST(ProcessCommandLineArgs, NoArgs) {
18 CommandLine command(CommandLine::NO_PROGRAM);
19 base::ListValue switches;
20 ASSERT_TRUE(switches.empty());
21 Status status = internal::ProcessCommandLineArgs(&switches, &command);
22 ASSERT_TRUE(status.IsOk());
23 ASSERT_TRUE(command.GetSwitches().empty());
24 }
25
26 TEST(ProcessCommandLineArgs, SingleArgWithoutValue) {
27 CommandLine command(CommandLine::NO_PROGRAM);
28 base::ListValue switches;
29 switches.AppendString("enable-nacl");
30 ASSERT_EQ(1u, switches.GetSize());
31 Status status = internal::ProcessCommandLineArgs(&switches, &command);
32 ASSERT_TRUE(status.IsOk());
33 ASSERT_EQ(1u, command.GetSwitches().size());
34 ASSERT_TRUE(command.HasSwitch("enable-nacl"));
35 }
36
37 TEST(ProcessCommandLineArgs, SingleArgWithValue) {
38 CommandLine command(CommandLine::NO_PROGRAM);
39 base::ListValue switches;
40 switches.AppendString("load-extension=/test/extension");
41 ASSERT_EQ(1u, switches.GetSize());
42 Status status = internal::ProcessCommandLineArgs(&switches, &command);
43 ASSERT_TRUE(status.IsOk());
44 ASSERT_EQ(1u, command.GetSwitches().size());
45 ASSERT_TRUE(command.HasSwitch("load-extension"));
46 ASSERT_EQ("/test/extension", command.GetSwitchValueASCII("load-extension"));
47 }
48
49 TEST(ProcessCommandLineArgs, MultipleArgs) {
50 CommandLine command(CommandLine::NO_PROGRAM);
51 base::ListValue switches;
52 switches.AppendString("disable-sync");
53 switches.AppendString("user-data-dir=/test/user/data");
54 ASSERT_EQ(2u, switches.GetSize());
55 Status status = internal::ProcessCommandLineArgs(&switches, &command);
56 ASSERT_TRUE(status.IsOk());
57 ASSERT_EQ(2u, command.GetSwitches().size());
58 ASSERT_TRUE(command.HasSwitch("disable-sync"));
59 ASSERT_TRUE(command.HasSwitch("user-data-dir"));
60 ASSERT_EQ("/test/user/data", command.GetSwitchValueASCII("user-data-dir"));
61 }
62
63 TEST(ProcessExtensions, NoExtension) {
64 CommandLine command(CommandLine::NO_PROGRAM);
65 base::ListValue extensions;
66 base::FilePath extension_dir;
67 Status status = internal::ProcessExtensions(&extensions, extension_dir,
68 &command);
69 ASSERT_TRUE(status.IsOk());
70 ASSERT_FALSE(command.HasSwitch("load-extension"));
71 }
72
73 TEST(ProcessExtensions, SingleExtension) {
74 base::FilePath source_root;
75 PathService::Get(base::DIR_SOURCE_ROOT, &source_root);
76 base::FilePath crx_file_path = source_root.AppendASCII(
77 "chrome/test/data/chromedriver/ext_test_1.crx");
78 std::string crx_contents;
79 ASSERT_TRUE(file_util::ReadFileToString(crx_file_path, &crx_contents));
80
81 base::ListValue extensions;
82 std::string crx_encoded;
83 ASSERT_TRUE(base::Base64Encode(crx_contents, &crx_encoded));
84 extensions.AppendString(crx_encoded);
85
86 base::ScopedTempDir extension_dir;
87 ASSERT_TRUE(extension_dir.CreateUniqueTempDir());
88
89 CommandLine command(CommandLine::NO_PROGRAM);
90 Status status = internal::ProcessExtensions(&extensions, extension_dir.path(),
91 &command);
92 ASSERT_TRUE(status.IsOk());
93 ASSERT_TRUE(command.HasSwitch("load-extension"));
94 base::FilePath temp_ext_path = command.GetSwitchValuePath("load-extension");
95 ASSERT_TRUE(file_util::PathExists(temp_ext_path));
96 }
97
98 TEST(ProcessExtensions, MultipleExtensions) {
99 base::FilePath source_root;
100 PathService::Get(base::DIR_SOURCE_ROOT, &source_root);
101 base::FilePath test_ext_path = source_root.AppendASCII(
102 "chrome/test/data/chromedriver");
103 base::FilePath test_crx_1 = test_ext_path.AppendASCII("ext_test_1.crx");
104 base::FilePath test_crx_2 = test_ext_path.AppendASCII("ext_test_2.crx");
105
106 std::string crx_1_contents, crx_2_contents;
107 ASSERT_TRUE(file_util::ReadFileToString(test_crx_1, &crx_1_contents));
108 ASSERT_TRUE(file_util::ReadFileToString(test_crx_2, &crx_2_contents));
109
110 base::ListValue extensions;
111 std::string crx_1_encoded, crx_2_encoded;
112 ASSERT_TRUE(base::Base64Encode(crx_1_contents, &crx_1_encoded));
113 ASSERT_TRUE(base::Base64Encode(crx_2_contents, &crx_2_encoded));
114 extensions.AppendString(crx_1_encoded);
115 extensions.AppendString(crx_2_encoded);
116
117 base::ScopedTempDir extension_dir;
118 ASSERT_TRUE(extension_dir.CreateUniqueTempDir());
119
120 CommandLine command(CommandLine::NO_PROGRAM);
121 Status status = internal::ProcessExtensions(&extensions, extension_dir.path(),
122 &command);
123 ASSERT_TRUE(status.IsOk());
124 ASSERT_TRUE(command.HasSwitch("load-extension"));
125 CommandLine::StringType ext_paths = command.GetSwitchValueNative(
126 "load-extension");
127 std::vector<CommandLine::StringType> ext_path_list;
128 base::SplitString(ext_paths, FILE_PATH_LITERAL(','), &ext_path_list);
129 ASSERT_EQ(2u, ext_path_list.size());
130 ASSERT_TRUE(file_util::PathExists(base::FilePath(ext_path_list[0])));
131 ASSERT_TRUE(file_util::PathExists(base::FilePath(ext_path_list[1])));
132 }
133
134 TEST(PrepareUserDataDir, CustomPrefs) {
135 base::ScopedTempDir temp_dir;
136 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
137
138 CommandLine command(CommandLine::NO_PROGRAM);
139 base::DictionaryValue prefs;
140 prefs.SetString("myPrefsKey", "ok");
141 base::DictionaryValue local_state;
142 local_state.SetString("myLocalKey", "ok");
143 Status status = internal::PrepareUserDataDir(
144 temp_dir.path(), &prefs, &local_state);
145 ASSERT_EQ(kOk, status.code());
146
147 base::FilePath prefs_file =
148 temp_dir.path().AppendASCII("Default").AppendASCII("Preferences");
149 std::string prefs_str;
150 ASSERT_TRUE(file_util::ReadFileToString(prefs_file, &prefs_str));
151 ASSERT_TRUE(prefs_str.find("myPrefsKey") != std::string::npos);
152
153 base::FilePath local_state_file = temp_dir.path().AppendASCII("Local State");
154 std::string local_state_str;
155 ASSERT_TRUE(file_util::ReadFileToString(local_state_file, &local_state_str));
156 ASSERT_TRUE(local_state_str.find("myLocalKey") != std::string::npos);
157 }
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/chrome_desktop_impl.cc ('k') | chrome/test/chromedriver/chrome_finder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698