Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: chrome/browser/android/physical_web/eddystone_encoder_bridge_unittest.cc

Issue 2753683002: Build a Bridge to Eddystone Encoder in Components (Closed)
Patch Set: Fixing Oliviers Nits Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/android/physical_web/eddystone_encoder_bridge.cc ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2017 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/eddystone_encoder_bridge.h"
6
7 #include "base/android/jni_android.h"
8 #include "base/android/jni_array.h"
9 #include "base/android/jni_string.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 using base::android::JavaParamRef;
13 using base::android::ScopedJavaLocalRef;
14 using base::android::ToJavaByteArray;
15
16 class EddystoneEncoderBridgeTest : public testing::Test {
17 public:
18 EddystoneEncoderBridgeTest() {}
19 ~EddystoneEncoderBridgeTest() override {}
20
21 void SetUp() override { env_ = base::android::AttachCurrentThread(); }
22
23 void TearDown() override {}
24
25 JNIEnv* Env();
26 jstring JavaString(const std::string& value);
27 bool ScopedJavaLocalRefJByteArrayEquals(JNIEnv* env,
28 ScopedJavaLocalRef<jbyteArray> a,
29 ScopedJavaLocalRef<jbyteArray> b);
30
31 private:
32 JNIEnv* env_;
33 };
34
35 JNIEnv* EddystoneEncoderBridgeTest::Env() {
36 return env_;
37 }
38
39 jstring EddystoneEncoderBridgeTest::JavaString(const std::string& value) {
40 return base::android::ConvertUTF8ToJavaString(Env(), value).Release();
41 }
42
43 bool EddystoneEncoderBridgeTest::ScopedJavaLocalRefJByteArrayEquals(
44 JNIEnv* env,
45 ScopedJavaLocalRef<jbyteArray> a,
46 ScopedJavaLocalRef<jbyteArray> b) {
47 jbyteArray a_byte_array = a.obj();
48 jbyteArray b_byte_array = b.obj();
49
50 int a_len = env->GetArrayLength(a_byte_array);
51 if (a_len != env->GetArrayLength(b_byte_array)) {
52 return false;
53 }
54
55 jbyte* a_elems = env->GetByteArrayElements(a_byte_array, NULL);
56 jbyte* b_elems = env->GetByteArrayElements(b_byte_array, NULL);
57
58 bool cmp = memcmp(a_elems, b_elems, a_len) == 0;
59
60 env->ReleaseByteArrayElements(a_byte_array, a_elems, JNI_ABORT);
61 env->ReleaseByteArrayElements(b_byte_array, b_elems, JNI_ABORT);
62
63 return cmp;
64 }
65
66 TEST_F(EddystoneEncoderBridgeTest, testNullUrl) {
David Trainor- moved to gerrit 2017/03/20 18:09:38 testNullUrl -> TestNullUrl. Same for all others I
iankc 2017/03/20 19:12:05 Done.
67 ScopedJavaLocalRef<jbyteArray> actual =
68 EncodeUrlForTesting(Env(), JavaParamRef<jobject>(nullptr),
69 JavaParamRef<jstring>(Env(), nullptr));
70 EXPECT_TRUE(Env()->ExceptionCheck());
71 }
72
73 TEST_F(EddystoneEncoderBridgeTest, testInvalidUrl) {
74 std::string url = "Wrong!";
75 ScopedJavaLocalRef<jbyteArray> actual =
76 EncodeUrlForTesting(Env(), JavaParamRef<jobject>(nullptr),
77 JavaParamRef<jstring>(Env(), JavaString(url)));
78 EXPECT_TRUE(Env()->ExceptionCheck());
79 }
80
81 TEST_F(EddystoneEncoderBridgeTest, testValidUrl) {
82 std::string url = "https://www.example.com/";
83 uint8_t expected_array[] = {0x01, // "https://www."
84 0x65, 0x78, 0x61, 0x6d,
85 0x70, 0x6c, 0x65, // "example"
86 0x00};
87 size_t expected_array_length = sizeof(expected_array) / sizeof(uint8_t);
88 ScopedJavaLocalRef<jbyteArray> expected =
89 ToJavaByteArray(Env(), &expected_array[0], expected_array_length);
90 ScopedJavaLocalRef<jbyteArray> actual =
91 EncodeUrlForTesting(Env(), JavaParamRef<jobject>(nullptr),
92 JavaParamRef<jstring>(Env(), JavaString(url)));
93 EXPECT_TRUE(ScopedJavaLocalRefJByteArrayEquals(Env(), expected, actual));
94 EXPECT_FALSE(Env()->ExceptionCheck());
95 }
OLDNEW
« no previous file with comments | « chrome/browser/android/physical_web/eddystone_encoder_bridge.cc ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698