OLD | NEW |
| (Empty) |
1 // Copyright 2008-2009 Google Inc. | |
2 // | |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | |
4 // you may not use this file except in compliance with the License. | |
5 // You may obtain a copy of the License at | |
6 // | |
7 // http://www.apache.org/licenses/LICENSE-2.0 | |
8 // | |
9 // Unless required by applicable law or agreed to in writing, software | |
10 // distributed under the License is distributed on an "AS IS" BASIS, | |
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
12 // See the License for the specific language governing permissions and | |
13 // limitations under the License. | |
14 // ======================================================================== | |
15 | |
16 #include "omaha/base/app_util.h" | |
17 #include "omaha/base/error.h" | |
18 #include "omaha/base/file.h" | |
19 #include "omaha/base/path.h" | |
20 #include "omaha/base/utils.h" | |
21 #include "omaha/common/webplugin_utils.h" | |
22 #include "omaha/testing/unit_test.h" | |
23 | |
24 namespace omaha { | |
25 | |
26 namespace webplugin_utils { | |
27 | |
28 #define YOUTUBEUPLOADEREN_TAG \ | |
29 _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") \ | |
30 _T("appname=YouTubeUploader&needsadmin=False&lang=en\"") | |
31 | |
32 | |
33 TEST(WebPluginUtilsTest, BuildOneClickRequestString_NullOutParam) { | |
34 CommandLineArgs args; | |
35 EXPECT_EQ(E_INVALIDARG, BuildOneClickRequestString(args, NULL)); | |
36 } | |
37 | |
38 TEST(WebPluginUtilsTest, BuildOneClickRequestString_WrongArgs) { | |
39 CommandLineArgs args; | |
40 CString request; | |
41 EXPECT_EQ(E_UNEXPECTED, BuildOneClickRequestString(args, &request)); | |
42 } | |
43 | |
44 TEST(WebPluginUtilsTest, BuildOneClickRequestString_NoUrlDomain) { | |
45 CommandLineArgs args; | |
46 CString request; | |
47 | |
48 args.mode = COMMANDLINE_MODE_WEBPLUGIN; | |
49 EXPECT_EQ(E_UNEXPECTED, BuildOneClickRequestString(args, &request)); | |
50 } | |
51 | |
52 TEST(WebPluginUtilsTest, BuildOneClickRequestString_Valid) { | |
53 CommandLineArgs args; | |
54 CString request; | |
55 | |
56 args.mode = COMMANDLINE_MODE_WEBPLUGIN; | |
57 args.webplugin_urldomain = _T("http://www.google.com/"); | |
58 args.webplugin_args = _T("/install \"appguid=") | |
59 _T("{8A69D345-D564-463c-AFF1-A69D9E530F96}") | |
60 _T("&appname=Google Chrome&needsadmin=true&lang=en\""); | |
61 EXPECT_EQ(S_OK, BuildOneClickRequestString(args, &request)); | |
62 | |
63 EXPECT_STREQ(_T("?du=http://www.google.com/&args=/install%20") | |
64 _T("%22appguid=%7B8A69D345-D564-463c-AFF1-A69D9E530F96") | |
65 _T("%7D%26appname=Google%20Chrome%26needsadmin=true%26") | |
66 _T("lang=en%22"), | |
67 request); | |
68 } | |
69 | |
70 TEST(WebPluginUtilsTest, BuildOneClickWorkerArgs_Valid) { | |
71 CommandLineArgs args; | |
72 CString oneclick_args; | |
73 | |
74 args.install_source = _T("oneclick"); | |
75 args.webplugin_args = _T("/install \"appguid=") | |
76 _T("{8A69D345-D564-463c-AFF1-A69D9E530F96}") | |
77 _T("&appname=Google Chrome&needsadmin=true&lang=en\""); | |
78 EXPECT_EQ(S_OK, BuildOneClickWorkerArgs(args, &oneclick_args)); | |
79 | |
80 EXPECT_STREQ(_T("/install ") | |
81 _T("\"appguid={8A69D345-D564-463c-AFF1-A69D9E530F96}") | |
82 _T("&appname=Google Chrome&needsadmin=true&lang=en\" ") | |
83 _T("/installsource oneclick"), | |
84 oneclick_args); | |
85 } | |
86 | |
87 // This tests valid command line args that are not valid to be sent through | |
88 // to google_update.exe (e.g. /install). | |
89 TEST(WebPluginUtilsTest, BuildOneClickWorkerArgs_Invalid) { | |
90 CommandLineArgs args; | |
91 CString oneclick_args; | |
92 | |
93 args.install_source = _T("oneclick"); | |
94 | |
95 args.webplugin_args = _T("/handoff ") YOUTUBEUPLOADEREN_TAG; | |
96 EXPECT_EQ(E_INVALIDARG, BuildOneClickWorkerArgs(args, &oneclick_args)); | |
97 | |
98 args.webplugin_args = _T("/regserver"); | |
99 EXPECT_EQ(E_INVALIDARG, BuildOneClickWorkerArgs(args, &oneclick_args)); | |
100 | |
101 args.webplugin_args = _T("/unregserver"); | |
102 EXPECT_EQ(E_INVALIDARG, BuildOneClickWorkerArgs(args, &oneclick_args)); | |
103 | |
104 args.webplugin_args = _T("/install ") YOUTUBEUPLOADEREN_TAG _T(" /silent"); | |
105 EXPECT_EQ(E_INVALIDARG, BuildOneClickWorkerArgs(args, &oneclick_args)); | |
106 } | |
107 | |
108 TEST(WebPluginUtilsTest, CopyGoopdateToTempDir) { | |
109 CPath current_goopdate_path(app_util::GetCurrentModuleDirectory()); | |
110 current_goopdate_path.Append(_T("unittest_support\\omaha_1.3.x\\")); | |
111 CPath goopdate_temp_path; | |
112 ASSERT_SUCCEEDED(CopyGoopdateToTempDir(current_goopdate_path, | |
113 &goopdate_temp_path)); | |
114 | |
115 std::vector<CString> files; | |
116 EXPECT_HRESULT_SUCCEEDED(FindFilesEx(goopdate_temp_path, _T("*.*"), &files)); | |
117 | |
118 EXPECT_EQ(3, files.size()); | |
119 | |
120 std::map<CString, int> files_map; | |
121 for (size_t file_index = 0; file_index < files.size(); ++file_index) { | |
122 files_map[files[file_index]] = 1; | |
123 } | |
124 | |
125 EXPECT_TRUE(files_map.find(_T("GoogleUpdate.exe")) != files_map.end()); | |
126 EXPECT_TRUE(files_map.find(_T("goopdate.dll")) != files_map.end()); | |
127 EXPECT_TRUE(files_map.find(_T("goopdateres_en.dll")) != files_map.end()); | |
128 | |
129 EXPECT_HRESULT_SUCCEEDED(DeleteDirectory(goopdate_temp_path)); | |
130 } | |
131 | |
132 TEST(WebPluginUtilsTest, IsLanguageSupported_InvalidArgs) { | |
133 CString args = _T("/en"); | |
134 EXPECT_FAILED(IsLanguageSupported(args)); | |
135 } | |
136 | |
137 TEST(WebPluginUtilsTest, IsLanguageSupported_LangOK) { | |
138 CString args = _T("/install \"appguid=") | |
139 _T("{8A69D345-D564-463c-AFF1-A69D9E530F96}") | |
140 _T("&appname=Google Chrome&needsadmin=true&lang=en\""); | |
141 EXPECT_SUCCEEDED(IsLanguageSupported(args)); | |
142 } | |
143 | |
144 TEST(WebPluginUtilsTest, IsLanguageSupported_LangNotFound) { | |
145 CString args = _T("/install \"appguid=") | |
146 _T("{8A69D345-D564-463c-AFF1-A69D9E530F96}") | |
147 _T("&appname=Google Chrome&needsadmin=true&lang=zz\""); | |
148 | |
149 EXPECT_EQ(GOOPDATE_E_ONECLICK_LANGUAGE_NOT_SUPPORTED, | |
150 IsLanguageSupported(args)); | |
151 } | |
152 | |
153 } // namespace webplugin_utils | |
154 | |
155 } // namespace omaha | |
156 | |
OLD | NEW |