NativeDaemonConnectorTest.java revision 31c6e4817f6c967fc4f61c4f1d9f25743958f7de
1afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg/* 2afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * Copyright (C) 2011 The Android Open Source Project 3afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * 4e9bf776711b22ce336cd462adf534ad3e2d61eecKeith Whitwell * Licensed under the Apache License, Version 2.0 (the "License"); 5afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * you may not use this file except in compliance with the License. 671dea349d2be623b7819389428b0d6a124e8d184Brian Paul * You may obtain a copy of the License at 7afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * 8afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * http://www.apache.org/licenses/LICENSE-2.0 9afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * 10afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * Unless required by applicable law or agreed to in writing, software 11afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * distributed under the License is distributed on an "AS IS" BASIS, 12afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * See the License for the specific language governing permissions and 14afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * limitations under the License. 15afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg */ 16afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 17afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgpackage com.android.server; 18afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 19afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgimport static com.android.server.NativeDaemonConnector.appendEscaped; 20afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 21afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgimport android.test.AndroidTestCase; 22afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgimport android.test.suitebuilder.annotation.MediumTest; 23afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 24afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg/** 25afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * Tests for {@link NativeDaemonConnector}. 26afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg */ 27afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg@MediumTest 28afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgpublic class NativeDaemonConnectorTest extends AndroidTestCase { 29afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg private static final String TAG = "NativeDaemonConnectorTest"; 30afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 31b5b5c52034840dbfcd3f76a9e7cde8b379e7d517Jouk Jansen public void testArgumentNormal() throws Exception { 32b5b5c52034840dbfcd3f76a9e7cde8b379e7d517Jouk Jansen final StringBuilder builder = new StringBuilder(); 33b5b5c52034840dbfcd3f76a9e7cde8b379e7d517Jouk Jansen 34afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg builder.setLength(0); 353c63452e64df7e10aa073c6c3b9492b1d7dabbb8Brian Paul appendEscaped(builder, ""); 36374e7fd6cc95d3d91629a6e1c951d77e8a29c31cBrian Paul assertEquals("", builder.toString()); 37374e7fd6cc95d3d91629a6e1c951d77e8a29c31cBrian Paul 3871dea349d2be623b7819389428b0d6a124e8d184Brian Paul builder.setLength(0); 39afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg appendEscaped(builder, "foo"); 4071dea349d2be623b7819389428b0d6a124e8d184Brian Paul assertEquals("foo", builder.toString()); 41afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 42afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg builder.setLength(0); 43afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg appendEscaped(builder, "foo\"bar"); 44afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg assertEquals("foo\\\"bar", builder.toString()); 45afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 46afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg builder.setLength(0); 47afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg appendEscaped(builder, "foo\\bar\\\"baz"); 48afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg assertEquals("foo\\\\bar\\\\\\\"baz", builder.toString()); 49afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg } 50afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 51afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg public void testArgumentWithSpaces() throws Exception { 5249bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul final StringBuilder builder = new StringBuilder(); 53afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 5449bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul builder.setLength(0); 5549bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul appendEscaped(builder, "foo bar"); 5649bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul assertEquals("\"foo bar\"", builder.toString()); 5749bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul 58afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg builder.setLength(0); 59afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg appendEscaped(builder, "foo\"bar\\baz foo"); 60afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg assertEquals("\"foo\\\"bar\\\\baz foo\"", builder.toString()); 6149bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul } 62afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 6349bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul public void testArgumentWithUtf() throws Exception { 6449bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul final StringBuilder builder = new StringBuilder(); 6549bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul 6649bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul builder.setLength(0); 6749bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul appendEscaped(builder, "caf\u00E9 c\u00F6ffee"); 6849bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul assertEquals("\"caf\u00E9 c\u00F6ffee\"", builder.toString()); 6949bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul } 7049bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul} 7149bef526fde084b3ab20e9ff19bb89ecc31d4e55Brian Paul