OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef NET_DNS_DNS_TEST_UTIL_H_ | 5 #ifndef NET_DNS_DNS_TEST_UTIL_H_ |
6 #define NET_DNS_DNS_TEST_UTIL_H_ | 6 #define NET_DNS_DNS_TEST_UTIL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 #include "net/dns/dns_client.h" | 13 #include "net/dns/dns_client.h" |
14 #include "net/dns/dns_config_service.h" | 14 #include "net/dns/dns_config_service.h" |
15 #include "net/dns/dns_protocol.h" | 15 #include "net/dns/dns_protocol.h" |
16 | 16 |
17 namespace net { | 17 namespace net { |
18 | 18 |
19 //----------------------------------------------------------------------------- | 19 //----------------------------------------------------------------------------- |
20 // Query/response set for www.google.com, ID is fixed to 0. | 20 // Query/response set for www.google.com, ID is fixed to 0. |
21 static const char kT0HostName[] = "www.google.com"; | 21 static const char kT0HostName[] = "www.google.com"; |
22 static const uint16 kT0Qtype = dns_protocol::kTypeA; | 22 static const uint16 kT0Qtype = dns_protocol::kTypeA; |
23 static const char kT0DnsName[] = { | 23 static const char kT0DnsName[] = {0x03, 'w', 'w', 'w', 0x06, 'g', 'o', 'o', |
24 0x03, 'w', 'w', 'w', | 24 'g', 'l', 'e', 0x03, 'c', 'o', 'm', 0x00}; |
25 0x06, 'g', 'o', 'o', 'g', 'l', 'e', | |
26 0x03, 'c', 'o', 'm', | |
27 0x00 | |
28 }; | |
29 static const size_t kT0QuerySize = 32; | 25 static const size_t kT0QuerySize = 32; |
30 static const uint8 kT0ResponseDatagram[] = { | 26 static const uint8 kT0ResponseDatagram[] = { |
31 // response contains one CNAME for www.l.google.com and the following | 27 // response contains one CNAME for www.l.google.com and the following |
32 // IP addresses: 74.125.226.{179,180,176,177,178} | 28 // IP addresses: 74.125.226.{179,180,176,177,178} |
33 0x00, 0x00, 0x81, 0x80, 0x00, 0x01, 0x00, 0x06, | 29 0x00, 0x00, 0x81, 0x80, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, |
34 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x77, 0x77, | 30 0x03, 0x77, 0x77, 0x77, 0x06, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x03, |
35 0x06, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x03, | 31 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x01, 0x00, 0x01, 0xc0, 0x0c, 0x00, 0x05, |
36 0x63, 0x6f, 0x6d, 0x00, 0x00, 0x01, 0x00, 0x01, | 32 0x00, 0x01, 0x00, 0x01, 0x4d, 0x13, 0x00, 0x08, 0x03, 0x77, 0x77, 0x77, |
37 0xc0, 0x0c, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, | 33 0x01, 0x6c, 0xc0, 0x10, 0xc0, 0x2c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, |
38 0x4d, 0x13, 0x00, 0x08, 0x03, 0x77, 0x77, 0x77, | 34 0x00, 0xe4, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb3, 0xc0, 0x2c, 0x00, 0x01, |
39 0x01, 0x6c, 0xc0, 0x10, 0xc0, 0x2c, 0x00, 0x01, | 35 0x00, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb4, |
40 0x00, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x04, | 36 0xc0, 0x2c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x04, |
41 0x4a, 0x7d, 0xe2, 0xb3, 0xc0, 0x2c, 0x00, 0x01, | 37 0x4a, 0x7d, 0xe2, 0xb0, 0xc0, 0x2c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, |
42 0x00, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x04, | 38 0x00, 0xe4, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb1, 0xc0, 0x2c, 0x00, 0x01, |
43 0x4a, 0x7d, 0xe2, 0xb4, 0xc0, 0x2c, 0x00, 0x01, | 39 0x00, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb2}; |
44 0x00, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x04, | 40 static const char* const kT0IpAddresses[] = {"74.125.226.179", "74.125.226.180", |
45 0x4a, 0x7d, 0xe2, 0xb0, 0xc0, 0x2c, 0x00, 0x01, | 41 "74.125.226.176", "74.125.226.177", |
46 0x00, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x04, | 42 "74.125.226.178"}; |
47 0x4a, 0x7d, 0xe2, 0xb1, 0xc0, 0x2c, 0x00, 0x01, | |
48 0x00, 0x01, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x04, | |
49 0x4a, 0x7d, 0xe2, 0xb2 | |
50 }; | |
51 static const char* const kT0IpAddresses[] = { | |
52 "74.125.226.179", "74.125.226.180", "74.125.226.176", | |
53 "74.125.226.177", "74.125.226.178" | |
54 }; | |
55 static const char kT0CanonName[] = "www.l.google.com"; | 43 static const char kT0CanonName[] = "www.l.google.com"; |
56 static const int kT0TTL = 0x000000e4; | 44 static const int kT0TTL = 0x000000e4; |
57 // +1 for the CNAME record. | 45 // +1 for the CNAME record. |
58 static const unsigned kT0RecordCount = arraysize(kT0IpAddresses) + 1; | 46 static const unsigned kT0RecordCount = arraysize(kT0IpAddresses) + 1; |
59 | 47 |
60 //----------------------------------------------------------------------------- | 48 //----------------------------------------------------------------------------- |
61 // Query/response set for codereview.chromium.org, ID is fixed to 1. | 49 // Query/response set for codereview.chromium.org, ID is fixed to 1. |
62 static const char kT1HostName[] = "codereview.chromium.org"; | 50 static const char kT1HostName[] = "codereview.chromium.org"; |
63 static const uint16 kT1Qtype = dns_protocol::kTypeA; | 51 static const uint16 kT1Qtype = dns_protocol::kTypeA; |
64 static const char kT1DnsName[] = { | 52 static const char kT1DnsName[] = {0x0a, 'c', 'o', 'd', 'e', 'r', 'e', 'v', 'i', |
65 0x0a, 'c', 'o', 'd', 'e', 'r', 'e', 'v', 'i', 'e', 'w', | 53 'e', 'w', 0x08, 'c', 'h', 'r', 'o', 'm', 'i', |
66 0x08, 'c', 'h', 'r', 'o', 'm', 'i', 'u', 'm', | 54 'u', 'm', 0x03, 'o', 'r', 'g', 0x00}; |
67 0x03, 'o', 'r', 'g', | |
68 0x00 | |
69 }; | |
70 static const size_t kT1QuerySize = 41; | 55 static const size_t kT1QuerySize = 41; |
71 static const uint8 kT1ResponseDatagram[] = { | 56 static const uint8 kT1ResponseDatagram[] = { |
72 // response contains one CNAME for ghs.l.google.com and the following | 57 // response contains one CNAME for ghs.l.google.com and the following |
73 // IP address: 64.233.169.121 | 58 // IP address: 64.233.169.121 |
74 0x00, 0x01, 0x81, 0x80, 0x00, 0x01, 0x00, 0x02, | 59 0x00, 0x01, 0x81, 0x80, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, |
75 0x00, 0x00, 0x00, 0x00, 0x0a, 0x63, 0x6f, 0x64, | 60 0x00, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x65, 0x76, 0x69, 0x65, |
76 0x65, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x08, | 61 0x77, 0x08, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x03, |
77 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, | 62 0x6f, 0x72, 0x67, 0x00, 0x00, 0x01, 0x00, 0x01, 0xc0, 0x0c, 0x00, |
78 0x03, 0x6f, 0x72, 0x67, 0x00, 0x00, 0x01, 0x00, | 63 0x05, 0x00, 0x01, 0x00, 0x01, 0x41, 0x75, 0x00, 0x12, 0x03, 0x67, |
79 0x01, 0xc0, 0x0c, 0x00, 0x05, 0x00, 0x01, 0x00, | 64 0x68, 0x73, 0x01, 0x6c, 0x06, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
80 0x01, 0x41, 0x75, 0x00, 0x12, 0x03, 0x67, 0x68, | 65 0x03, 0x63, 0x6f, 0x6d, 0x00, 0xc0, 0x35, 0x00, 0x01, 0x00, 0x01, |
81 0x73, 0x01, 0x6c, 0x06, 0x67, 0x6f, 0x6f, 0x67, | 66 0x00, 0x00, 0x01, 0x0b, 0x00, 0x04, 0x40, 0xe9, 0xa9, 0x79}; |
82 0x6c, 0x65, 0x03, 0x63, 0x6f, 0x6d, 0x00, 0xc0, | 67 static const char* const kT1IpAddresses[] = {"64.233.169.121"}; |
83 0x35, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, | |
84 0x0b, 0x00, 0x04, 0x40, 0xe9, 0xa9, 0x79 | |
85 }; | |
86 static const char* const kT1IpAddresses[] = { | |
87 "64.233.169.121" | |
88 }; | |
89 static const char kT1CanonName[] = "ghs.l.google.com"; | 68 static const char kT1CanonName[] = "ghs.l.google.com"; |
90 static const int kT1TTL = 0x0000010b; | 69 static const int kT1TTL = 0x0000010b; |
91 // +1 for the CNAME record. | 70 // +1 for the CNAME record. |
92 static const unsigned kT1RecordCount = arraysize(kT1IpAddresses) + 1; | 71 static const unsigned kT1RecordCount = arraysize(kT1IpAddresses) + 1; |
93 | 72 |
94 //----------------------------------------------------------------------------- | 73 //----------------------------------------------------------------------------- |
95 // Query/response set for www.ccs.neu.edu, ID is fixed to 2. | 74 // Query/response set for www.ccs.neu.edu, ID is fixed to 2. |
96 static const char kT2HostName[] = "www.ccs.neu.edu"; | 75 static const char kT2HostName[] = "www.ccs.neu.edu"; |
97 static const uint16 kT2Qtype = dns_protocol::kTypeA; | 76 static const uint16 kT2Qtype = dns_protocol::kTypeA; |
98 static const char kT2DnsName[] = { | 77 static const char kT2DnsName[] = {0x03, 'w', 'w', 'w', 0x03, 'c', |
99 0x03, 'w', 'w', 'w', | 78 'c', 's', 0x03, 'n', 'e', 'u', |
100 0x03, 'c', 'c', 's', | 79 0x03, 'e', 'd', 'u', 0x00}; |
101 0x03, 'n', 'e', 'u', | |
102 0x03, 'e', 'd', 'u', | |
103 0x00 | |
104 }; | |
105 static const size_t kT2QuerySize = 33; | 80 static const size_t kT2QuerySize = 33; |
106 static const uint8 kT2ResponseDatagram[] = { | 81 static const uint8 kT2ResponseDatagram[] = { |
107 // response contains one CNAME for vulcan.ccs.neu.edu and the following | 82 // response contains one CNAME for vulcan.ccs.neu.edu and the following |
108 // IP address: 129.10.116.81 | 83 // IP address: 129.10.116.81 |
109 0x00, 0x02, 0x81, 0x80, 0x00, 0x01, 0x00, 0x02, | 84 0x00, 0x02, 0x81, 0x80, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, |
110 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x77, 0x77, | 85 0x03, 0x77, 0x77, 0x77, 0x03, 0x63, 0x63, 0x73, 0x03, 0x6e, 0x65, 0x75, |
111 0x03, 0x63, 0x63, 0x73, 0x03, 0x6e, 0x65, 0x75, | 86 0x03, 0x65, 0x64, 0x75, 0x00, 0x00, 0x01, 0x00, 0x01, 0xc0, 0x0c, 0x00, |
112 0x03, 0x65, 0x64, 0x75, 0x00, 0x00, 0x01, 0x00, | 87 0x05, 0x00, 0x01, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x09, 0x06, 0x76, 0x75, |
113 0x01, 0xc0, 0x0c, 0x00, 0x05, 0x00, 0x01, 0x00, | 88 0x6c, 0x63, 0x61, 0x6e, 0xc0, 0x10, 0xc0, 0x2d, 0x00, 0x01, 0x00, 0x01, |
114 0x00, 0x01, 0x2c, 0x00, 0x09, 0x06, 0x76, 0x75, | 89 0x00, 0x00, 0x01, 0x2c, 0x00, 0x04, 0x81, 0x0a, 0x74, 0x51}; |
115 0x6c, 0x63, 0x61, 0x6e, 0xc0, 0x10, 0xc0, 0x2d, | 90 static const char* const kT2IpAddresses[] = {"129.10.116.81"}; |
116 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x2c, | |
117 0x00, 0x04, 0x81, 0x0a, 0x74, 0x51 | |
118 }; | |
119 static const char* const kT2IpAddresses[] = { | |
120 "129.10.116.81" | |
121 }; | |
122 static const char kT2CanonName[] = "vulcan.ccs.neu.edu"; | 91 static const char kT2CanonName[] = "vulcan.ccs.neu.edu"; |
123 static const int kT2TTL = 0x0000012c; | 92 static const int kT2TTL = 0x0000012c; |
124 // +1 for the CNAME record. | 93 // +1 for the CNAME record. |
125 static const unsigned kT2RecordCount = arraysize(kT2IpAddresses) + 1; | 94 static const unsigned kT2RecordCount = arraysize(kT2IpAddresses) + 1; |
126 | 95 |
127 //----------------------------------------------------------------------------- | 96 //----------------------------------------------------------------------------- |
128 // Query/response set for www.google.az, ID is fixed to 3. | 97 // Query/response set for www.google.az, ID is fixed to 3. |
129 static const char kT3HostName[] = "www.google.az"; | 98 static const char kT3HostName[] = "www.google.az"; |
130 static const uint16 kT3Qtype = dns_protocol::kTypeA; | 99 static const uint16 kT3Qtype = dns_protocol::kTypeA; |
131 static const char kT3DnsName[] = { | 100 static const char kT3DnsName[] = {0x03, 'w', 'w', 'w', 0x06, 'g', 'o', 'o', |
132 0x03, 'w', 'w', 'w', | 101 'g', 'l', 'e', 0x02, 'a', 'z', 0x00}; |
133 0x06, 'g', 'o', 'o', 'g', 'l', 'e', | |
134 0x02, 'a', 'z', | |
135 0x00 | |
136 }; | |
137 static const size_t kT3QuerySize = 31; | 102 static const size_t kT3QuerySize = 31; |
138 static const uint8 kT3ResponseDatagram[] = { | 103 static const uint8 kT3ResponseDatagram[] = { |
139 // response contains www.google.com as CNAME for www.google.az and | 104 // response contains www.google.com as CNAME for www.google.az and |
140 // www.l.google.com as CNAME for www.google.com and the following | 105 // www.l.google.com as CNAME for www.google.com and the following |
141 // IP addresses: 74.125.226.{178,179,180,176,177} | 106 // IP addresses: 74.125.226.{178,179,180,176,177} |
142 // The TTLs on the records are: 0x00015099, 0x00025099, 0x00000415, | 107 // The TTLs on the records are: 0x00015099, 0x00025099, 0x00000415, |
143 // 0x00003015, 0x00002015, 0x00000015, 0x00001015. | 108 // 0x00003015, 0x00002015, 0x00000015, 0x00001015. |
144 // The last record is an imaginary TXT record for t.google.com. | 109 // The last record is an imaginary TXT record for t.google.com. |
145 0x00, 0x03, 0x81, 0x80, 0x00, 0x01, 0x00, 0x08, | 110 0x00, 0x03, 0x81, 0x80, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, |
146 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x77, 0x77, | 111 0x03, 0x77, 0x77, 0x77, 0x06, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x02, |
147 0x06, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x02, | 112 0x61, 0x7a, 0x00, 0x00, 0x01, 0x00, 0x01, 0xc0, 0x0c, 0x00, 0x05, 0x00, |
148 0x61, 0x7a, 0x00, 0x00, 0x01, 0x00, 0x01, 0xc0, | 113 0x01, 0x00, 0x01, 0x50, 0x99, 0x00, 0x10, 0x03, 0x77, 0x77, 0x77, 0x06, |
149 0x0c, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x50, | 114 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x03, 0x63, 0x6f, 0x6d, 0x00, 0xc0, |
150 0x99, 0x00, 0x10, 0x03, 0x77, 0x77, 0x77, 0x06, | 115 0x2b, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x50, 0x99, 0x00, 0x08, 0x03, |
151 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x03, 0x63, | 116 0x77, 0x77, 0x77, 0x01, 0x6c, 0xc0, 0x2f, 0xc0, 0x47, 0x00, 0x01, 0x00, |
152 0x6f, 0x6d, 0x00, 0xc0, 0x2b, 0x00, 0x05, 0x00, | 117 0x01, 0x00, 0x00, 0x04, 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb2, 0xc0, |
153 0x01, 0x00, 0x02, 0x50, 0x99, 0x00, 0x08, 0x03, | 118 0x47, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x30, 0x15, 0x00, 0x04, 0x4a, |
154 0x77, 0x77, 0x77, 0x01, 0x6c, 0xc0, 0x2f, 0xc0, | 119 0x7d, 0xe2, 0xb3, 0xc0, 0x47, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x20, |
155 0x47, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x04, | 120 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb4, 0xc0, 0x47, 0x00, 0x01, 0x00, |
156 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb2, 0xc0, | 121 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb0, 0xc0, |
157 0x47, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x30, | 122 0x47, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x10, 0x15, 0x00, 0x04, 0x4a, |
158 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb3, 0xc0, | 123 0x7d, 0xe2, 0xb1, 0x01, 0x74, 0xc0, 0x2f, 0x00, 0x10, 0x00, 0x01, 0x00, |
159 0x47, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x20, | 124 0x00, 0x00, 0x01, 0x00, 0x04, 0xde, 0xad, 0xfe, 0xed}; |
160 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb4, 0xc0, | 125 static const char* const kT3IpAddresses[] = {"74.125.226.178", "74.125.226.179", |
161 0x47, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, | 126 "74.125.226.180", "74.125.226.176", |
162 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb0, 0xc0, | 127 "74.125.226.177"}; |
163 0x47, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x10, | |
164 0x15, 0x00, 0x04, 0x4a, 0x7d, 0xe2, 0xb1, 0x01, | |
165 0x74, 0xc0, 0x2f, 0x00, 0x10, 0x00, 0x01, 0x00, | |
166 0x00, 0x00, 0x01, 0x00, 0x04, 0xde, 0xad, 0xfe, | |
167 0xed | |
168 }; | |
169 static const char* const kT3IpAddresses[] = { | |
170 "74.125.226.178", "74.125.226.179", "74.125.226.180", | |
171 "74.125.226.176", "74.125.226.177" | |
172 }; | |
173 static const char kT3CanonName[] = "www.l.google.com"; | 128 static const char kT3CanonName[] = "www.l.google.com"; |
174 static const int kT3TTL = 0x00000015; | 129 static const int kT3TTL = 0x00000015; |
175 // +2 for the CNAME records, +1 for TXT record. | 130 // +2 for the CNAME records, +1 for TXT record. |
176 static const unsigned kT3RecordCount = arraysize(kT3IpAddresses) + 3; | 131 static const unsigned kT3RecordCount = arraysize(kT3IpAddresses) + 3; |
177 | 132 |
178 class AddressSorter; | 133 class AddressSorter; |
179 class DnsClient; | 134 class DnsClient; |
180 class MockTransactionFactory; | 135 class MockTransactionFactory; |
181 | 136 |
182 struct MockDnsClientRule { | 137 struct MockDnsClientRule { |
183 enum Result { | 138 enum Result { |
184 FAIL, // Fail asynchronously with ERR_NAME_NOT_RESOLVED. | 139 FAIL, // Fail asynchronously with ERR_NAME_NOT_RESOLVED. |
185 TIMEOUT, // Fail asynchronously with ERR_DNS_TIMEOUT. | 140 TIMEOUT, // Fail asynchronously with ERR_DNS_TIMEOUT. |
186 EMPTY, // Return an empty response. | 141 EMPTY, // Return an empty response. |
187 OK, // Return a response with loopback address. | 142 OK, // Return a response with loopback address. |
188 }; | 143 }; |
189 | 144 |
190 // If |delay| is true, matching transactions will be delayed until triggered | 145 // If |delay| is true, matching transactions will be delayed until triggered |
191 // by the consumer. | 146 // by the consumer. |
192 MockDnsClientRule(const std::string& prefix_arg, | 147 MockDnsClientRule(const std::string& prefix_arg, |
193 uint16 qtype_arg, | 148 uint16 qtype_arg, |
194 Result result_arg, | 149 Result result_arg, |
195 bool delay) | 150 bool delay) |
196 : result(result_arg), prefix(prefix_arg), qtype(qtype_arg), | 151 : result(result_arg), |
| 152 prefix(prefix_arg), |
| 153 qtype(qtype_arg), |
197 delay(delay) {} | 154 delay(delay) {} |
198 | 155 |
199 Result result; | 156 Result result; |
200 std::string prefix; | 157 std::string prefix; |
201 uint16 qtype; | 158 uint16 qtype; |
202 bool delay; | 159 bool delay; |
203 }; | 160 }; |
204 | 161 |
205 typedef std::vector<MockDnsClientRule> MockDnsClientRuleList; | 162 typedef std::vector<MockDnsClientRule> MockDnsClientRuleList; |
206 | 163 |
(...skipping 14 matching lines...) Expand all Loading... |
221 | 178 |
222 private: | 179 private: |
223 DnsConfig config_; | 180 DnsConfig config_; |
224 scoped_ptr<MockTransactionFactory> factory_; | 181 scoped_ptr<MockTransactionFactory> factory_; |
225 scoped_ptr<AddressSorter> address_sorter_; | 182 scoped_ptr<AddressSorter> address_sorter_; |
226 }; | 183 }; |
227 | 184 |
228 } // namespace net | 185 } // namespace net |
229 | 186 |
230 #endif // NET_DNS_DNS_TEST_UTIL_H_ | 187 #endif // NET_DNS_DNS_TEST_UTIL_H_ |
OLD | NEW |