OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 #include "base/file_util.h" | 5 #include "base/file_util.h" |
6 #include "base/path_service.h" | 6 #include "base/path_service.h" |
7 #include "base/scoped_ptr.h" | 7 #include "base/scoped_ptr.h" |
8 #include "base/file_version_info.h" | 8 #include "base/file_version_info.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
11 namespace { | 11 namespace { |
12 | 12 |
13 class FileVersionInfoTest : public testing::Test { | 13 class FileVersionInfoTest : public testing::Test { |
14 }; | 14 }; |
15 | 15 |
16 std::wstring GetTestDataPath() { | 16 FilePath GetTestDataPath() { |
17 std::wstring path; | 17 FilePath path; |
18 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 18 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
19 file_util::AppendToPath(&path, L"base"); | 19 path = path.AppendASCII("base"); |
20 file_util::AppendToPath(&path, L"data"); | 20 path = path.AppendASCII("data"); |
21 file_util::AppendToPath(&path, L"file_version_info_unittest"); | 21 path = path.AppendASCII("file_version_info_unittest"); |
22 return path; | 22 return path; |
23 } | 23 } |
24 | 24 |
25 } | 25 } |
26 | 26 |
27 #ifdef OS_WIN | 27 #ifdef OS_WIN |
28 TEST(FileVersionInfoTest, HardCodedProperties) { | 28 TEST(FileVersionInfoTest, HardCodedProperties) { |
29 const wchar_t* kDLLNames[] = { | 29 const wchar_t* kDLLNames[] = { |
30 L"FileVersionInfoTest1.dll" | 30 L"FileVersionInfoTest1.dll" |
31 }; | 31 }; |
32 | 32 |
33 const wchar_t* kExpectedValues[1][15] = { | 33 const wchar_t* kExpectedValues[1][15] = { |
34 // FileVersionInfoTest.dll | 34 // FileVersionInfoTest.dll |
35 L"Goooooogle", // company_name | 35 L"Goooooogle", // company_name |
36 L"Google", // company_short_name | 36 L"Google", // company_short_name |
37 L"This is the product name", // product_name | 37 L"This is the product name", // product_name |
38 L"This is the product short name", // product_short_name | 38 L"This is the product short name", // product_short_name |
39 L"The Internal Name", // internal_name | 39 L"The Internal Name", // internal_name |
40 L"4.3.2.1", // product_version | 40 L"4.3.2.1", // product_version |
41 L"Private build property", // private_build | 41 L"Private build property", // private_build |
42 L"Special build property", // special_build | 42 L"Special build property", // special_build |
43 L"This is a particularly interesting comment", // comments | 43 L"This is a particularly interesting comment", // comments |
44 L"This is the original filename", // original_filename | 44 L"This is the original filename", // original_filename |
45 L"This is my file description", // file_description | 45 L"This is my file description", // file_description |
46 L"1.2.3.4", // file_version | 46 L"1.2.3.4", // file_version |
47 L"This is the legal copyright", // legal_copyright | 47 L"This is the legal copyright", // legal_copyright |
48 L"This is the legal trademarks", // legal_trademarks | 48 L"This is the legal trademarks", // legal_trademarks |
49 L"This is the last change", // last_change | 49 L"This is the last change", // last_change |
50 | |
51 }; | 50 }; |
52 | 51 |
53 for (int i = 0; i < arraysize(kDLLNames); ++i) { | 52 for (int i = 0; i < arraysize(kDLLNames); ++i) { |
54 std::wstring dll_path = GetTestDataPath(); | 53 FilePath dll_path = GetTestDataPath(); |
55 file_util::AppendToPath(&dll_path, kDLLNames[i]); | 54 dll_path = dll_path.Append(kDLLNames[i]); |
56 | 55 |
57 scoped_ptr<FileVersionInfo> version_info( | 56 scoped_ptr<FileVersionInfo> version_info( |
58 FileVersionInfo::CreateFileVersionInfo(dll_path)); | 57 FileVersionInfo::CreateFileVersionInfo(dll_path)); |
59 | 58 |
60 int j = 0; | 59 int j = 0; |
61 EXPECT_EQ(kExpectedValues[i][j++], version_info->company_name()); | 60 EXPECT_EQ(kExpectedValues[i][j++], version_info->company_name()); |
62 EXPECT_EQ(kExpectedValues[i][j++], version_info->company_short_name()); | 61 EXPECT_EQ(kExpectedValues[i][j++], version_info->company_short_name()); |
63 EXPECT_EQ(kExpectedValues[i][j++], version_info->product_name()); | 62 EXPECT_EQ(kExpectedValues[i][j++], version_info->product_name()); |
64 EXPECT_EQ(kExpectedValues[i][j++], version_info->product_short_name()); | 63 EXPECT_EQ(kExpectedValues[i][j++], version_info->product_short_name()); |
65 EXPECT_EQ(kExpectedValues[i][j++], version_info->internal_name()); | 64 EXPECT_EQ(kExpectedValues[i][j++], version_info->internal_name()); |
(...skipping 20 matching lines...) Expand all Loading... |
86 | 85 |
87 const bool kExpected[] = { | 86 const bool kExpected[] = { |
88 true, | 87 true, |
89 false, | 88 false, |
90 }; | 89 }; |
91 | 90 |
92 // Test consistency check. | 91 // Test consistency check. |
93 ASSERT_EQ(arraysize(kDLLNames), arraysize(kExpected)); | 92 ASSERT_EQ(arraysize(kDLLNames), arraysize(kExpected)); |
94 | 93 |
95 for (int i = 0; i < arraysize(kDLLNames); ++i) { | 94 for (int i = 0; i < arraysize(kDLLNames); ++i) { |
96 std::wstring dll_path = GetTestDataPath(); | 95 FilePath dll_path = GetTestDataPath(); |
97 file_util::AppendToPath(&dll_path, kDLLNames[i]); | 96 dll_path = dll_path.Append(kDLLNames[i]); |
98 | 97 |
99 scoped_ptr<FileVersionInfo> version_info( | 98 scoped_ptr<FileVersionInfo> version_info( |
100 FileVersionInfo::CreateFileVersionInfo(dll_path)); | 99 FileVersionInfo::CreateFileVersionInfo(dll_path)); |
101 | 100 |
102 EXPECT_EQ(kExpected[i], version_info->is_official_build()); | 101 EXPECT_EQ(kExpected[i], version_info->is_official_build()); |
103 } | 102 } |
104 } | 103 } |
105 #endif | 104 #endif |
106 | 105 |
107 TEST(FileVersionInfoTest, CustomProperties) { | 106 TEST(FileVersionInfoTest, CustomProperties) { |
108 std::wstring dll_path = GetTestDataPath(); | 107 FilePath dll_path = GetTestDataPath(); |
109 file_util::AppendToPath(&dll_path, L"FileVersionInfoTest1.dll"); | 108 dll_path = dll_path.AppendASCII("FileVersionInfoTest1.dll"); |
110 | 109 |
111 scoped_ptr<FileVersionInfo> version_info( | 110 scoped_ptr<FileVersionInfo> version_info( |
112 FileVersionInfo::CreateFileVersionInfo(dll_path)); | 111 FileVersionInfo::CreateFileVersionInfo(dll_path)); |
113 | 112 |
114 // Test few existing properties. | 113 // Test few existing properties. |
115 std::wstring str; | 114 std::wstring str; |
116 #ifdef OS_WIN | 115 #ifdef OS_WIN |
117 EXPECT_TRUE(version_info->GetValue(L"Custom prop 1", &str)); | 116 EXPECT_TRUE(version_info->GetValue(L"Custom prop 1", &str)); |
118 EXPECT_EQ(L"Un", str); | 117 EXPECT_EQ(L"Un", str); |
119 EXPECT_EQ(L"Un", version_info->GetStringValue(L"Custom prop 1")); | 118 EXPECT_EQ(L"Un", version_info->GetStringValue(L"Custom prop 1")); |
120 | 119 |
121 EXPECT_TRUE(version_info->GetValue(L"Custom prop 2", &str)); | 120 EXPECT_TRUE(version_info->GetValue(L"Custom prop 2", &str)); |
122 EXPECT_EQ(L"Deux", str); | 121 EXPECT_EQ(L"Deux", str); |
123 EXPECT_EQ(L"Deux", version_info->GetStringValue(L"Custom prop 2")); | 122 EXPECT_EQ(L"Deux", version_info->GetStringValue(L"Custom prop 2")); |
124 | 123 |
125 EXPECT_TRUE(version_info->GetValue(L"Custom prop 3", &str)); | 124 EXPECT_TRUE(version_info->GetValue(L"Custom prop 3", &str)); |
126 EXPECT_EQ(L"1600 Amphitheatre Parkway Mountain View, CA 94043", str); | 125 EXPECT_EQ(L"1600 Amphitheatre Parkway Mountain View, CA 94043", str); |
127 EXPECT_EQ(L"1600 Amphitheatre Parkway Mountain View, CA 94043", | 126 EXPECT_EQ(L"1600 Amphitheatre Parkway Mountain View, CA 94043", |
128 version_info->GetStringValue(L"Custom prop 3")); | 127 version_info->GetStringValue(L"Custom prop 3")); |
129 #endif | 128 #endif |
130 | 129 |
131 // Test an non-existing property. | 130 // Test an non-existing property. |
132 EXPECT_FALSE(version_info->GetValue(L"Unknown property", &str)); | 131 EXPECT_FALSE(version_info->GetValue(L"Unknown property", &str)); |
133 EXPECT_EQ(L"", version_info->GetStringValue(L"Unknown property")); | 132 EXPECT_EQ(L"", version_info->GetStringValue(L"Unknown property")); |
134 } | 133 } |
OLD | NEW |