Index: net/dns/record_parsed_unittest.cc |
diff --git a/net/dns/record_parsed_unittest.cc b/net/dns/record_parsed_unittest.cc |
index 593e553bf611fe5f7d3f4adc7775c0c6c21113f9..803b62c1b49c57d071469abf6069a8c305ff377d 100644 |
--- a/net/dns/record_parsed_unittest.cc |
+++ b/net/dns/record_parsed_unittest.cc |
@@ -52,6 +52,32 @@ TEST(RecordParsedTest, ParseSingleRecord) { |
ASSERT_TRUE(record->IsEqual(record.get(), true)); |
} |
+TEST(RecordParsedTest, Clone) { |
+ DnsRecordParser parser(kT1ResponseDatagram, sizeof(kT1ResponseDatagram), |
+ sizeof(dns_protocol::Header)); |
+ scoped_ptr<const RecordParsed> record; |
+ const CnameRecordRdata* rdata; |
+ |
+ parser.SkipQuestion(); |
+ record = RecordParsed::CreateFrom(&parser, base::Time()); |
+ EXPECT_TRUE(record.get() != NULL); |
+ |
+ scoped_ptr<const RecordParsed> record2; |
+ record2 = record->Clone(); |
+ |
+ record.reset(); |
+ |
+ ASSERT_EQ("codereview.chromium.org", record2->name()); |
+ ASSERT_EQ(dns_protocol::kTypeCNAME, record2->type()); |
+ ASSERT_EQ(dns_protocol::kClassIN, record2->klass()); |
+ |
+ rdata = record2->rdata<CnameRecordRdata>(); |
+ EXPECT_TRUE(rdata != NULL); |
+ ASSERT_EQ(kT1CanonName, rdata->cname()); |
+ |
+ ASSERT_FALSE(record2->rdata<SrvRecordRdata>()); |
+} |
+ |
TEST(RecordParsedTest, CacheFlushBitCompare) { |
DnsRecordParser parser1(kT1ResponseDatagram, sizeof(kT1ResponseDatagram), |
sizeof(dns_protocol::Header)); |
@@ -72,4 +98,4 @@ TEST(RecordParsedTest, CacheFlushBitCompare) { |
EXPECT_TRUE(record2->IsEqual(record1.get(), true)); |
} |
-} //namespace net |
+} // namespace net |