| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/gcm_driver/gcm_driver_desktop.h" | 5 #include "components/gcm_driver/gcm_driver_desktop.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 807 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 | 818 |
| 819 Unregister(kTestAppID1, GCMDriverTest::WAIT); | 819 Unregister(kTestAppID1, GCMDriverTest::WAIT); |
| 820 | 820 |
| 821 EXPECT_EQ(GCMClient::SUCCESS, unregistration_result()); | 821 EXPECT_EQ(GCMClient::SUCCESS, unregistration_result()); |
| 822 } | 822 } |
| 823 | 823 |
| 824 TEST_F(GCMDriverFunctionalTest, UnregisterWhenAsyncOperationPending) { | 824 TEST_F(GCMDriverFunctionalTest, UnregisterWhenAsyncOperationPending) { |
| 825 std::vector<std::string> sender_ids; | 825 std::vector<std::string> sender_ids; |
| 826 sender_ids.push_back("sender1"); | 826 sender_ids.push_back("sender1"); |
| 827 // First start registration without waiting for it to complete. | 827 // First start registration without waiting for it to complete. |
| 828 Register(kTestAppID1, | 828 Register(kTestAppID1, sender_ids, GCMDriverTest::DO_NOT_WAIT); |
| 829 sender_ids, | |
| 830 GCMDriverTest::DO_NOT_WAIT); | |
| 831 | 829 |
| 832 // Test that unregistration fails with async operation pending when there is a | 830 // Test that unregistration fails with async operation pending when there is a |
| 833 // registration already in progress. | 831 // registration already in progress. |
| 834 Unregister(kTestAppID1, GCMDriverTest::WAIT); | 832 Unregister(kTestAppID1, GCMDriverTest::WAIT); |
| 835 EXPECT_EQ(GCMClient::ASYNC_OPERATION_PENDING, | 833 EXPECT_EQ(GCMClient::ASYNC_OPERATION_PENDING, |
| 836 unregistration_result()); | 834 unregistration_result()); |
| 837 | 835 |
| 838 // Complete the unregistration. | 836 // Complete the unregistration. |
| 839 WaitForAsyncOperation(); | 837 WaitForAsyncOperation(); |
| 840 EXPECT_EQ(GCMClient::SUCCESS, registration_result()); | 838 EXPECT_EQ(GCMClient::SUCCESS, registration_result()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 852 | 850 |
| 853 // Complete unregistration. | 851 // Complete unregistration. |
| 854 WaitForAsyncOperation(); | 852 WaitForAsyncOperation(); |
| 855 EXPECT_EQ(GCMClient::SUCCESS, unregistration_result()); | 853 EXPECT_EQ(GCMClient::SUCCESS, unregistration_result()); |
| 856 } | 854 } |
| 857 | 855 |
| 858 TEST_F(GCMDriverFunctionalTest, RegisterWhenAsyncOperationPending) { | 856 TEST_F(GCMDriverFunctionalTest, RegisterWhenAsyncOperationPending) { |
| 859 std::vector<std::string> sender_ids; | 857 std::vector<std::string> sender_ids; |
| 860 sender_ids.push_back("sender1"); | 858 sender_ids.push_back("sender1"); |
| 861 // First start registration without waiting for it to complete. | 859 // First start registration without waiting for it to complete. |
| 862 Register(kTestAppID1, | 860 Register(kTestAppID1, sender_ids, GCMDriverTest::DO_NOT_WAIT); |
| 863 sender_ids, | |
| 864 GCMDriverTest::DO_NOT_WAIT); | |
| 865 | 861 |
| 866 // Test that registration fails with async operation pending when there is a | 862 // Test that registration fails with async operation pending when there is a |
| 867 // registration already in progress. | 863 // registration already in progress. |
| 868 Register(kTestAppID1, sender_ids, GCMDriverTest::WAIT); | 864 Register(kTestAppID1, sender_ids, GCMDriverTest::WAIT); |
| 869 EXPECT_EQ(GCMClient::ASYNC_OPERATION_PENDING, | 865 EXPECT_EQ(GCMClient::ASYNC_OPERATION_PENDING, |
| 870 registration_result()); | 866 registration_result()); |
| 871 ClearResults(); | 867 ClearResults(); |
| 872 | 868 |
| 873 // Complete the registration. | 869 // Complete the registration. |
| 874 WaitForAsyncOperation(); | 870 WaitForAsyncOperation(); |
| 875 EXPECT_EQ(GCMClient::SUCCESS, registration_result()); | 871 EXPECT_EQ(GCMClient::SUCCESS, registration_result()); |
| 872 } |
| 876 | 873 |
| 877 // Start unregistration without waiting for it to complete. This time no async | 874 TEST_F(GCMDriverFunctionalTest, RegisterAfterUnfinishedUnregister) { |
| 878 // operation is pending. | 875 // Register and wait for it to complete. |
| 876 std::vector<std::string> sender_ids; |
| 877 sender_ids.push_back("sender1"); |
| 878 Register(kTestAppID1, sender_ids, GCMDriverTest::WAIT); |
| 879 EXPECT_EQ(GCMClient::SUCCESS, registration_result()); |
| 880 EXPECT_EQ(GetGCMClient()->GetRegistrationIdFromSenderIds(sender_ids), |
| 881 registration_id()); |
| 882 |
| 883 // Clears the results the would be set by the Register callback in preparation |
| 884 // to call register 2nd time. |
| 885 ClearResults(); |
| 886 |
| 887 // Start unregistration without waiting for it to complete. |
| 879 Unregister(kTestAppID1, GCMDriverTest::DO_NOT_WAIT); | 888 Unregister(kTestAppID1, GCMDriverTest::DO_NOT_WAIT); |
| 880 | 889 |
| 881 // Test that registration fails with async operation pending when there is an | 890 // Register immeidately after unregistration is not completed. |
| 882 // unregistration already in progress. | 891 sender_ids.push_back("sender2"); |
| 883 Register(kTestAppID1, sender_ids, GCMDriverTest::WAIT); | 892 Register(kTestAppID1, sender_ids, GCMDriverTest::WAIT); |
| 884 EXPECT_EQ(GCMClient::ASYNC_OPERATION_PENDING, | |
| 885 registration_result()); | |
| 886 | 893 |
| 887 // Complete the first unregistration expecting success. | 894 // We need one more waiting since the waiting in Register is indeed for |
| 895 // uncompleted Unregister. |
| 888 WaitForAsyncOperation(); | 896 WaitForAsyncOperation(); |
| 889 EXPECT_EQ(GCMClient::SUCCESS, unregistration_result()); | |
| 890 | |
| 891 // Test that it is ok to register again after unregistration. | |
| 892 Register(kTestAppID1, sender_ids, GCMDriverTest::WAIT); | |
| 893 EXPECT_EQ(GCMClient::SUCCESS, registration_result()); | 897 EXPECT_EQ(GCMClient::SUCCESS, registration_result()); |
| 898 EXPECT_EQ(GetGCMClient()->GetRegistrationIdFromSenderIds(sender_ids), |
| 899 registration_id()); |
| 894 } | 900 } |
| 895 | 901 |
| 896 TEST_F(GCMDriverFunctionalTest, Send) { | 902 TEST_F(GCMDriverFunctionalTest, Send) { |
| 897 GCMClient::OutgoingMessage message; | 903 GCMClient::OutgoingMessage message; |
| 898 message.id = "1@ack"; | 904 message.id = "1@ack"; |
| 899 message.data["key1"] = "value1"; | 905 message.data["key1"] = "value1"; |
| 900 message.data["key2"] = "value2"; | 906 message.data["key2"] = "value2"; |
| 901 Send(kTestAppID1, kUserID1, message, GCMDriverTest::WAIT); | 907 Send(kTestAppID1, kUserID1, message, GCMDriverTest::WAIT); |
| 902 | 908 |
| 903 EXPECT_EQ(message.id, send_message_id()); | 909 EXPECT_EQ(message.id, send_message_id()); |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1238 // After start-up, the request should still be scheduled at the expected | 1244 // After start-up, the request should still be scheduled at the expected |
| 1239 // updated interval. | 1245 // updated interval. |
| 1240 actual_delay_seconds = | 1246 actual_delay_seconds = |
| 1241 syncer()->current_request_delay_interval().InSeconds(); | 1247 syncer()->current_request_delay_interval().InSeconds(); |
| 1242 EXPECT_TRUE(CompareDelaySeconds(expected_delay_seconds, actual_delay_seconds)) | 1248 EXPECT_TRUE(CompareDelaySeconds(expected_delay_seconds, actual_delay_seconds)) |
| 1243 << "expected delay: " << expected_delay_seconds | 1249 << "expected delay: " << expected_delay_seconds |
| 1244 << " actual delay: " << actual_delay_seconds; | 1250 << " actual delay: " << actual_delay_seconds; |
| 1245 } | 1251 } |
| 1246 | 1252 |
| 1247 } // namespace gcm | 1253 } // namespace gcm |
| OLD | NEW |