- add sources.
[platform/framework/web/crosswalk.git] / src / chrome_frame / chrome_launcher_unittest.cc
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/command_line.h"
6 #include "base/files/file_path.h"
7 #include "chrome/common/chrome_switches.h"
8 #include "chrome_frame/chrome_launcher.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 TEST(ChromeLauncher, IsValidCommandLine) {
12   CommandLine bad(base::FilePath(L"dummy.exe"));
13   bad.AppendSwitch(switches::kNoFirstRun);  // in whitelist
14   bad.AppendSwitch("no-such-switch");  // does not exist
15   bad.AppendSwitch(switches::kHomePage);  // exists but not in whitelist
16
17   EXPECT_FALSE(chrome_launcher::IsValidCommandLine(
18       bad.GetCommandLineString().c_str()));
19
20   CommandLine good(base::FilePath(L"dummy.exe"));
21   good.AppendSwitch(switches::kNoFirstRun);  // in whitelist
22   good.AppendSwitch(switches::kDisableBackgroundMode);  // in whitelist
23   good.AppendSwitchASCII(switches::kUserDataDir, "foo");  // in whitelist
24
25   EXPECT_TRUE(chrome_launcher::IsValidCommandLine(
26       good.GetCommandLineString().c_str()));
27
28   CommandLine no_params(base::FilePath(L"dummy.exe"));
29   EXPECT_TRUE(chrome_launcher::IsValidCommandLine(
30       no_params.GetCommandLineString().c_str()));
31
32   CommandLine empty(base::FilePath(L""));
33   EXPECT_TRUE(chrome_launcher::IsValidCommandLine(
34       empty.GetCommandLineString().c_str()));
35 }
36
37 TEST(ChromeLauncher, TrimWhiteSpace) {
38   std::wstring trimmed(chrome_launcher::TrimWhiteSpace(L" \t  some text \n\t"));
39   EXPECT_STREQ(L"some text", trimmed.c_str());
40
41   std::wstring now_empty(chrome_launcher::TrimWhiteSpace(L"\t\t     \n\t"));
42   EXPECT_STREQ(L"", now_empty.c_str());
43
44   std::wstring empty(chrome_launcher::TrimWhiteSpace(L""));
45   EXPECT_STREQ(L"", empty.c_str());
46
47   std::wstring not_trimmed(chrome_launcher::TrimWhiteSpace(L"foo bar"));
48   EXPECT_STREQ(L"foo bar", not_trimmed.c_str());
49
50   std::wstring trimmed_right(chrome_launcher::TrimWhiteSpace(L"foo bar\t"));
51   EXPECT_STREQ(L"foo bar", trimmed_right.c_str());
52
53   std::wstring trimmed_left(chrome_launcher::TrimWhiteSpace(L"\nfoo bar"));
54   EXPECT_STREQ(L"foo bar", trimmed_right.c_str());
55 }
56
57 TEST(ChromeLauncher, IsValidArgument) {
58   EXPECT_TRUE(chrome_launcher::IsValidArgument(L"--chrome-frame"));
59   EXPECT_TRUE(chrome_launcher::IsValidArgument(L"--disable-background-mode"));
60   EXPECT_FALSE(chrome_launcher::IsValidArgument(L"--invalid-arg"));
61
62   EXPECT_TRUE(chrome_launcher::IsValidArgument(L"--chrome-frame="));
63   EXPECT_TRUE(chrome_launcher::IsValidArgument(L"--chrome-frame=foo"));
64   EXPECT_TRUE(chrome_launcher::IsValidArgument(L"--chrome-frame=foo=foo"));
65
66   EXPECT_FALSE(chrome_launcher::IsValidArgument(L"chrome-frame"));
67   EXPECT_FALSE(chrome_launcher::IsValidArgument(L"-chrome-frame"));
68   EXPECT_FALSE(chrome_launcher::IsValidArgument(L"---chrome-frame"));
69   EXPECT_FALSE(chrome_launcher::IsValidArgument(L" --chrome-frame"));
70   EXPECT_FALSE(chrome_launcher::IsValidArgument(L"--chrome-framefoobar"));
71   EXPECT_FALSE(chrome_launcher::IsValidArgument(L"foobar--chrome-frame"));
72   EXPECT_FALSE(chrome_launcher::IsValidArgument(L"--chrome-frames"));
73   EXPECT_FALSE(chrome_launcher::IsValidArgument(L"--Chrome-frame"));
74   EXPECT_FALSE(chrome_launcher::IsValidArgument(L""));
75 }