Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/android/physical_web/physical_web_data_source_android.h " | |
| 6 | |
| 7 #include "base/android/jni_android.h" | |
| 8 #include "base/android/jni_string.h" | |
| 9 #include "base/memory/ptr_util.h" | |
| 10 #include "base/values.h" | |
| 11 #include "testing/gtest/include/gtest/gtest.h" | |
| 12 | |
| 13 using base::android::JavaParamRef; | |
| 14 | |
| 15 namespace { | |
| 16 | |
| 17 const char kRequestUrl[] = "https://awesomesite.us/"; | |
| 18 const double kDistanceEstimate = 42.0; | |
| 19 const int64_t kScanTimestamp = 10000000L; // 10M | |
| 20 const char kSiteUrl[] = "https://awesomesite.us/page.html"; | |
| 21 const char kIconUrl[] = "https://awesomesite.us/favicon.ico"; | |
| 22 const char kTitle[] = "AwesomeSite"; | |
| 23 const char kDescription[] = "An awesome site"; | |
| 24 const char kGroupId[] = "14a8ef122"; | |
| 25 | |
| 26 } // namespace | |
| 27 | |
| 28 class PhysicalWebCollectionTest : public testing::Test { | |
| 29 public: | |
| 30 PhysicalWebCollectionTest() {} | |
| 31 ~PhysicalWebCollectionTest() override {} | |
| 32 | |
| 33 void SetUp() override; | |
| 34 void TearDown() override; | |
| 35 | |
| 36 PhysicalWebCollection* collection(); | |
|
nyquist
2017/01/05 07:42:28
Naming for C++ starts with uppercase. See https://
cco3
2017/01/05 23:52:56
Done.
| |
| 37 JNIEnv* env(); | |
| 38 jstring javaString(const std::string& value); | |
| 39 | |
| 40 private: | |
| 41 std::unique_ptr<PhysicalWebCollection> collection_; | |
| 42 JNIEnv* env_; | |
| 43 }; | |
| 44 | |
| 45 void PhysicalWebCollectionTest::SetUp() { | |
|
nyquist
2017/01/05 07:42:28
This is fine. I've also seen many times where we i
cco3
2017/01/05 23:52:56
Done.
| |
| 46 collection_ = base::MakeUnique<PhysicalWebCollection>(); | |
| 47 env_ = base::android::AttachCurrentThread(); | |
| 48 } | |
| 49 | |
| 50 void PhysicalWebCollectionTest::TearDown() { | |
| 51 collection_.reset(); | |
| 52 } | |
| 53 | |
| 54 PhysicalWebCollection* PhysicalWebCollectionTest::collection() { | |
| 55 DCHECK(collection_); | |
| 56 return collection_.get(); | |
| 57 } | |
| 58 | |
| 59 JNIEnv* PhysicalWebCollectionTest::env() { | |
| 60 return env_; | |
| 61 } | |
| 62 | |
| 63 jstring PhysicalWebCollectionTest::javaString(const std::string& value) { | |
| 64 return base::android::ConvertUTF8ToJavaString(env(), value).Release(); | |
| 65 } | |
| 66 | |
| 67 TEST_F(PhysicalWebCollectionTest, AppendMetadataItem_ListWork) { | |
| 68 collection()->AppendMetadataItem( | |
| 69 env(), | |
| 70 JavaParamRef<jobject>(NULL), | |
| 71 JavaParamRef<jstring>(env(), javaString(kRequestUrl)), | |
| 72 static_cast<jdouble>(kDistanceEstimate), | |
| 73 static_cast<jlong>(kScanTimestamp), | |
| 74 JavaParamRef<jstring>(env(), javaString(kSiteUrl)), | |
| 75 JavaParamRef<jstring>(env(), javaString(kIconUrl)), | |
| 76 JavaParamRef<jstring>(env(), javaString(kTitle)), | |
| 77 JavaParamRef<jstring>(env(), javaString(kDescription)), | |
| 78 JavaParamRef<jstring>(env(), javaString(kGroupId))); | |
| 79 | |
| 80 std::unique_ptr<physical_web::MetadataList> metadata_list = | |
| 81 collection()->GetMetadataList(); | |
| 82 EXPECT_EQ(1U, metadata_list->size()); | |
| 83 auto metadata = (*metadata_list.get())[0]; | |
| 84 EXPECT_EQ(kRequestUrl, metadata.scanned_url.spec()); | |
| 85 EXPECT_EQ(kDistanceEstimate, metadata.distance_estimate); | |
| 86 EXPECT_EQ(kScanTimestamp, metadata.scan_timestamp.ToJavaTime()); | |
| 87 EXPECT_EQ(kSiteUrl, metadata.resolved_url.spec()); | |
| 88 EXPECT_EQ(kIconUrl, metadata.icon_url.spec()); | |
| 89 EXPECT_EQ(kTitle, metadata.title); | |
| 90 EXPECT_EQ(kDescription, metadata.description); | |
| 91 EXPECT_EQ(kGroupId, metadata.group_id); | |
| 92 } | |
| 93 | |
| 94 TEST_F(PhysicalWebCollectionTest, AppendMetadataItem_DictionaryValueWorks) { | |
| 95 collection()->AppendMetadataItem( | |
| 96 env(), | |
| 97 JavaParamRef<jobject>(NULL), | |
| 98 JavaParamRef<jstring>(env(), javaString(kRequestUrl)), | |
| 99 static_cast<jdouble>(kDistanceEstimate), | |
| 100 static_cast<jlong>(kScanTimestamp), | |
| 101 JavaParamRef<jstring>(env(), javaString(kSiteUrl)), | |
| 102 JavaParamRef<jstring>(env(), javaString(kIconUrl)), | |
| 103 JavaParamRef<jstring>(env(), javaString(kTitle)), | |
| 104 JavaParamRef<jstring>(env(), javaString(kDescription)), | |
| 105 JavaParamRef<jstring>(env(), javaString(kGroupId))); | |
| 106 | |
| 107 std::unique_ptr<base::ListValue> list_value = | |
| 108 collection()->GetMetadata(); | |
| 109 EXPECT_EQ(1U, list_value->GetSize()); | |
| 110 const base::Value* value; | |
| 111 EXPECT_TRUE(list_value->Get(0, &value)); | |
| 112 const base::DictionaryValue* dictionary_value; | |
| 113 EXPECT_TRUE(value->GetAsDictionary(&dictionary_value)); | |
| 114 std::string stored_scanned_url; | |
| 115 EXPECT_TRUE(dictionary_value->GetString(physical_web::kScannedUrlKey, | |
| 116 &stored_scanned_url)); | |
| 117 EXPECT_EQ(kRequestUrl, stored_scanned_url); | |
| 118 double stored_distance_estimate; | |
| 119 EXPECT_TRUE(dictionary_value->GetDouble(physical_web::kDistanceEstimateKey, | |
| 120 &stored_distance_estimate)); | |
| 121 EXPECT_EQ(kDistanceEstimate, stored_distance_estimate); | |
| 122 std::string stored_resolved_url; | |
| 123 EXPECT_TRUE(dictionary_value->GetString(physical_web::kResolvedUrlKey, | |
| 124 &stored_resolved_url)); | |
| 125 EXPECT_EQ(kSiteUrl, stored_resolved_url); | |
| 126 std::string stored_icon_url; | |
| 127 EXPECT_TRUE(dictionary_value->GetString(physical_web::kIconUrlKey, | |
| 128 &stored_icon_url)); | |
| 129 EXPECT_EQ(kIconUrl, stored_icon_url); | |
| 130 std::string stored_title; | |
| 131 EXPECT_TRUE(dictionary_value->GetString(physical_web::kTitleKey, | |
| 132 &stored_title)); | |
| 133 EXPECT_EQ(kTitle, stored_title); | |
| 134 std::string stored_description; | |
| 135 EXPECT_TRUE(dictionary_value->GetString(physical_web::kDescriptionKey, | |
| 136 &stored_description)); | |
| 137 EXPECT_EQ(kDescription, stored_description); | |
| 138 std::string stored_group_id; | |
| 139 EXPECT_TRUE(dictionary_value->GetString(physical_web::kGroupIdKey, | |
| 140 &stored_group_id)); | |
| 141 EXPECT_EQ(kGroupId, stored_group_id); | |
| 142 } | |
| OLD | NEW |