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