| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS 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 <string> | 5 #include <string> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include <glib.h> | 8 #include <glib.h> |
| 9 | 9 |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 *out_post_data = fetcher->post_data(); | 191 *out_post_data = fetcher->post_data(); |
| 192 return collector_action.has_input_object_; | 192 return collector_action.has_input_object_; |
| 193 } | 193 } |
| 194 | 194 |
| 195 // Tests Event requests -- they should always succeed. |out_post_data| | 195 // Tests Event requests -- they should always succeed. |out_post_data| |
| 196 // may be null; if non-null, the post-data received by the mock | 196 // may be null; if non-null, the post-data received by the mock |
| 197 // HttpFetcher is returned. | 197 // HttpFetcher is returned. |
| 198 void TestEvent(const OmahaRequestParams& params, | 198 void TestEvent(const OmahaRequestParams& params, |
| 199 OmahaEvent* event, | 199 OmahaEvent* event, |
| 200 const string& http_response, | 200 const string& http_response, |
| 201 vector<char>* out_post_data) { | 201 vector<char>* out_post_data, |
| 202 int expected_http_response_code) { |
| 202 GMainLoop* loop = g_main_loop_new(g_main_context_default(), FALSE); | 203 GMainLoop* loop = g_main_loop_new(g_main_context_default(), FALSE); |
| 203 MockHttpFetcher* fetcher = new MockHttpFetcher(http_response.data(), | 204 MockHttpFetcher* fetcher = new MockHttpFetcher(http_response.data(), |
| 204 http_response.size(), | 205 http_response.size(), |
| 205 NULL); | 206 NULL); |
| 206 NiceMock<PrefsMock> prefs; | 207 NiceMock<PrefsMock> prefs; |
| 207 OmahaRequestAction action(&prefs, params, event, fetcher); | 208 OmahaRequestAction action(&prefs, params, event, fetcher); |
| 208 OmahaRequestActionTestProcessorDelegate delegate; | 209 OmahaRequestActionTestProcessorDelegate delegate; |
| 210 if (expected_http_response_code < 200 || expected_http_response_code > 299) { |
| 211 fetcher->FailTransfer(expected_http_response_code); |
| 212 delegate.expected_code_ = |
| 213 static_cast<ActionExitCode>(kActionCodeOmahaRequestHTTPResponseBase + |
| 214 expected_http_response_code); |
| 215 } |
| 209 delegate.loop_ = loop; | 216 delegate.loop_ = loop; |
| 210 ActionProcessor processor; | 217 ActionProcessor processor; |
| 211 processor.set_delegate(&delegate); | 218 processor.set_delegate(&delegate); |
| 212 processor.EnqueueAction(&action); | 219 processor.EnqueueAction(&action); |
| 213 | 220 |
| 214 g_timeout_add(0, &StartProcessorInRunLoop, &processor); | 221 g_timeout_add(0, &StartProcessorInRunLoop, &processor); |
| 215 g_main_loop_run(loop); | 222 g_main_loop_run(loop); |
| 216 g_main_loop_unref(loop); | 223 g_main_loop_unref(loop); |
| 217 if (out_post_data) | 224 if (out_post_data) |
| 218 *out_post_data = fetcher->post_data(); | 225 *out_post_data = fetcher->post_data(); |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 OmahaEvent::kTypeUpdateComplete, | 576 OmahaEvent::kTypeUpdateComplete, |
| 570 OmahaEvent::kResultSuccessReboot); | 577 OmahaEvent::kResultSuccessReboot); |
| 571 EXPECT_NE(post_str.find(prev_version_event), string::npos); | 578 EXPECT_NE(post_str.find(prev_version_event), string::npos); |
| 572 } | 579 } |
| 573 | 580 |
| 574 TEST(OmahaRequestActionTest, FormatSuccessEventOutputTest) { | 581 TEST(OmahaRequestActionTest, FormatSuccessEventOutputTest) { |
| 575 vector<char> post_data; | 582 vector<char> post_data; |
| 576 TestEvent(kDefaultTestParams, | 583 TestEvent(kDefaultTestParams, |
| 577 new OmahaEvent(OmahaEvent::kTypeUpdateDownloadStarted), | 584 new OmahaEvent(OmahaEvent::kTypeUpdateDownloadStarted), |
| 578 "invalid xml>", | 585 "invalid xml>", |
| 579 &post_data); | 586 &post_data, |
| 587 200); |
| 580 // convert post_data to string | 588 // convert post_data to string |
| 581 string post_str(&post_data[0], post_data.size()); | 589 string post_str(&post_data[0], post_data.size()); |
| 582 string expected_event = StringPrintf( | 590 string expected_event = StringPrintf( |
| 583 " <o:event eventtype=\"%d\" eventresult=\"%d\"></o:event>\n", | 591 " <o:event eventtype=\"%d\" eventresult=\"%d\"></o:event>\n", |
| 584 OmahaEvent::kTypeUpdateDownloadStarted, | 592 OmahaEvent::kTypeUpdateDownloadStarted, |
| 585 OmahaEvent::kResultSuccess); | 593 OmahaEvent::kResultSuccess); |
| 586 EXPECT_NE(post_str.find(expected_event), string::npos); | 594 EXPECT_NE(post_str.find(expected_event), string::npos); |
| 587 EXPECT_EQ(post_str.find("o:ping"), string::npos); | 595 EXPECT_EQ(post_str.find("o:ping"), string::npos); |
| 588 EXPECT_EQ(post_str.find("o:updatecheck"), string::npos); | 596 EXPECT_EQ(post_str.find("o:updatecheck"), string::npos); |
| 589 } | 597 } |
| 590 | 598 |
| 591 TEST(OmahaRequestActionTest, FormatErrorEventOutputTest) { | 599 TEST(OmahaRequestActionTest, FormatErrorEventOutputTest) { |
| 592 vector<char> post_data; | 600 vector<char> post_data; |
| 593 TestEvent(kDefaultTestParams, | 601 TestEvent(kDefaultTestParams, |
| 594 new OmahaEvent(OmahaEvent::kTypeDownloadComplete, | 602 new OmahaEvent(OmahaEvent::kTypeDownloadComplete, |
| 595 OmahaEvent::kResultError, | 603 OmahaEvent::kResultError, |
| 596 kActionCodeError), | 604 kActionCodeError), |
| 597 "invalid xml>", | 605 "invalid xml>", |
| 598 &post_data); | 606 &post_data, |
| 607 200); |
| 599 // convert post_data to string | 608 // convert post_data to string |
| 600 string post_str(&post_data[0], post_data.size()); | 609 string post_str(&post_data[0], post_data.size()); |
| 601 string expected_event = StringPrintf( | 610 string expected_event = StringPrintf( |
| 602 " <o:event eventtype=\"%d\" eventresult=\"%d\" " | 611 " <o:event eventtype=\"%d\" eventresult=\"%d\" " |
| 603 "errorcode=\"%d\"></o:event>\n", | 612 "errorcode=\"%d\"></o:event>\n", |
| 604 OmahaEvent::kTypeDownloadComplete, | 613 OmahaEvent::kTypeDownloadComplete, |
| 605 OmahaEvent::kResultError, | 614 OmahaEvent::kResultError, |
| 606 kActionCodeError); | 615 kActionCodeError); |
| 607 EXPECT_NE(post_str.find(expected_event), string::npos); | 616 EXPECT_NE(post_str.find(expected_event), string::npos); |
| 608 EXPECT_EQ(post_str.find("o:updatecheck"), string::npos); | 617 EXPECT_EQ(post_str.find("o:updatecheck"), string::npos); |
| 609 } | 618 } |
| 610 | 619 |
| 611 TEST(OmahaRequestActionTest, FormatEventOutputTest) { | 620 TEST(OmahaRequestActionTest, FormatEventOutputTest) { |
| 612 vector<char> post_data; | 621 vector<char> post_data; |
| 613 TestEvent(kDefaultTestParams, | 622 TestEvent(kDefaultTestParams, |
| 614 new OmahaEvent(OmahaEvent::kTypeDownloadComplete, | 623 new OmahaEvent(OmahaEvent::kTypeDownloadComplete, |
| 615 OmahaEvent::kResultError, | 624 OmahaEvent::kResultError, |
| 616 kActionCodeError), | 625 kActionCodeError), |
| 617 "invalid xml>", | 626 "invalid xml>", |
| 618 &post_data); | 627 &post_data, |
| 628 200); |
| 619 // convert post_data to string | 629 // convert post_data to string |
| 620 string post_str(&post_data[0], post_data.size()); | 630 string post_str(&post_data[0], post_data.size()); |
| 621 string expected_event = StringPrintf( | 631 string expected_event = StringPrintf( |
| 622 " <o:event eventtype=\"%d\" eventresult=\"%d\" " | 632 " <o:event eventtype=\"%d\" eventresult=\"%d\" " |
| 623 "errorcode=\"%d\"></o:event>\n", | 633 "errorcode=\"%d\"></o:event>\n", |
| 624 OmahaEvent::kTypeDownloadComplete, | 634 OmahaEvent::kTypeDownloadComplete, |
| 625 OmahaEvent::kResultError, | 635 OmahaEvent::kResultError, |
| 626 kActionCodeError); | 636 kActionCodeError); |
| 627 EXPECT_NE(post_str.find(expected_event), string::npos); | 637 EXPECT_NE(post_str.find(expected_event), string::npos); |
| 628 EXPECT_EQ(post_str.find("o:updatecheck"), string::npos); | 638 EXPECT_EQ(post_str.find("o:updatecheck"), string::npos); |
| 629 } | 639 } |
| 630 | 640 |
| 641 TEST(OmahaRequestActionTest, EventFailureTest) { |
| 642 vector<char> post_data; |
| 643 TestEvent(kDefaultTestParams, |
| 644 new OmahaEvent(OmahaEvent::kTypeUpdateDownloadStarted), |
| 645 "foo", |
| 646 NULL, |
| 647 500); |
| 648 } |
| 649 |
| 631 TEST(OmahaRequestActionTest, IsEventTest) { | 650 TEST(OmahaRequestActionTest, IsEventTest) { |
| 632 string http_response("doesn't matter"); | 651 string http_response("doesn't matter"); |
| 633 NiceMock<PrefsMock> prefs; | 652 NiceMock<PrefsMock> prefs; |
| 634 OmahaRequestAction update_check_action( | 653 OmahaRequestAction update_check_action( |
| 635 &prefs, | 654 &prefs, |
| 636 kDefaultTestParams, | 655 kDefaultTestParams, |
| 637 NULL, | 656 NULL, |
| 638 new MockHttpFetcher(http_response.data(), | 657 new MockHttpFetcher(http_response.data(), |
| 639 http_response.size(), | 658 http_response.size(), |
| 640 NULL)); | 659 NULL)); |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 923 "", | 942 "", |
| 924 1500, | 943 1500, |
| 925 static_cast<ActionExitCode>( | 944 static_cast<ActionExitCode>( |
| 926 kActionCodeOmahaRequestHTTPResponseBase + 999), | 945 kActionCodeOmahaRequestHTTPResponseBase + 999), |
| 927 &response, | 946 &response, |
| 928 NULL)); | 947 NULL)); |
| 929 EXPECT_FALSE(response.update_exists); | 948 EXPECT_FALSE(response.update_exists); |
| 930 } | 949 } |
| 931 | 950 |
| 932 } // namespace chromeos_update_engine | 951 } // namespace chromeos_update_engine |
| OLD | NEW |