summaryrefslogtreecommitdiff
path: root/base/android/junit/src/org/chromium/base/NonThreadSafeTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/android/junit/src/org/chromium/base/NonThreadSafeTest.java')
-rw-r--r--base/android/junit/src/org/chromium/base/NonThreadSafeTest.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/base/android/junit/src/org/chromium/base/NonThreadSafeTest.java b/base/android/junit/src/org/chromium/base/NonThreadSafeTest.java
new file mode 100644
index 0000000000..9c57199c9e
--- /dev/null
+++ b/base/android/junit/src/org/chromium/base/NonThreadSafeTest.java
@@ -0,0 +1,63 @@
+// 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.
+
+package org.chromium.base;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.BlockJUnit4ClassRunner;
+
+import org.chromium.base.test.util.Feature;
+
+/**
+ * Tests for NonThreadSafe.
+ */
+@RunWith(BlockJUnit4ClassRunner.class)
+public class NonThreadSafeTest {
+ /**
+ * Test for creating and using on the same thread
+ */
+ @Test
+ @Feature({"Android-AppBase"})
+ public void testCreateAndUseOnSameThread() {
+ NonThreadSafe t = new NonThreadSafe();
+ Assert.assertTrue(t.calledOnValidThread());
+ }
+
+ /**
+ * Test if calledOnValidThread returns false if used on another thread.
+ */
+ @Test
+ @Feature({"Android-AppBase"})
+ public void testCreateAndUseOnDifferentThread() {
+ final NonThreadSafe t = new NonThreadSafe();
+
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ Assert.assertFalse(t.calledOnValidThread());
+ }
+ }).start();
+ }
+
+ /**
+ * Test if detachFromThread reassigns the thread.
+ */
+ @Test
+ @Feature({"Android-AppBase"})
+ public void testDetachFromThread() {
+ final NonThreadSafe t = new NonThreadSafe();
+ Assert.assertTrue(t.calledOnValidThread());
+ t.detachFromThread();
+
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ Assert.assertTrue(t.calledOnValidThread());
+ Assert.assertTrue(t.calledOnValidThread());
+ }
+ }).start();
+ }
+}