17767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn/* 27767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Copyright (C) 2011 The Android Open Source Project 37767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * 47767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 57767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * you may not use this file except in compliance with the License. 67767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * You may obtain a copy of the License at 77767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * 87767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 97767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * 107767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 117767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 127767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * See the License for the specific language governing permissions and 147767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * limitations under the License. 157767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn */ 167767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 177767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornpackage com.android.server; 187767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 197767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornimport static com.android.server.NativeDaemonConnector.appendEscaped; 207767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 217767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornimport android.test.AndroidTestCase; 227767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornimport android.test.suitebuilder.annotation.MediumTest; 237767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 24752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey/** 257767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn * Tests for {@link NativeDaemonConnector}. 267767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn */ 277767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn@MediumTest 28752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkeypublic class NativeDaemonConnectorTest extends AndroidTestCase { 29752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey private static final String TAG = "NativeDaemonConnectorTest"; 307767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 317767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn public void testArgumentNormal() throws Exception { 327767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn final StringBuilder builder = new StringBuilder(); 337767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 347767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn builder.setLength(0); 357767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn appendEscaped(builder, ""); 367767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn assertEquals("", builder.toString()); 377767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 387767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn builder.setLength(0); 397767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn appendEscaped(builder, "foo"); 407767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn assertEquals("foo", builder.toString()); 417767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 42752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey builder.setLength(0); 43752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey appendEscaped(builder, "foo\"bar"); 447767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn assertEquals("foo\\\"bar", builder.toString()); 457767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 467767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn builder.setLength(0); 477767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn appendEscaped(builder, "foo\\bar\\\"baz"); 487767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn assertEquals("foo\\\\bar\\\\\\\"baz", builder.toString()); 497767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn } 507767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 517767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn public void testArgumentWithSpaces() throws Exception { 527767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn final StringBuilder builder = new StringBuilder(); 53752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey 547767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn builder.setLength(0); 557767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn appendEscaped(builder, "foo bar"); 567767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn assertEquals("\"foo bar\"", builder.toString()); 577767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 587767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn builder.setLength(0); 597767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn appendEscaped(builder, "foo\"bar\\baz foo"); 607767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn assertEquals("\"foo\\\"bar\\\\baz foo\"", builder.toString()); 617767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn } 627767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 637767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn public void testArgumentWithUtf() throws Exception { 64752cd922f7091dfd5401faf70dc248934a9dbb6dJeff Sharkey final StringBuilder builder = new StringBuilder(); 657767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 667767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn builder.setLength(0); 677767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn appendEscaped(builder, "caf\u00E9 c\u00F6ffee"); 687767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn assertEquals("\"caf\u00E9 c\u00F6ffee\"", builder.toString()); 697767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn } 707767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn} 717767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn