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

Side by Side Diff: content/public/android/javatests/src/org/chromium/content/browser/ContentCommandLineTest.java

Issue 141533006: [Android] Move the java content/ package to content_public/ to start the split. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Small fixes and findbugs line update Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.content.browser;
6
7 import android.test.InstrumentationTestCase;
8 import android.test.suitebuilder.annotation.MediumTest;
9
10 import org.chromium.base.CommandLine;
11 import org.chromium.base.test.util.Feature;
12 import org.chromium.content.app.LibraryLoader;
13 import org.chromium.content.common.ProcessInitException;
14 import org.chromium.content_shell_apk.ContentShellActivity;
15 import org.chromium.content_shell_apk.ContentShellApplication;
16
17 public class ContentCommandLineTest extends InstrumentationTestCase {
18 // A reference command line. Note that switch2 is [brea\d], switch3 is [and "butter"],
19 // and switch4 is [a "quoted" 'food'!]
20 static final String INIT_SWITCHES[] = { "init_command", "--SWITCH", "Arg",
21 "--switch2=brea\\d", "--switch3=and \"butter\"",
22 "--switch4=a \"quoted\" 'food'!",
23 "--", "--actually_an_arg" };
24
25 // The same command line, but in quoted string format.
26 static final char INIT_SWITCHES_BUFFER[] =
27 ("init_command --SWITCH Arg --switch2=brea\\d --switch3=\"and \\\"butt\" er\\\" "
28 + "--switch4='a \"quoted\" \\'food\\'!' "
29 + "-- --actually_an_arg").toCharArray();
30
31 static final String CL_ADDED_SWITCH = "zappo-dappo-doggy-trainer";
32 static final String CL_ADDED_SWITCH_2 = "username";
33 static final String CL_ADDED_VALUE_2 = "bozo";
34
35 @Override
36 public void setUp() throws Exception {
37 CommandLine.reset();
38 }
39
40 void loadJni() {
41 assertFalse(CommandLine.getInstance().isNativeImplementation());
42 getInstrumentation().runOnMainSync(new Runnable() {
43 @Override
44 public void run() {
45 ContentShellApplication.initializeApplicationParameters();
46 try {
47 LibraryLoader.ensureInitialized();
48 } catch (ProcessInitException e) {
49 throw new Error(e);
50 }
51 }
52 });
53 assertTrue(CommandLine.getInstance().isNativeImplementation());
54 }
55
56 void checkInitSwitches() {
57 CommandLine cl = CommandLine.getInstance();
58 assertFalse(cl.hasSwitch("init_command"));
59 assertFalse(cl.hasSwitch("switch"));
60 assertTrue(cl.hasSwitch("SWITCH"));
61 assertFalse(cl.hasSwitch("--SWITCH"));
62 assertFalse(cl.hasSwitch("Arg"));
63 assertFalse(cl.hasSwitch("actually_an_arg"));
64 assertEquals("brea\\d", cl.getSwitchValue("switch2"));
65 assertEquals("and \"butter\"", cl.getSwitchValue("switch3"));
66 assertEquals("a \"quoted\" 'food'!", cl.getSwitchValue("switch4"));
67 assertNull(cl.getSwitchValue("SWITCH"));
68 assertNull(cl.getSwitchValue("non-existant"));
69 }
70
71 void checkSettingThenGetting() {
72 CommandLine cl = CommandLine.getInstance();
73
74 // Add a plain switch.
75 assertFalse(cl.hasSwitch(CL_ADDED_SWITCH));
76 cl.appendSwitch(CL_ADDED_SWITCH);
77 assertTrue(cl.hasSwitch(CL_ADDED_SWITCH));
78
79 // Add a switch paired with a value.
80 assertFalse(cl.hasSwitch(CL_ADDED_SWITCH_2));
81 assertNull(cl.getSwitchValue(CL_ADDED_SWITCH_2));
82 cl.appendSwitchWithValue(CL_ADDED_SWITCH_2, CL_ADDED_VALUE_2);
83 assertTrue(CL_ADDED_VALUE_2.equals(cl.getSwitchValue(CL_ADDED_SWITCH_2)) );
84
85 // Append a few new things.
86 final String switchesAndArgs[] = { "dummy", "--superfast", "--speed=turb o" };
87 assertFalse(cl.hasSwitch("dummy"));
88 assertFalse(cl.hasSwitch("superfast"));
89 assertNull(cl.getSwitchValue("speed"));
90 cl.appendSwitchesAndArguments(switchesAndArgs);
91 assertFalse(cl.hasSwitch("dummy"));
92 assertFalse(cl.hasSwitch("command"));
93 assertTrue(cl.hasSwitch("superfast"));
94 assertTrue("turbo".equals(cl.getSwitchValue("speed")));
95 }
96
97 void checkAppendedSwitchesPassedThrough() {
98 CommandLine cl = CommandLine.getInstance();
99 assertTrue(cl.hasSwitch(CL_ADDED_SWITCH));
100 assertTrue(cl.hasSwitch(CL_ADDED_SWITCH_2));
101 assertTrue(CL_ADDED_VALUE_2.equals(cl.getSwitchValue(CL_ADDED_SWITCH_2)) );
102 }
103
104 @MediumTest
105 @Feature({"Android-AppBase"})
106 public void testJavaNativeTransition() {
107 CommandLine.init(INIT_SWITCHES);
108 checkInitSwitches();
109 loadJni();
110 checkInitSwitches();
111 checkSettingThenGetting();
112 }
113
114 @MediumTest
115 @Feature({"Android-AppBase"})
116 public void testJavaNativeTransitionAfterAppends() {
117 CommandLine.init(INIT_SWITCHES);
118 checkInitSwitches();
119 checkSettingThenGetting();
120 loadJni();
121 checkInitSwitches();
122 checkAppendedSwitchesPassedThrough();
123 }
124
125 @MediumTest
126 @Feature({"Android-AppBase"})
127 public void testNativeInitialization() {
128 CommandLine.init(null);
129 loadJni();
130 // Drop the program name for use with appendSwitchesAndArguments.
131 String[] args = new String[INIT_SWITCHES.length - 1];
132 System.arraycopy(INIT_SWITCHES, 1, args, 0, args.length);
133 CommandLine.getInstance().appendSwitchesAndArguments(args);
134 checkInitSwitches();
135 checkSettingThenGetting();
136 }
137
138 @MediumTest
139 @Feature({"Android-AppBase"})
140 public void testFileInitialization() {
141 CommandLine.initFromFile(ContentShellActivity.COMMAND_LINE_FILE);
142 loadJni();
143 checkSettingThenGetting();
144 }
145 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698