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

Side by Side Diff: chrome/test/webdriver/webdriver_capabilities_parser_unittest.cc

Issue 8341044: Enhance and refactor ChromeDriver's capability handling. Log warning for (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... Created 9 years, 1 month 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) 2011 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/file_path.h"
6 #include "base/file_util.h"
7 #include "base/scoped_temp_dir.h"
8 #include "base/values.h"
9 #include "chrome/test/webdriver/webdriver_capabilities_parser.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 using base::DictionaryValue;
13 using base::ListValue;
14 using base::Value;
15
16 namespace webdriver {
17
18 TEST(CapabilitiesParser, NoCaps) {
19 Capabilities caps;
20 DictionaryValue dict;
21 CapabilitiesParser parser(&dict, FilePath(), &caps);
22 ASSERT_FALSE(parser.Parse());
23 }
24
25 TEST(CapabilitiesParser, AllCaps) {
Huyen 2011/10/26 18:05:46 Did you forget to add profile/user-data-dir option
26 DictionaryValue dict;
27 DictionaryValue* options = new DictionaryValue();
28 dict.Set("chromeOptions", options);
29
30 ListValue* args = new ListValue();
31 args->Append(Value::CreateStringValue("arg1"));
32 args->Append(Value::CreateStringValue("arg2=val"));
33 args->Append(Value::CreateStringValue("arg3='a space'"));
34 options->Set("args", args);
35 options->SetString("binary", "binary");
36 options->SetString("channel", "channel");
37 options->SetBoolean("detach", true);
38 ListValue* extensions = new ListValue();
39 extensions->Append(Value::CreateStringValue("TWFu"));
40 extensions->Append(Value::CreateStringValue("TWFuTWFu"));
41 options->Set("extensions", extensions);
42 options->SetBoolean("loadAsync", true);
43 options->SetBoolean("nativeEvents", true);
44 options->SetBoolean("verbose", true);
45
46 Capabilities caps;
47 ScopedTempDir temp_dir;
48 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
49 CapabilitiesParser parser(&dict, temp_dir.path(), &caps);
50 ASSERT_FALSE(parser.Parse());
51 EXPECT_TRUE(caps.command.HasSwitch("arg1"));
52 EXPECT_STREQ("val", caps.command.GetSwitchValueASCII("arg2").c_str());
53 EXPECT_STREQ("'a space'", caps.command.GetSwitchValueASCII("arg3").c_str());
54 EXPECT_EQ(FILE_PATH_LITERAL("binary"), caps.command.GetProgram().value());
55 EXPECT_STREQ("channel", caps.channel.c_str());
56 EXPECT_TRUE(caps.detach);
57 ASSERT_EQ(2u, caps.extensions.size());
58 std::string contents;
59 ASSERT_TRUE(file_util::ReadFileToString(caps.extensions[0], &contents));
60 EXPECT_STREQ("Man", contents.c_str());
61 contents.clear();
62 ASSERT_TRUE(file_util::ReadFileToString(caps.extensions[1], &contents));
63 EXPECT_STREQ("ManMan", contents.c_str());
64 EXPECT_TRUE(caps.load_async);
65 EXPECT_TRUE(caps.native_events);
66 EXPECT_TRUE(caps.verbose);
67 }
68
69 TEST(CapabilitiesParser, UnknownCap) {
70 Capabilities caps;
71 DictionaryValue dict;
72 dict.SetString("chromeOptions.nosuchcap", "none");
73 CapabilitiesParser parser(&dict, FilePath(), &caps);
74 ASSERT_FALSE(parser.Parse());
75 }
76
77 TEST(CapabilitiesParser, BadInput) {
78 Capabilities caps;
79 DictionaryValue dict;
80 dict.SetString("chromeOptions.verbose", "false");
81 CapabilitiesParser parser(&dict, FilePath(), &caps);
82 ASSERT_TRUE(parser.Parse());
83 }
84
85 } // namespace webdriver
OLDNEW
« no previous file with comments | « chrome/test/webdriver/webdriver_capabilities_parser.cc ('k') | chrome/test/webdriver/webdriver_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698