summaryrefslogtreecommitdiffstats
path: root/sync/test
diff options
context:
space:
mode:
authorpvalenzuela@chromium.org <pvalenzuela@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-21 21:26:38 +0000
committerpvalenzuela@chromium.org <pvalenzuela@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-21 21:27:56 +0000
commitbe21aaa41c7ecf6e84cabde42bc9688acaa1b93b (patch)
treeffb9e3418c365c368028550fcf83caba8f556ee8 /sync/test
parent8153ccfd454ff0540136b057f28b97b87e90cbc9 (diff)
downloadchromium_src-be21aaa41c7ecf6e84cabde42bc9688acaa1b93b.zip
chromium_src-be21aaa41c7ecf6e84cabde42bc9688acaa1b93b.tar.gz
chromium_src-be21aaa41c7ecf6e84cabde42bc9688acaa1b93b.tar.bz2
Create ChromeSyncShell and ChromeSyncShellTest
This CL enables usage of the Sync FakeServer in Android tests. This is done by creating a new ChromeShell-based APK, ChromeSyncShell, and a test APK that instruments it (ChromeSyncShellTest). As part of this CL, previously-disabled tests (SyncTest.java) are re-enabled. However, these tests will not run as part of the Chromium waterfall/trybots as they are not configured to run ChromeSyncShellTest. How to run the tests: 1) Build these targets: chrome_sync_shell_apk chrome_sync_shell_test_apk 2) Run test script build/android/adb_install_apk.py \ --apk=ChromeSyncShell.apk && \ build/android/test_runner.py instrumentation \ --test-apk ChromeSyncShellTest BUG=323265,348951,348117 TBR=cpu@chromium.org Review URL: https://codereview.chromium.org/457883002 Cr-Commit-Position: refs/heads/master@{#291190} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291190 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/test')
-rw-r--r--sync/test/DEPS3
-rw-r--r--sync/test/fake_server/android/fake_server_helper_android.cc52
-rw-r--r--sync/test/fake_server/android/fake_server_helper_android.h37
3 files changed, 92 insertions, 0 deletions
diff --git a/sync/test/DEPS b/sync/test/DEPS
index 2e86b14..0bf3ab0 100644
--- a/sync/test/DEPS
+++ b/sync/test/DEPS
@@ -2,4 +2,7 @@ include_rules = [
# Test files can include anything from sync.
"+sync",
"+net",
+
+ # For generated JNI code.
+ "+jni",
]
diff --git a/sync/test/fake_server/android/fake_server_helper_android.cc b/sync/test/fake_server/android/fake_server_helper_android.cc
new file mode 100644
index 0000000..725ba63
--- /dev/null
+++ b/sync/test/fake_server/android/fake_server_helper_android.cc
@@ -0,0 +1,52 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "sync/test/fake_server/android/fake_server_helper_android.h"
+
+#include <jni.h>
+
+#include "base/basictypes.h"
+#include "jni/FakeServerHelper_jni.h"
+#include "sync/internal_api/public/network_resources.h"
+#include "sync/test/fake_server/fake_server.h"
+#include "sync/test/fake_server/fake_server_network_resources.h"
+
+FakeServerHelperAndroid::FakeServerHelperAndroid(JNIEnv* env, jobject obj) {
+}
+
+FakeServerHelperAndroid::~FakeServerHelperAndroid() { }
+
+static jlong Init(JNIEnv* env, jobject obj) {
+ FakeServerHelperAndroid* fake_server_android =
+ new FakeServerHelperAndroid(env, obj);
+ return reinterpret_cast<intptr_t>(fake_server_android);
+}
+
+jlong FakeServerHelperAndroid::CreateFakeServer(JNIEnv* env, jobject obj) {
+ fake_server::FakeServer* fake_server = new fake_server::FakeServer();
+ return reinterpret_cast<intptr_t>(fake_server);
+}
+
+jlong FakeServerHelperAndroid::CreateNetworkResources(JNIEnv* env,
+ jobject obj,
+ jlong fake_server) {
+ fake_server::FakeServer* fake_server_ptr =
+ reinterpret_cast<fake_server::FakeServer*>(fake_server);
+ syncer::NetworkResources* resources =
+ new fake_server::FakeServerNetworkResources(fake_server_ptr);
+ return reinterpret_cast<intptr_t>(resources);
+}
+
+void FakeServerHelperAndroid::DeleteFakeServer(JNIEnv* env,
+ jobject obj,
+ jlong fake_server) {
+ fake_server::FakeServer* fake_server_ptr =
+ reinterpret_cast<fake_server::FakeServer*>(fake_server);
+ delete fake_server_ptr;
+}
+
+// static
+bool FakeServerHelperAndroid::Register(JNIEnv* env) {
+ return RegisterNativesImpl(env);
+}
diff --git a/sync/test/fake_server/android/fake_server_helper_android.h b/sync/test/fake_server/android/fake_server_helper_android.h
new file mode 100644
index 0000000..24e1d9e
--- /dev/null
+++ b/sync/test/fake_server/android/fake_server_helper_android.h
@@ -0,0 +1,37 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SYNC_TEST_FAKE_SERVER_ANDROID_FAKE_SERVER_HELPER_ANDROID
+#define SYNC_TEST_FAKE_SERVER_ANDROID_FAKE_SERVER_HELPER_ANDROID
+
+#include <jni.h>
+
+#include "base/basictypes.h"
+
+// Helper for utilizing native FakeServer infrastructure in Android tests.
+class FakeServerHelperAndroid {
+ public:
+ // Registers the native methods.
+ static bool Register(JNIEnv* env);
+
+ // Creates a FakeServerHelperAndroid.
+ FakeServerHelperAndroid(JNIEnv* env, jobject obj);
+
+ // Factory method for creating a native FakeServer object. The caller assumes
+ // ownership.
+ jlong CreateFakeServer(JNIEnv* env, jobject obj);
+
+ // Factory method for creating a native NetworkResources object. The caller
+ // assumes ownership.
+ jlong CreateNetworkResources(JNIEnv* env, jobject obj, jlong fake_server);
+
+ // Deletes the given |fake_server| (a FakeServer pointer created via
+ // CreateFakeServer).
+ void DeleteFakeServer(JNIEnv* env, jobject obj, jlong fake_server);
+
+ private:
+ virtual ~FakeServerHelperAndroid();
+};
+
+#endif // SYNC_TEST_FAKE_SERVER_ANDROID_FAKE_SERVER_HELPER_ANDROID