diff options
author | pvalenzuela@chromium.org <pvalenzuela@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-21 21:26:38 +0000 |
---|---|---|
committer | pvalenzuela@chromium.org <pvalenzuela@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-21 21:27:56 +0000 |
commit | be21aaa41c7ecf6e84cabde42bc9688acaa1b93b (patch) | |
tree | ffb9e3418c365c368028550fcf83caba8f556ee8 /sync/test | |
parent | 8153ccfd454ff0540136b057f28b97b87e90cbc9 (diff) | |
download | chromium_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/DEPS | 3 | ||||
-rw-r--r-- | sync/test/fake_server/android/fake_server_helper_android.cc | 52 | ||||
-rw-r--r-- | sync/test/fake_server/android/fake_server_helper_android.h | 37 |
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 |