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

Side by Side Diff: android/junit/src/org/chromium/base/BaseChromiumApplicationTest.java

Issue 2045303002: Update to Chromium //base at Chromium commit 3e81715e6d3a4324362635aea46ce1f1a163cca1. (Closed) Base URL: https://chromium.googlesource.com/external/github.com/domokit/base@master
Patch Set: Created 4 years, 6 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.base; 5 package org.chromium.base;
6 6
7 import static org.mockito.Mockito.mock; 7 import static org.mockito.Mockito.mock;
8 import static org.mockito.Mockito.verify; 8 import static org.mockito.Mockito.verify;
9 9
10 import android.app.Activity; 10 import android.app.Activity;
11 import android.view.KeyEvent; 11 import android.view.KeyEvent;
12 12
13 import junit.framework.Assert; 13 import junit.framework.Assert;
14 14
15 import org.chromium.base.BaseChromiumApplication.WindowFocusChangedListener; 15 import org.chromium.base.BaseChromiumApplication.WindowFocusChangedListener;
16 import org.chromium.base.test.shadows.ShadowMultiDex;
16 import org.chromium.testing.local.LocalRobolectricTestRunner; 17 import org.chromium.testing.local.LocalRobolectricTestRunner;
17 import org.junit.Test; 18 import org.junit.Test;
18 import org.junit.runner.RunWith; 19 import org.junit.runner.RunWith;
19 import org.robolectric.Robolectric; 20 import org.robolectric.Robolectric;
20 import org.robolectric.annotation.Config; 21 import org.robolectric.annotation.Config;
21 import org.robolectric.annotation.Implementation; 22 import org.robolectric.annotation.Implementation;
22 import org.robolectric.annotation.Implements; 23 import org.robolectric.annotation.Implements;
23 import org.robolectric.shadows.ShadowActivity; 24 import org.robolectric.shadows.ShadowActivity;
24 import org.robolectric.util.ActivityController; 25 import org.robolectric.util.ActivityController;
25 26
26 /** Unit tests for {@link BaseChromiumApplication}. */ 27 /** Unit tests for {@link BaseChromiumApplication}. */
27 @RunWith(LocalRobolectricTestRunner.class) 28 @RunWith(LocalRobolectricTestRunner.class)
28 @Config(manifest = Config.NONE, application = BaseChromiumApplication.class, 29 @Config(manifest = Config.NONE, application = BaseChromiumApplication.class,
29 shadows = {BaseChromiumApplicationTest.TrackingShadowActivity.class}) 30 shadows = {BaseChromiumApplicationTest.TrackingShadowActivity.class, Sha dowMultiDex.class})
30 public class BaseChromiumApplicationTest { 31 public class BaseChromiumApplicationTest {
31 32 /** Shadow that tracks calls to onWindowFocusChanged and dispatchKeyEvent. * /
32 @Implements(Activity.class) 33 @Implements(Activity.class)
33 public static class TrackingShadowActivity extends ShadowActivity { 34 public static class TrackingShadowActivity extends ShadowActivity {
34 private int mWindowFocusCalls; 35 private int mWindowFocusCalls;
35 private int mDispatchKeyEventCalls; 36 private int mDispatchKeyEventCalls;
36 private boolean mReturnValueForKeyDispatch; 37 private boolean mReturnValueForKeyDispatch;
37 38
38 @Implementation 39 @Implementation
39 public void onWindowFocusChanged(@SuppressWarnings("unused") boolean has Focus) { 40 public void onWindowFocusChanged(@SuppressWarnings("unused") boolean has Focus) {
40 mWindowFocusCalls++; 41 mWindowFocusCalls++;
41 } 42 }
(...skipping 16 matching lines...) Expand all
58 Robolectric.buildActivity(Activity.class).create().start().visib le(); 59 Robolectric.buildActivity(Activity.class).create().start().visib le();
59 TrackingShadowActivity shadow = 60 TrackingShadowActivity shadow =
60 (TrackingShadowActivity) Robolectric.shadowOf(controller.get()); 61 (TrackingShadowActivity) Robolectric.shadowOf(controller.get());
61 62
62 controller.get().getWindow().getCallback().onWindowFocusChanged(true); 63 controller.get().getWindow().getCallback().onWindowFocusChanged(true);
63 // Assert that listeners were notified. 64 // Assert that listeners were notified.
64 verify(mock).onWindowFocusChanged(controller.get(), true); 65 verify(mock).onWindowFocusChanged(controller.get(), true);
65 // Also ensure that the original activity is forwarded the notification. 66 // Also ensure that the original activity is forwarded the notification.
66 Assert.assertEquals(1, shadow.mWindowFocusCalls); 67 Assert.assertEquals(1, shadow.mWindowFocusCalls);
67 } 68 }
68
69 @Test
70 public void testDispatchKeyEvent() throws Exception {
71 ActivityController<Activity> controller =
72 Robolectric.buildActivity(Activity.class).create().start().visib le();
73 TrackingShadowActivity shadow =
74 (TrackingShadowActivity) Robolectric.shadowOf(controller.get());
75
76 final KeyEvent menuKey = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEY CODE_MENU);
77
78 // Ensure that key events are forwarded.
79 Assert.assertFalse(controller.get().getWindow().getCallback().dispatchKe yEvent(menuKey));
80 // This gets called twice - once to see if the activity is swallowing it , and again to
81 // dispatch it.
82 Assert.assertEquals(2, shadow.mDispatchKeyEventCalls);
83
84 // Ensure that our activity can swallow the event.
85 shadow.mReturnValueForKeyDispatch = true;
86 Assert.assertTrue(controller.get().getWindow().getCallback().dispatchKey Event(menuKey));
87 Assert.assertEquals(3, shadow.mDispatchKeyEventCalls);
88
89 // A non-enter key only dispatches once.
90 Assert.assertTrue(controller.get().getWindow().getCallback().dispatchKey Event(
91 new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SPACE)));
92 Assert.assertEquals(4, shadow.mDispatchKeyEventCalls);
93 }
94 } 69 }
OLDNEW
« no previous file with comments | « android/jni_generator/testNatives.golden ('k') | android/library_loader/library_loader_hooks.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698