1 // Copyright 2022 The Chromium Authors 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 <stddef.h> 6 7 #include "base/android/jni_android.h" 8 #include "base/android/jni_string.h" 9 #include "url/gurl.h" 10 #include "url/j_test_jni_headers/OriginJavaTestHelper_jni.h" 11 #include "url/origin.h" 12 13 namespace url { 14 JNI_OriginJavaTestHelper_TestOriginEquivalence(JNIEnv * env)15static void JNI_OriginJavaTestHelper_TestOriginEquivalence(JNIEnv* env) { 16 Origin cases[] = { 17 Origin(), 18 Origin::Create(GURL("http://a.com")), 19 Origin::Create(GURL("http://a.com:8000")), 20 Origin::Create(GURL("scheme:host")), 21 Origin::Create(GURL("http://a.com:8000")).DeriveNewOpaqueOrigin(), 22 }; 23 for (const Origin& origin : cases) { 24 base::android::ScopedJavaLocalRef<jobject> j_origin = origin.ToJavaObject(); 25 Origin sameOrigin = Origin::FromJavaObject(j_origin); 26 if (origin != sameOrigin) { 27 std::stringstream ss; 28 ss << "Origin not equivalent: " << origin << ", " << sameOrigin; 29 env->ThrowNew(env->FindClass("java/lang/AssertionError"), 30 ss.str().data()); 31 return; 32 } 33 } 34 } 35 36 } // namespace url 37