1 // Copyright (c) 2012 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/at_exit.h"
8 #include "base/command_line.h"
9 #include "chrome/installer/gcapi/gcapi.h"
10 #include "testing/gtest/include/gtest/gtest.h"
12 void call_statically() {
14 BOOL result_flag_on
= FALSE
;
15 BOOL result_flag_off
= FALSE
;
17 // running this twice verifies that the first call does not set
18 // a flag that would make the second fail. Thus, the results
19 // of the two calls should be the same (no state should have changed)
20 result_flag_off
= GoogleChromeCompatibilityCheck(
21 FALSE
, GCAPI_INVOKED_STANDARD_SHELL
, &reason
);
22 result_flag_on
= GoogleChromeCompatibilityCheck(
23 TRUE
, GCAPI_INVOKED_STANDARD_SHELL
, &reason
);
25 if (result_flag_off
!= result_flag_on
)
26 printf("Registry key flag is not being set properly.");
28 printf("Static call returned result as %d and reason as %ld.\n",
29 result_flag_on
, reason
);
32 void call_dynamically() {
33 HMODULE module
= LoadLibrary(L
"gcapi_dll.dll");
35 printf("Couldn't load gcapi_dll.dll.\n");
39 GCCC_CompatibilityCheck gccfn
= (GCCC_CompatibilityCheck
) GetProcAddress(
40 module
, "GoogleChromeCompatibilityCheck");
44 // running this twice verifies that the first call does not set
45 // a flag that would make the second fail. Thus, the results
46 // of the two calls should be the same (no state should have changed)
47 BOOL result_flag_off
= gccfn(FALSE
, GCAPI_INVOKED_STANDARD_SHELL
, &reason
);
48 BOOL result_flag_on
= gccfn(TRUE
, GCAPI_INVOKED_STANDARD_SHELL
, &reason
);
50 if (result_flag_off
!= result_flag_on
)
51 printf("Registry key flag is not being set properly.");
53 printf("Dynamic call returned result as %d and reason as %ld.\n",
54 result_flag_on
, reason
);
56 printf("Couldn't find GoogleChromeCompatibilityCheck() in gcapi_dll.\n");
61 const char kManualLaunchTests
[] = "launch-chrome";
63 int main(int argc
, char* argv
[]) {
64 base::AtExitManager exit_manager
;
65 base::CommandLine::Init(argc
, argv
);
67 testing::InitGoogleTest(&argc
, argv
);
70 if (base::CommandLine::ForCurrentProcess()->HasSwitch(kManualLaunchTests
)) {
73 printf("LaunchChrome returned %d.\n", LaunchGoogleChrome());