| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/ntp_snippets/ntp_snippet.h" | 5 #include "components/ntp_snippets/ntp_snippet.h" |
| 6 | 6 |
| 7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "testing/gmock/include/gmock/gmock.h" | 9 #include "testing/gmock/include/gmock/gmock.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 11 | 11 |
| 12 namespace ntp_snippets { | 12 namespace ntp_snippets { |
| 13 namespace { | 13 namespace { |
| 14 | 14 |
| 15 TEST(NTPSnippetTest, FromChromeContentSuggestionsDictionary) { | 15 TEST(NTPSnippetTest, FromChromeContentSuggestionsDictionary) { |
| 16 const std::string kJsonStr = | 16 const std::string kJsonStr = |
| 17 "{" | 17 "{" |
| 18 " \"id\" : [\"http://localhost/foobar\"]," | 18 " \"id\" : [\"http://localhost/foobar\"]," |
| 19 " \"title\" : \"Foo Barred from Baz\"," | 19 " \"title\" : \"Foo Barred from Baz\"," |
| 20 " \"summaryText\" : \"...\"," | 20 " \"summaryText\" : \"...\"," |
| 21 " \"fullPageUrl\" : \"http://localhost/foobar\"," | 21 " \"fullPageUrl\" : \"http://localhost/foobar\"," |
| 22 " \"publishTime\" : {" | 22 " \"publishTime\" : \"2016-06-30T11:01:37.000Z\"," |
| 23 " \"seconds\": 1466510682," | 23 " \"expirationTime\" : \"2016-07-01T11:01:37.000Z\"," |
| 24 " \"nanos\": 552743000 " | |
| 25 " }," | |
| 26 " \"expirationTime\" : {" | |
| 27 " \"seconds\" : 1466597082," | |
| 28 " \"nanos\" : 552743000 " | |
| 29 " }," | |
| 30 " \"publisherName\" : \"Foo News\"," | 24 " \"publisherName\" : \"Foo News\"," |
| 31 " \"imageUrl\" : \"http://localhost/foobar.jpg\"," | 25 " \"imageUrl\" : \"http://localhost/foobar.jpg\"," |
| 32 " \"ampUrl\" : \"http://localhost/amp\"," | 26 " \"ampUrl\" : \"http://localhost/amp\"," |
| 33 " \"faviconUrl\" : \"http://localhost/favicon.ico\" " | 27 " \"faviconUrl\" : \"http://localhost/favicon.ico\" " |
| 34 "}"; | 28 "}"; |
| 35 auto json_value = base::JSONReader::Read(kJsonStr); | 29 auto json_value = base::JSONReader::Read(kJsonStr); |
| 36 base::DictionaryValue* json_dict; | 30 base::DictionaryValue* json_dict; |
| 37 ASSERT_TRUE(json_value->GetAsDictionary(&json_dict)); | 31 ASSERT_TRUE(json_value->GetAsDictionary(&json_dict)); |
| 38 | 32 |
| 39 auto snippet = NTPSnippet::CreateFromContentSuggestionsDictionary(*json_dict); | 33 auto snippet = NTPSnippet::CreateFromContentSuggestionsDictionary(*json_dict); |
| 40 ASSERT_THAT(snippet, testing::NotNull()); | 34 ASSERT_THAT(snippet, testing::NotNull()); |
| 41 | 35 |
| 42 EXPECT_EQ(snippet->id(), "http://localhost/foobar"); | 36 EXPECT_EQ(snippet->id(), "http://localhost/foobar"); |
| 43 EXPECT_EQ(snippet->title(), "Foo Barred from Baz"); | 37 EXPECT_EQ(snippet->title(), "Foo Barred from Baz"); |
| 44 EXPECT_EQ(snippet->snippet(), "..."); | 38 EXPECT_EQ(snippet->snippet(), "..."); |
| 45 EXPECT_EQ(snippet->salient_image_url(), GURL("http://localhost/foobar.jpg")); | 39 EXPECT_EQ(snippet->salient_image_url(), GURL("http://localhost/foobar.jpg")); |
| 46 auto unix_publish_date = snippet->publish_date() - base::Time::UnixEpoch(); | 40 auto unix_publish_date = snippet->publish_date() - base::Time::UnixEpoch(); |
| 47 auto expiry_duration = snippet->expiry_date() - snippet->publish_date(); | 41 auto expiry_duration = snippet->expiry_date() - snippet->publish_date(); |
| 48 EXPECT_FLOAT_EQ(unix_publish_date.InSecondsF(), 1466510682.552743f); | 42 EXPECT_FLOAT_EQ(unix_publish_date.InSecondsF(), 1467284497.000000f); |
| 49 EXPECT_FLOAT_EQ(expiry_duration.InSecondsF(), 86400.000000f); | 43 EXPECT_FLOAT_EQ(expiry_duration.InSecondsF(), 86400.000000f); |
| 50 | 44 |
| 51 EXPECT_EQ(snippet->best_source().publisher_name, "Foo News"); | 45 EXPECT_EQ(snippet->best_source().publisher_name, "Foo News"); |
| 52 EXPECT_EQ(snippet->best_source().url, GURL("http://localhost/foobar")); | 46 EXPECT_EQ(snippet->best_source().url, GURL("http://localhost/foobar")); |
| 53 EXPECT_EQ(snippet->best_source().amp_url, GURL("http://localhost/amp")); | 47 EXPECT_EQ(snippet->best_source().amp_url, GURL("http://localhost/amp")); |
| 54 } | 48 } |
| 55 | 49 |
| 56 } // namespace | 50 } // namespace |
| 57 } // namespace ntp_snippets | 51 } // namespace ntp_snippets |
| OLD | NEW |