| Index: base/extractor_unittest.cc
|
| diff --git a/base/extractor_unittest.cc b/base/extractor_unittest.cc
|
| deleted file mode 100644
|
| index 180fe59810599a5d38a31630c9c100140ec0f444..0000000000000000000000000000000000000000
|
| --- a/base/extractor_unittest.cc
|
| +++ /dev/null
|
| @@ -1,246 +0,0 @@
|
| -// Copyright 2006-2009 Google Inc.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -// ========================================================================
|
| -//
|
| -// Unit test for the extractor and the ApplyTag class.
|
| -//
|
| -// TODO(omaha): eliminate the dependency on the hardcoded "GoogleUpdate.exe"
|
| -// program name.
|
| -
|
| -#include <shlobj.h>
|
| -#include "base/scoped_ptr.h"
|
| -#include "omaha/base/apply_tag.h"
|
| -#include "omaha/base/app_util.h"
|
| -#include "omaha/base/extractor.h"
|
| -#include "omaha/base/scope_guard.h"
|
| -#include "omaha/base/utils.h"
|
| -#include "omaha/testing/unit_test.h"
|
| -
|
| -namespace omaha {
|
| -
|
| -const TCHAR kFilePath[] = _T(".");
|
| -const TCHAR kFileName[] = _T("GoogleUpdate.exe");
|
| -const char kTagString[] = "1234567890abcdefg";
|
| -const char kAppendTagString[] = "..AppendedStr";
|
| -
|
| -TEST(ExtractorTest, EmbedExtract) {
|
| - // Test the extractor.
|
| - TagExtractor extractor;
|
| - ASSERT_FALSE(extractor.IsFileOpen());
|
| -
|
| - CString signed_exe_file;
|
| - signed_exe_file.Format(_T("%s\\%s\\%s"),
|
| - app_util::GetCurrentModuleDirectory(),
|
| - kFilePath, kFileName);
|
| - ASSERT_TRUE(extractor.OpenFile(signed_exe_file));
|
| -
|
| - // No tag string in the original exe file.
|
| - int tag_buffer_size = 0;
|
| - ASSERT_FALSE(extractor.ExtractTag(NULL, &tag_buffer_size));
|
| - ASSERT_EQ(tag_buffer_size, 0);
|
| - extractor.CloseFile();
|
| -
|
| - // Create a temp dir.
|
| - TCHAR temp_path[MAX_PATH] = {0};
|
| - *temp_path = 0;
|
| - ASSERT_NE(::GetTempPath(MAX_PATH, temp_path), 0);
|
| -
|
| - // Embed the tag string.
|
| - CString tagged_file;
|
| - tagged_file.Format(_T("%s%s"), temp_path, kFileName);
|
| - omaha::ApplyTag tag;
|
| - ASSERT_HRESULT_SUCCEEDED(tag.Init(signed_exe_file,
|
| - kTagString,
|
| - strlen(kTagString),
|
| - tagged_file,
|
| - false));
|
| - ASSERT_SUCCEEDED(tag.EmbedTagString());
|
| - ON_SCOPE_EXIT(::DeleteFile, tagged_file);
|
| -
|
| - // Extract the tag string.
|
| - tag_buffer_size = 0;
|
| - ASSERT_TRUE(extractor.OpenFile(tagged_file));
|
| - ASSERT_TRUE(extractor.ExtractTag(NULL, &tag_buffer_size));
|
| - ASSERT_EQ(tag_buffer_size, arraysize(kTagString));
|
| -
|
| - char tag_buffer[arraysize(kTagString)] = {0};
|
| - ASSERT_TRUE(extractor.ExtractTag(tag_buffer, &tag_buffer_size));
|
| - ASSERT_EQ(tag_buffer_size, arraysize(kTagString));
|
| - ASSERT_EQ(memcmp(tag_buffer, kTagString, arraysize(kTagString)), 0);
|
| - extractor.CloseFile();
|
| -}
|
| -
|
| -TEST(ExtractorTest, EmbedAppendExtract) {
|
| - // Test the extractor.
|
| - TagExtractor extractor;
|
| - ASSERT_FALSE(extractor.IsFileOpen());
|
| -
|
| - CString signed_exe_file;
|
| - signed_exe_file.Format(_T("%s\\%s\\%s"),
|
| - app_util::GetCurrentModuleDirectory(),
|
| - kFilePath, kFileName);
|
| - ASSERT_TRUE(extractor.OpenFile(signed_exe_file));
|
| -
|
| - // No tag string in the original exe file.
|
| - int tag_buffer_size = 0;
|
| - ASSERT_FALSE(extractor.ExtractTag(NULL, &tag_buffer_size));
|
| - ASSERT_GT(extractor.cert_length(), 0);
|
| - ASSERT_EQ(tag_buffer_size, 0);
|
| - extractor.CloseFile();
|
| -
|
| - // Create a temp dir.
|
| - TCHAR temp_path[MAX_PATH] = {0};
|
| - *temp_path = 0;
|
| - ASSERT_NE(::GetTempPath(MAX_PATH, temp_path), 0);
|
| -
|
| - // Embed the tag string.
|
| - CString tagged_file;
|
| - tagged_file.Format(_T("%s%d%s"), temp_path, 1, kFileName);
|
| - omaha::ApplyTag tag;
|
| - ASSERT_HRESULT_SUCCEEDED(tag.Init(signed_exe_file,
|
| - kTagString,
|
| - strlen(kTagString),
|
| - tagged_file,
|
| - false));
|
| - ASSERT_SUCCEEDED(tag.EmbedTagString());
|
| - ON_SCOPE_EXIT(::DeleteFile, tagged_file);
|
| -
|
| - // Append another tag string.
|
| - CString tagged_appended_file;
|
| - tagged_appended_file.Format(_T("%s%d%s"), temp_path, 2, kFileName);
|
| - omaha::ApplyTag tag1;
|
| -
|
| - ASSERT_HRESULT_SUCCEEDED(tag1.Init(tagged_file,
|
| - kAppendTagString,
|
| - strlen(kAppendTagString),
|
| - tagged_appended_file,
|
| - true));
|
| - ASSERT_SUCCEEDED(tag1.EmbedTagString());
|
| - ON_SCOPE_EXIT(::DeleteFile, tagged_appended_file);
|
| -
|
| - // Append another tag string.
|
| - CString tagged_appended_file2;
|
| - tagged_appended_file2.Format(_T("%s%d%s"), temp_path, 3, kFileName);
|
| - omaha::ApplyTag tag2;
|
| - ASSERT_HRESULT_SUCCEEDED(tag2.Init(tagged_appended_file,
|
| - kAppendTagString,
|
| - strlen(kAppendTagString),
|
| - tagged_appended_file2,
|
| - true));
|
| - ASSERT_SUCCEEDED(tag2.EmbedTagString());
|
| - ON_SCOPE_EXIT(::DeleteFile, tagged_appended_file2);
|
| -
|
| - // Extract the tag string.
|
| - tag_buffer_size = 0;
|
| - CStringA expected_tag_string(kTagString);
|
| - expected_tag_string += kAppendTagString;
|
| - expected_tag_string += kAppendTagString;
|
| - int expected_tag_string_len = expected_tag_string.GetLength() + 1;
|
| - ASSERT_TRUE(extractor.OpenFile(tagged_appended_file2));
|
| - ASSERT_TRUE(extractor.ExtractTag(NULL, &tag_buffer_size));
|
| - ASSERT_EQ(tag_buffer_size, expected_tag_string_len);
|
| -
|
| - scoped_array<char> tag_buffer(new char[expected_tag_string_len]);
|
| - ASSERT_TRUE(extractor.ExtractTag(tag_buffer.get(), &tag_buffer_size));
|
| - ASSERT_EQ(tag_buffer_size, expected_tag_string_len);
|
| - ASSERT_EQ(memcmp(tag_buffer.get(),
|
| - expected_tag_string,
|
| - expected_tag_string_len),
|
| - 0);
|
| - extractor.CloseFile();
|
| -}
|
| -
|
| -TEST(ExtractorTest, AlreadyTaggedError) {
|
| - // Test the extractor.
|
| - TagExtractor extractor;
|
| - ASSERT_FALSE(extractor.IsFileOpen());
|
| -
|
| - CString signed_exe_file;
|
| - signed_exe_file.Format(_T("%s\\%s\\%s"),
|
| - app_util::GetCurrentModuleDirectory(),
|
| - kFilePath, kFileName);
|
| - ASSERT_TRUE(extractor.OpenFile(signed_exe_file));
|
| -
|
| - // No tag string in the original exe file.
|
| - int tag_buffer_size = 0;
|
| - ASSERT_FALSE(extractor.ExtractTag(NULL, &tag_buffer_size));
|
| - ASSERT_GT(extractor.cert_length(), 0);
|
| - ASSERT_EQ(tag_buffer_size, 0);
|
| - extractor.CloseFile();
|
| -
|
| - // Create a temp dir.
|
| - TCHAR temp_path[MAX_PATH] = {0};
|
| - *temp_path = 0;
|
| - ASSERT_NE(::GetTempPath(MAX_PATH, temp_path), 0);
|
| -
|
| - // Embed the tag string.
|
| - CString tagged_file;
|
| - tagged_file.Format(_T("%s%d%s"), temp_path, 1, kFileName);
|
| - omaha::ApplyTag tag1;
|
| - ASSERT_HRESULT_SUCCEEDED(tag1.Init(signed_exe_file,
|
| - kTagString,
|
| - strlen(kTagString),
|
| - tagged_file,
|
| - false));
|
| - ASSERT_SUCCEEDED(tag1.EmbedTagString());
|
| - ON_SCOPE_EXIT(::DeleteFile, tagged_file);
|
| -
|
| - CString tagged_appended_file;
|
| - tagged_appended_file.Format(_T("%s%d%s"), temp_path, 2, kFileName);
|
| - omaha::ApplyTag tag2;
|
| - ASSERT_HRESULT_SUCCEEDED(tag2.Init(tagged_file,
|
| - kAppendTagString,
|
| - strlen(kAppendTagString),
|
| - tagged_appended_file,
|
| - false));
|
| - ASSERT_EQ(tag2.EmbedTagString(), APPLYTAG_E_ALREADY_TAGGED);
|
| - ON_SCOPE_EXIT(::DeleteFile, tagged_appended_file);
|
| - extractor.CloseFile();
|
| -}
|
| -
|
| -TEST(ApplyTagTest, InvalidCharsTest) {
|
| - // Accepted Regex = [-%{}/\a&=._]*
|
| - CString signed_exe_file;
|
| - signed_exe_file.Format(_T("%s\\%s\\%s"),
|
| - app_util::GetCurrentModuleDirectory(),
|
| - kFilePath, kFileName);
|
| - CString tagged_file(_T("out.txt"));
|
| -
|
| - const char* const input_str = "abcd";
|
| - omaha::ApplyTag tag1;
|
| - ASSERT_HRESULT_SUCCEEDED(tag1.Init(signed_exe_file,
|
| - input_str,
|
| - strlen(input_str),
|
| - tagged_file,
|
| - false));
|
| -
|
| - const char* const input_str2 = "abcd$%#";
|
| - omaha::ApplyTag tag2;
|
| - ASSERT_HRESULT_FAILED(tag2.Init(signed_exe_file,
|
| - input_str2,
|
| - strlen(input_str2),
|
| - tagged_file,
|
| - false));
|
| -
|
| - const char* const input_str3 = "abcd asdf";
|
| - omaha::ApplyTag tag3;
|
| - ASSERT_HRESULT_FAILED(tag3.Init(signed_exe_file,
|
| - input_str3,
|
| - strlen(input_str3),
|
| - tagged_file,
|
| - false));
|
| -}
|
| -
|
| -} // namespace omaha
|
| -
|
|
|