OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/local_discovery/privet_local_printer_lister.h" | 5 #include "chrome/browser/local_discovery/privet_local_printer_lister.h" |
6 | 6 |
| 7 #include <stddef.h> |
| 8 #include <stdint.h> |
| 9 |
7 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
8 #include "base/thread_task_runner_handle.h" | 11 #include "base/thread_task_runner_handle.h" |
9 #include "chrome/browser/local_discovery/test_service_discovery_client.h" | 12 #include "chrome/browser/local_discovery/test_service_discovery_client.h" |
10 #include "content/public/test/test_browser_thread_bundle.h" | 13 #include "content/public/test/test_browser_thread_bundle.h" |
11 #include "net/url_request/test_url_fetcher_factory.h" | 14 #include "net/url_request/test_url_fetcher_factory.h" |
12 #include "net/url_request/url_request_test_util.h" | 15 #include "net/url_request/url_request_test_util.h" |
13 #include "testing/gmock/include/gmock/gmock.h" | 16 #include "testing/gmock/include/gmock/gmock.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
15 | 18 |
16 using testing::StrictMock; | 19 using testing::StrictMock; |
17 using testing::AtLeast; | 20 using testing::AtLeast; |
18 using testing::_; | 21 using testing::_; |
19 | 22 |
20 namespace local_discovery { | 23 namespace local_discovery { |
21 | 24 |
22 namespace { | 25 namespace { |
23 | 26 |
24 const uint8 kAnnouncePacket[] = { | 27 const uint8_t kAnnouncePacket[] = { |
25 // Header | 28 // Header |
26 0x00, 0x00, // ID is zeroed out | 29 0x00, 0x00, // ID is zeroed out |
27 0x80, 0x00, // Standard query response, no error | 30 0x80, 0x00, // Standard query response, no error |
28 0x00, 0x00, // No questions (for simplicity) | 31 0x00, 0x00, // No questions (for simplicity) |
29 0x00, 0x05, // 5 RR (answers) | 32 0x00, 0x05, // 5 RR (answers) |
30 0x00, 0x00, // 0 authority RRs | 33 0x00, 0x00, // 0 authority RRs |
31 0x00, 0x00, // 0 additional RRs | 34 0x00, 0x00, // 0 additional RRs |
32 0x07, '_', 'p', 'r', 'i', 'v', 'e', 't', 0x04, '_', | 35 0x07, '_', 'p', 'r', 'i', 'v', 'e', 't', 0x04, '_', |
33 't', 'c', 'p', 0x05, 'l', 'o', 'c', 'a', 'l', 0x00, | 36 't', 'c', 'p', 0x05, 'l', 'o', 'c', 'a', 'l', 0x00, |
34 0x00, 0x0c, // TYPE is PTR. | 37 0x00, 0x0c, // TYPE is PTR. |
(...skipping 27 matching lines...) Expand all Loading... |
62 0x00, 0x00, // TTL (4 bytes) is 32768 second. | 65 0x00, 0x00, // TTL (4 bytes) is 32768 second. |
63 0x10, 0x00, 0x00, 0x04, // RDLENGTH is 4 | 66 0x10, 0x00, 0x00, 0x04, // RDLENGTH is 4 |
64 0x01, 0x02, 0x03, 0x04, // 1.2.3.4 | 67 0x01, 0x02, 0x03, 0x04, // 1.2.3.4 |
65 0x09, 'm', 'y', 'S', 'e', 'r', 'v', 'i', 'c', 'e', | 68 0x09, 'm', 'y', 'S', 'e', 'r', 'v', 'i', 'c', 'e', |
66 0x05, 'l', 'o', 'c', 'a', 'l', 0x00, 0x00, 0x1C, // Type is AAAA | 69 0x05, 'l', 'o', 'c', 'a', 'l', 0x00, 0x00, 0x1C, // Type is AAAA |
67 0x00, 0x01, // CLASS is IN | 70 0x00, 0x01, // CLASS is IN |
68 0x00, 0x00, // TTL (4 bytes) is 32768 second. | 71 0x00, 0x00, // TTL (4 bytes) is 32768 second. |
69 0x10, 0x00, 0x00, 0x10, // RDLENGTH is 16 | 72 0x10, 0x00, 0x00, 0x10, // RDLENGTH is 16 |
70 0x01, 0x02, 0x03, 0x04, // 1.2.3.4 | 73 0x01, 0x02, 0x03, 0x04, // 1.2.3.4 |
71 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, | 74 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, |
72 0x03, 0x04, }; | 75 0x03, 0x04, |
| 76 }; |
73 | 77 |
74 const char kInfoIsLocalPrinter[] = "{" | 78 const char kInfoIsLocalPrinter[] = "{" |
75 "\"api\" : [ \"/privet/printer/submitdoc\" ]," | 79 "\"api\" : [ \"/privet/printer/submitdoc\" ]," |
76 "\"x-privet-token\" : \"sample\"" | 80 "\"x-privet-token\" : \"sample\"" |
77 "}"; | 81 "}"; |
78 | 82 |
79 const char kInfoIsNotLocalPrinter[] = "{" | 83 const char kInfoIsNotLocalPrinter[] = "{" |
80 "\"api\" : [ \"/privet/register\" ]," | 84 "\"api\" : [ \"/privet/register\" ]," |
81 "\"x-privet-token\" : \"sample\"" | 85 "\"x-privet-token\" : \"sample\"" |
82 "}"; | 86 "}"; |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 return false; | 134 return false; |
131 | 135 |
132 fetcher->SetResponseString(response); | 136 fetcher->SetResponseString(response); |
133 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS, | 137 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS, |
134 net::OK)); | 138 net::OK)); |
135 fetcher->set_response_code(200); | 139 fetcher->set_response_code(200); |
136 fetcher->delegate()->OnURLFetchComplete(fetcher); | 140 fetcher->delegate()->OnURLFetchComplete(fetcher); |
137 return true; | 141 return true; |
138 } | 142 } |
139 | 143 |
140 void SimulateReceive(const uint8* packet, size_t size) { | 144 void SimulateReceive(const uint8_t* packet, size_t size) { |
141 test_service_discovery_client_->SimulateReceive(packet, size); | 145 test_service_discovery_client_->SimulateReceive(packet, size); |
142 base::RunLoop().RunUntilIdle(); | 146 base::RunLoop().RunUntilIdle(); |
143 } | 147 } |
144 | 148 |
145 void ExpectAnyPacket() { | 149 void ExpectAnyPacket() { |
146 EXPECT_CALL(*test_service_discovery_client_.get(), OnSendTo(_)) | 150 EXPECT_CALL(*test_service_discovery_client_.get(), OnSendTo(_)) |
147 .Times(AtLeast(2)); | 151 .Times(AtLeast(2)); |
148 } | 152 } |
149 | 153 |
150 protected: | 154 protected: |
(...skipping 29 matching lines...) Expand all Loading... |
180 EXPECT_CALL(delegate_, LocalPrinterChanged(true, kServiceName, false, _)); | 184 EXPECT_CALL(delegate_, LocalPrinterChanged(true, kServiceName, false, _)); |
181 | 185 |
182 EXPECT_TRUE(SuccessfulResponseToURL( | 186 EXPECT_TRUE(SuccessfulResponseToURL( |
183 GURL(kPrivetInfoURL), | 187 GURL(kPrivetInfoURL), |
184 std::string(kInfoIsNotLocalPrinter))); | 188 std::string(kInfoIsNotLocalPrinter))); |
185 }; | 189 }; |
186 | 190 |
187 } // namespace | 191 } // namespace |
188 | 192 |
189 } // namespace local_discovery | 193 } // namespace local_discovery |
OLD | NEW |