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

Unified Diff: omaha_request_action_unittest.cc

Issue 4432002: AU: Separate error codes for different OmahaRequestAction failures. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git@master
Patch Set: Created 10 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « omaha_request_action.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: omaha_request_action_unittest.cc
diff --git a/omaha_request_action_unittest.cc b/omaha_request_action_unittest.cc
index f822357d979517c99052a3fac872a2481076221f..2501d2d8ae2c4437bb096f6164fdf773b4ff8fff 100755
--- a/omaha_request_action_unittest.cc
+++ b/omaha_request_action_unittest.cc
@@ -145,19 +145,24 @@ class OutputObjectCollectorAction : public Action<OutputObjectCollectorAction> {
};
// Returns true iff an output response was obtained from the
-// OmahaRequestAction. |prefs| may be NULL, in which case a local
-// PrefsMock is used. out_response may be NULL. out_post_data may be
-// null; if non-null, the post-data received by the mock HttpFetcher
-// is returned.
+// OmahaRequestAction. |prefs| may be NULL, in which case a local PrefsMock is
+// used. out_response may be NULL. If |fail_http_response_code| is
+// non-negative, the transfer will fail with that code. out_post_data may be
+// null; if non-null, the post-data received by the mock HttpFetcher is
+// returned.
bool TestUpdateCheck(PrefsInterface* prefs,
const OmahaRequestParams& params,
const string& http_response,
+ int fail_http_response_code,
ActionExitCode expected_code,
OmahaResponse* out_response,
vector<char>* out_post_data) {
GMainLoop* loop = g_main_loop_new(g_main_context_default(), FALSE);
MockHttpFetcher* fetcher = new MockHttpFetcher(http_response.data(),
http_response.size());
+ if (fail_http_response_code >= 0) {
+ fetcher->FailTransfer(fail_http_response_code);
+ }
PrefsMock local_prefs;
OmahaRequestAction action(prefs ? prefs : &local_prefs,
params,
@@ -216,6 +221,7 @@ TEST(OmahaRequestActionTest, NoUpdateTest) {
TestUpdateCheck(NULL, // prefs
kDefaultTestParams,
GetNoUpdateResponse(OmahaRequestParams::kAppId),
+ -1,
kActionCodeSuccess,
&response,
NULL));
@@ -236,6 +242,7 @@ TEST(OmahaRequestActionTest, ValidUpdateTest) {
"false", // needs admin
"123", // size
"20101020"), // deadline
+ -1,
kActionCodeSuccess,
&response,
NULL));
@@ -278,7 +285,21 @@ TEST(OmahaRequestActionTest, InvalidXmlTest) {
TestUpdateCheck(NULL, // prefs
kDefaultTestParams,
"invalid xml>",
- kActionCodeError,
+ -1,
+ kActionCodeOmahaRequestXMLParseError,
+ &response,
+ NULL));
+ EXPECT_FALSE(response.update_exists);
+}
+
+TEST(OmahaRequestActionTest, EmptyResponseTest) {
+ OmahaResponse response;
+ ASSERT_FALSE(
+ TestUpdateCheck(NULL, // prefs
+ kDefaultTestParams,
+ "",
+ -1,
+ kActionCodeOmahaRequestEmptyResponseError,
&response,
NULL));
EXPECT_FALSE(response.update_exists);
@@ -293,7 +314,8 @@ TEST(OmahaRequestActionTest, MissingStatusTest) {
"xmlns=\"http://www.google.com/update2/response\" protocol=\"2.0\"><app "
"appid=\"foo\" status=\"ok\"><ping "
"status=\"ok\"/><updatecheck/></app></gupdate>",
- kActionCodeError,
+ -1,
+ kActionCodeOmahaRequestNoUpdateCheckStatus,
&response,
NULL));
EXPECT_FALSE(response.update_exists);
@@ -308,7 +330,8 @@ TEST(OmahaRequestActionTest, InvalidStatusTest) {
"xmlns=\"http://www.google.com/update2/response\" protocol=\"2.0\"><app "
"appid=\"foo\" status=\"ok\"><ping "
"status=\"ok\"/><updatecheck status=\"foo\"/></app></gupdate>",
- kActionCodeError,
+ -1,
+ kActionCodeOmahaRequestBadUpdateCheckStatus,
&response,
NULL));
EXPECT_FALSE(response.update_exists);
@@ -323,7 +346,8 @@ TEST(OmahaRequestActionTest, MissingNodesetTest) {
"xmlns=\"http://www.google.com/update2/response\" protocol=\"2.0\"><app "
"appid=\"foo\" status=\"ok\"><ping "
"status=\"ok\"/></app></gupdate>",
- kActionCodeError,
+ -1,
+ kActionCodeOmahaRequestNoUpdateCheckNode,
&response,
NULL));
EXPECT_FALSE(response.update_exists);
@@ -347,6 +371,7 @@ TEST(OmahaRequestActionTest, MissingFieldTest) {
"sha256=\"HASH1234=\" needsadmin=\"true\" "
"size=\"123\" "
"status=\"ok\"/></app></gupdate>",
+ -1,
kActionCodeSuccess,
&response,
NULL));
@@ -426,7 +451,8 @@ TEST(OmahaRequestActionTest, XmlEncodeTest) {
TestUpdateCheck(NULL, // prefs
params,
"invalid xml>",
- kActionCodeError,
+ -1,
+ kActionCodeOmahaRequestXMLParseError,
&response,
&post_data));
// convert post_data to string
@@ -455,6 +481,7 @@ TEST(OmahaRequestActionTest, XmlDecodeTest) {
"false", // needs admin
"123", // size
"&lt;20110101"), // deadline
+ -1,
kActionCodeSuccess,
&response,
NULL));
@@ -479,6 +506,7 @@ TEST(OmahaRequestActionTest, ParseIntTest) {
// overflows int32:
"123123123123123", // size
"deadline"),
+ -1,
kActionCodeSuccess,
&response,
NULL));
@@ -491,7 +519,8 @@ TEST(OmahaRequestActionTest, FormatUpdateCheckOutputTest) {
ASSERT_FALSE(TestUpdateCheck(NULL, // prefs
kDefaultTestParams,
"invalid xml>",
- kActionCodeError,
+ -1,
+ kActionCodeOmahaRequestXMLParseError,
NULL, // response
&post_data));
// convert post_data to string
@@ -600,7 +629,8 @@ TEST(OmahaRequestActionTest, FormatDeltaOkayOutputTest) {
ASSERT_FALSE(TestUpdateCheck(NULL, // prefs
params,
"invalid xml>",
- kActionCodeError,
+ -1,
+ kActionCodeOmahaRequestXMLParseError,
NULL,
&post_data));
// convert post_data to string
@@ -646,6 +676,7 @@ TEST(OmahaRequestActionTest, PingTest) {
TestUpdateCheck(&prefs,
kDefaultTestParams,
GetNoUpdateResponse(OmahaRequestParams::kAppId),
+ -1,
kActionCodeSuccess,
NULL,
&post_data));
@@ -667,6 +698,7 @@ TEST(OmahaRequestActionTest, ActivePingTest) {
TestUpdateCheck(&prefs,
kDefaultTestParams,
GetNoUpdateResponse(OmahaRequestParams::kAppId),
+ -1,
kActionCodeSuccess,
NULL,
&post_data));
@@ -688,6 +720,7 @@ TEST(OmahaRequestActionTest, RollCallPingTest) {
TestUpdateCheck(&prefs,
kDefaultTestParams,
GetNoUpdateResponse(OmahaRequestParams::kAppId),
+ -1,
kActionCodeSuccess,
NULL,
&post_data));
@@ -710,6 +743,7 @@ TEST(OmahaRequestActionTest, NoPingTest) {
TestUpdateCheck(&prefs,
kDefaultTestParams,
GetNoUpdateResponse(OmahaRequestParams::kAppId),
+ -1,
kActionCodeSuccess,
NULL,
&post_data));
@@ -738,6 +772,7 @@ TEST(OmahaRequestActionTest, BackInTimePingTest) {
"protocol=\"2.0\"><daystart elapsed_seconds=\"100\"/>"
"<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>"
"<updatecheck status=\"noupdate\"/></app></gupdate>",
+ -1,
kActionCodeSuccess,
NULL,
&post_data));
@@ -769,6 +804,7 @@ TEST(OmahaRequestActionTest, LastPingDayUpdateTest) {
"protocol=\"2.0\"><daystart elapsed_seconds=\"200\"/>"
"<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>"
"<updatecheck status=\"noupdate\"/></app></gupdate>",
+ -1,
kActionCodeSuccess,
NULL,
NULL));
@@ -786,6 +822,7 @@ TEST(OmahaRequestActionTest, NoElapsedSecondsTest) {
"protocol=\"2.0\"><daystart blah=\"200\"/>"
"<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>"
"<updatecheck status=\"noupdate\"/></app></gupdate>",
+ -1,
kActionCodeSuccess,
NULL,
NULL));
@@ -803,6 +840,7 @@ TEST(OmahaRequestActionTest, BadElapsedSecondsTest) {
"protocol=\"2.0\"><daystart elapsed_seconds=\"x\"/>"
"<app appid=\"foo\" status=\"ok\"><ping status=\"ok\"/>"
"<updatecheck status=\"noupdate\"/></app></gupdate>",
+ -1,
kActionCodeSuccess,
NULL,
NULL));
@@ -813,7 +851,8 @@ TEST(OmahaRequestActionTest, NoUniqueIDTest) {
ASSERT_FALSE(TestUpdateCheck(NULL, // prefs
kDefaultTestParams,
"invalid xml>",
- kActionCodeError,
+ -1,
+ kActionCodeOmahaRequestXMLParseError,
NULL, // response
&post_data));
// convert post_data to string
@@ -822,4 +861,32 @@ TEST(OmahaRequestActionTest, NoUniqueIDTest) {
EXPECT_EQ(post_str.find("userid="), string::npos);
}
+TEST(OmahaRequestActionTest, NetworkFailureTest) {
+ OmahaResponse response;
+ ASSERT_FALSE(
+ TestUpdateCheck(NULL, // prefs
+ kDefaultTestParams,
+ "",
+ 501,
+ static_cast<ActionExitCode>(
+ kActionCodeOmahaRequestHTTPResponseBase + 501),
+ &response,
+ NULL));
+ EXPECT_FALSE(response.update_exists);
+}
+
+TEST(OmahaRequestActionTest, NetworkFailureBadHTTPCodeTest) {
+ OmahaResponse response;
+ ASSERT_FALSE(
+ TestUpdateCheck(NULL, // prefs
+ kDefaultTestParams,
+ "",
+ 1500,
+ static_cast<ActionExitCode>(
+ kActionCodeOmahaRequestHTTPResponseBase + 999),
+ &response,
+ NULL));
+ EXPECT_FALSE(response.update_exists);
+}
+
} // namespace chromeos_update_engine
« no previous file with comments | « omaha_request_action.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698