Index: download_action_unittest.cc |
diff --git a/download_action_unittest.cc b/download_action_unittest.cc |
index d63ae2d89604a20359e3c545ead292c3062ecee4..9ae952299e6d74bece936e903298c0c41549c0ab 100644 |
--- a/download_action_unittest.cc |
+++ b/download_action_unittest.cc |
@@ -85,6 +85,7 @@ gboolean StartProcessorInRunLoop(gpointer data) { |
void TestWithData(const vector<char>& data, |
bool hash_test, |
+ bool size_test, |
bool use_download_delegate) { |
GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); |
@@ -96,9 +97,10 @@ void TestWithData(const vector<char>& data, |
string hash = hash_test ? |
OmahaHashCalculator::OmahaHashOfString("random string") : |
OmahaHashCalculator::OmahaHashOfData(data); |
+ uint64_t size = data.size() + (size_test ? 1 : 0); |
InstallPlan install_plan(true, |
"", |
- 0, |
+ size, |
hash, |
output_temp_file.GetPath(), |
""); |
@@ -116,8 +118,12 @@ void TestWithData(const vector<char>& data, |
EXPECT_CALL(download_delegate, BytesReceived(_, _)).Times(AtLeast(1)); |
EXPECT_CALL(download_delegate, SetDownloadStatus(false)).Times(1); |
} |
- DownloadActionTestProcessorDelegate delegate( |
- hash_test ? kActionCodeDownloadHashMismatchError : kActionCodeSuccess); |
+ ActionExitCode expected_code = kActionCodeSuccess; |
+ if (hash_test) |
+ expected_code = kActionCodeDownloadHashMismatchError; |
+ else if (size_test) |
+ expected_code = kActionCodeDownloadSizeMismatchError; |
+ DownloadActionTestProcessorDelegate delegate(expected_code); |
delegate.loop_ = loop; |
delegate.expected_data_ = data; |
delegate.path_ = output_temp_file.GetPath(); |
@@ -136,7 +142,10 @@ TEST(DownloadActionTest, SimpleTest) { |
vector<char> small; |
const char* foo = "foo"; |
small.insert(small.end(), foo, foo + strlen(foo)); |
- TestWithData(small, false, true); |
+ TestWithData(small, |
+ false, // hash_test |
+ false, // size_test |
+ true); // use_download_delegate |
} |
TEST(DownloadActionTest, LargeTest) { |
@@ -149,21 +158,39 @@ TEST(DownloadActionTest, LargeTest) { |
else |
c++; |
} |
- TestWithData(big, false, true); |
+ TestWithData(big, |
+ false, // hash_test |
+ false, // size_test |
+ true); // use_download_delegate |
} |
TEST(DownloadActionTest, BadHashTest) { |
vector<char> small; |
const char* foo = "foo"; |
small.insert(small.end(), foo, foo + strlen(foo)); |
- TestWithData(small, true, true); |
+ TestWithData(small, |
+ true, // hash_test |
+ false, // size_test |
+ true); // use_download_delegate |
+} |
+ |
+TEST(DownloadActionTest, BadSizeTest) { |
+ const char* something = "something"; |
+ vector<char> small(something, something + strlen(something)); |
+ TestWithData(small, |
+ false, // hash_test |
+ true, // size_test |
+ true); // use_download_delegate |
} |
TEST(DownloadActionTest, NoDownloadDelegateTest) { |
vector<char> small; |
const char* foo = "foofoo"; |
small.insert(small.end(), foo, foo + strlen(foo)); |
- TestWithData(small, false, false); |
+ TestWithData(small, |
+ false, // hash_test |
+ false, // size_test |
+ false); // use_download_delegate |
} |
namespace { |
@@ -294,7 +321,7 @@ TEST(DownloadActionTest, PassObjectOutTest) { |
// takes ownership of passed in HttpFetcher |
InstallPlan install_plan(true, |
"", |
- 0, |
+ 1, |
OmahaHashCalculator::OmahaHashOfString("x"), |
"/dev/null", |
"/dev/null"); |