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

Side by Side Diff: chrome_frame/test/dll_redirector_loading_test.cc

Issue 12211108: Rename FilePath -> base::FilePath in various toplevel directories (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // A test that exercises Chrome Frame's DLL Redirctor update code. This test 5 // A test that exercises Chrome Frame's DLL Redirctor update code. This test
6 // generates a new version of CF from the one already in the build folder and 6 // generates a new version of CF from the one already in the build folder and
7 // then loads them both into the current process to verify the handoff. 7 // then loads them both into the current process to verify the handoff.
8 8
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 20 matching lines...) Expand all
31 class DllRedirectorLoadingTest : public testing::Test { 31 class DllRedirectorLoadingTest : public testing::Test {
32 public: 32 public:
33 // This sets up the following directory structure: 33 // This sets up the following directory structure:
34 // TEMP\<version X>\npchrome_frame.dll 34 // TEMP\<version X>\npchrome_frame.dll
35 // \<version X+1>\npchrome_frame.dll 35 // \<version X+1>\npchrome_frame.dll
36 // 36 //
37 // This structure emulates enough of the directory structure of a Chrome 37 // This structure emulates enough of the directory structure of a Chrome
38 // install to test upgrades. 38 // install to test upgrades.
39 static void SetUpTestCase() { 39 static void SetUpTestCase() {
40 // First ensure that we can find the built Chrome Frame DLL. 40 // First ensure that we can find the built Chrome Frame DLL.
41 FilePath build_chrome_frame_dll = GetChromeFrameBuildPath(); 41 base::FilePath build_chrome_frame_dll = GetChromeFrameBuildPath();
42 ASSERT_TRUE(file_util::PathExists(build_chrome_frame_dll)); 42 ASSERT_TRUE(file_util::PathExists(build_chrome_frame_dll));
43 43
44 // Then grab its version. 44 // Then grab its version.
45 scoped_ptr<FileVersionInfo> original_version_info( 45 scoped_ptr<FileVersionInfo> original_version_info(
46 FileVersionInfo::CreateFileVersionInfo(build_chrome_frame_dll)); 46 FileVersionInfo::CreateFileVersionInfo(build_chrome_frame_dll));
47 ASSERT_TRUE(original_version_info != NULL); 47 ASSERT_TRUE(original_version_info != NULL);
48 original_version_.reset( 48 original_version_.reset(
49 new Version(WideToASCII(original_version_info->file_version()))); 49 new Version(WideToASCII(original_version_info->file_version())));
50 ASSERT_TRUE(original_version_->IsValid()); 50 ASSERT_TRUE(original_version_->IsValid());
51 51
52 // Make a place for us to run the test from. 52 // Make a place for us to run the test from.
53 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 53 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
54 54
55 // Make a versioned dir for the original chrome frame dll to run under. 55 // Make a versioned dir for the original chrome frame dll to run under.
56 FilePath original_version_dir( 56 base::FilePath original_version_dir(
57 temp_dir_.path().AppendASCII(original_version_->GetString())); 57 temp_dir_.path().AppendASCII(original_version_->GetString()));
58 ASSERT_TRUE(file_util::CreateDirectory(original_version_dir)); 58 ASSERT_TRUE(file_util::CreateDirectory(original_version_dir));
59 59
60 // Now move the original DLL that we will operate on into a named-version 60 // Now move the original DLL that we will operate on into a named-version
61 // folder. 61 // folder.
62 original_chrome_frame_dll_ = 62 original_chrome_frame_dll_ =
63 original_version_dir.Append(build_chrome_frame_dll.BaseName()); 63 original_version_dir.Append(build_chrome_frame_dll.BaseName());
64 ASSERT_TRUE(file_util::CopyFile(build_chrome_frame_dll, 64 ASSERT_TRUE(file_util::CopyFile(build_chrome_frame_dll,
65 original_chrome_frame_dll_)); 65 original_chrome_frame_dll_));
66 ASSERT_TRUE(file_util::PathExists(original_chrome_frame_dll_)); 66 ASSERT_TRUE(file_util::PathExists(original_chrome_frame_dll_));
67 67
68 // Temporary location for the new Chrome Frame DLL. 68 // Temporary location for the new Chrome Frame DLL.
69 FilePath temporary_new_chrome_frame_dll( 69 base::FilePath temporary_new_chrome_frame_dll(
70 temp_dir_.path().Append(build_chrome_frame_dll.BaseName())); 70 temp_dir_.path().Append(build_chrome_frame_dll.BaseName()));
71 71
72 // Generate the version-bumped Chrome Frame DLL to a temporary path. 72 // Generate the version-bumped Chrome Frame DLL to a temporary path.
73 ASSERT_TRUE( 73 ASSERT_TRUE(
74 upgrade_test::GenerateAlternatePEFileVersion( 74 upgrade_test::GenerateAlternatePEFileVersion(
75 original_chrome_frame_dll_, 75 original_chrome_frame_dll_,
76 temporary_new_chrome_frame_dll, 76 temporary_new_chrome_frame_dll,
77 upgrade_test::NEXT_VERSION)); 77 upgrade_test::NEXT_VERSION));
78 78
79 // Ensure it got created and grab its version. 79 // Ensure it got created and grab its version.
80 scoped_ptr<FileVersionInfo> new_version_info( 80 scoped_ptr<FileVersionInfo> new_version_info(
81 FileVersionInfo::CreateFileVersionInfo(temporary_new_chrome_frame_dll)); 81 FileVersionInfo::CreateFileVersionInfo(temporary_new_chrome_frame_dll));
82 ASSERT_TRUE(new_version_info != NULL); 82 ASSERT_TRUE(new_version_info != NULL);
83 new_version_.reset( 83 new_version_.reset(
84 new Version(WideToASCII(new_version_info->file_version()))); 84 new Version(WideToASCII(new_version_info->file_version())));
85 ASSERT_TRUE(new_version_->IsValid()); 85 ASSERT_TRUE(new_version_->IsValid());
86 86
87 // Make sure the new version is larger than the old. 87 // Make sure the new version is larger than the old.
88 ASSERT_EQ(new_version_->CompareTo(*original_version_.get()), 1); 88 ASSERT_EQ(new_version_->CompareTo(*original_version_.get()), 1);
89 89
90 // Now move the new Chrome Frame dll to its final resting place: 90 // Now move the new Chrome Frame dll to its final resting place:
91 FilePath new_version_dir( 91 base::FilePath new_version_dir(
92 temp_dir_.path().AppendASCII(new_version_->GetString())); 92 temp_dir_.path().AppendASCII(new_version_->GetString()));
93 ASSERT_TRUE(file_util::CreateDirectory(new_version_dir)); 93 ASSERT_TRUE(file_util::CreateDirectory(new_version_dir));
94 new_chrome_frame_dll_ = 94 new_chrome_frame_dll_ =
95 new_version_dir.Append(build_chrome_frame_dll.BaseName()); 95 new_version_dir.Append(build_chrome_frame_dll.BaseName());
96 ASSERT_TRUE(file_util::Move(temporary_new_chrome_frame_dll, 96 ASSERT_TRUE(file_util::Move(temporary_new_chrome_frame_dll,
97 new_chrome_frame_dll_)); 97 new_chrome_frame_dll_));
98 ASSERT_TRUE(file_util::PathExists(new_chrome_frame_dll_)); 98 ASSERT_TRUE(file_util::PathExists(new_chrome_frame_dll_));
99 } 99 }
100 100
101 static void TearDownTestCase() { 101 static void TearDownTestCase() {
102 if (!temp_dir_.Delete()) { 102 if (!temp_dir_.Delete()) {
103 // The temp_dir cleanup has been observed to fail in some cases. It looks 103 // The temp_dir cleanup has been observed to fail in some cases. It looks
104 // like something is holding on to the Chrome Frame DLLs after they have 104 // like something is holding on to the Chrome Frame DLLs after they have
105 // been explicitly unloaded. At least schedule them for cleanup on reboot. 105 // been explicitly unloaded. At least schedule them for cleanup on reboot.
106 ScheduleDirectoryForDeletion(temp_dir_.path().value().c_str()); 106 ScheduleDirectoryForDeletion(temp_dir_.path().value().c_str());
107 } 107 }
108 } 108 }
109 109
110 protected: 110 protected:
111 static FilePath original_chrome_frame_dll_; 111 static base::FilePath original_chrome_frame_dll_;
112 static FilePath new_chrome_frame_dll_; 112 static base::FilePath new_chrome_frame_dll_;
113 static scoped_ptr<Version> original_version_; 113 static scoped_ptr<Version> original_version_;
114 static scoped_ptr<Version> new_version_; 114 static scoped_ptr<Version> new_version_;
115 115
116 static base::ScopedTempDir temp_dir_; 116 static base::ScopedTempDir temp_dir_;
117 }; // class DllRedirectorLoadingTest 117 }; // class DllRedirectorLoadingTest
118 118
119 FilePath DllRedirectorLoadingTest::original_chrome_frame_dll_; 119 base::FilePath DllRedirectorLoadingTest::original_chrome_frame_dll_;
120 FilePath DllRedirectorLoadingTest::new_chrome_frame_dll_; 120 base::FilePath DllRedirectorLoadingTest::new_chrome_frame_dll_;
121 scoped_ptr<Version> DllRedirectorLoadingTest::original_version_; 121 scoped_ptr<Version> DllRedirectorLoadingTest::original_version_;
122 scoped_ptr<Version> DllRedirectorLoadingTest::new_version_; 122 scoped_ptr<Version> DllRedirectorLoadingTest::new_version_;
123 base::ScopedTempDir DllRedirectorLoadingTest::temp_dir_; 123 base::ScopedTempDir DllRedirectorLoadingTest::temp_dir_;
124 124
125 #if defined(COMPONENT_BUILD) 125 #if defined(COMPONENT_BUILD)
126 // Disabling since npchrome_frame.dll's DllMain can't handle being loaded into 126 // Disabling since npchrome_frame.dll's DllMain can't handle being loaded into
127 // a process that has already started services in base.dll such as logging; see 127 // a process that has already started services in base.dll such as logging; see
128 // http://crbug.com/110492. 128 // http://crbug.com/110492.
129 #define MAYBE_TestDllRedirection DISABLED_TestDllRedirection 129 #define MAYBE_TestDllRedirection DISABLED_TestDllRedirection
130 #else 130 #else
131 #define MAYBE_TestDllRedirection TestDllRedirection 131 #define MAYBE_TestDllRedirection TestDllRedirection
132 #endif 132 #endif
133 133
134 TEST_F(DllRedirectorLoadingTest, MAYBE_TestDllRedirection) { 134 TEST_F(DllRedirectorLoadingTest, MAYBE_TestDllRedirection) {
135 struct TestData { 135 struct TestData {
136 FilePath first_dll; 136 base::FilePath first_dll;
137 FilePath second_dll; 137 base::FilePath second_dll;
138 Version* expected_beacon_version; 138 Version* expected_beacon_version;
139 } test_data[] = { 139 } test_data[] = {
140 { 140 {
141 original_chrome_frame_dll_, 141 original_chrome_frame_dll_,
142 new_chrome_frame_dll_, 142 new_chrome_frame_dll_,
143 original_version_.get() 143 original_version_.get()
144 }, 144 },
145 { 145 {
146 new_chrome_frame_dll_, 146 new_chrome_frame_dll_,
147 original_chrome_frame_dll_, 147 original_chrome_frame_dll_,
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 208
209 char buffer[kSharedMemoryBytes] = {0}; 209 char buffer[kSharedMemoryBytes] = {0};
210 memcpy(buffer, beacon.memory(), kSharedMemoryBytes - 1); 210 memcpy(buffer, beacon.memory(), kSharedMemoryBytes - 1);
211 Version beacon_version(buffer); 211 Version beacon_version(buffer);
212 ASSERT_TRUE(beacon_version.IsValid()); 212 ASSERT_TRUE(beacon_version.IsValid());
213 213
214 EXPECT_EQ(0, 214 EXPECT_EQ(0,
215 beacon_version.CompareTo(*test_data[i].expected_beacon_version)); 215 beacon_version.CompareTo(*test_data[i].expected_beacon_version));
216 } 216 }
217 } 217 }
OLDNEW
« no previous file with comments | « chrome_frame/test/delete_chrome_history_test.cc ('k') | chrome_frame/test/html_util_unittests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698