1 // Copyright 2014 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.
5 package org.chromium.components.devtools_bridge.commands;
7 import android.test.InstrumentationTestCase;
8 import android.test.suitebuilder.annotation.SmallTest;
10 import junit.framework.Assert;
12 import org.chromium.components.devtools_bridge.RTCConfiguration;
14 import java.util.List;
17 * Tests for {@link ParamDefinitions}
19 public class ParamDefinitionsTest extends InstrumentationTestCase {
21 public void testStringParam() throws Exception {
22 ParamDefinition<String> param = ParamDefinitions.newStringParam("NAME");
23 Assert.assertEquals("_NAME", param.name());
24 Assert.assertEquals("string", param.type());
25 Assert.assertEquals("STRING", param.fromString("STRING"));
26 Assert.assertEquals("STRING", param.toString("STRING"));
30 public void testStringListParam() throws Exception {
31 ParamDefinition<List<String>> param = ParamDefinitions.newStringListParam("NAME");
32 Assert.assertEquals("_NAME", param.name());
33 Assert.assertEquals("string", param.type());
35 List<String> value = param.fromString("[\"ITEM1\",\"ITEM2\"]");
36 Assert.assertEquals(2, value.size());
37 Assert.assertEquals("ITEM1", value.get(0));
38 Assert.assertEquals("ITEM2", value.get(1));
41 param.fromString("{\"ITEM1\",\"ITEM2\"}");
42 Assert.fail("Exception expected");
43 } catch (CommandFormatException e) {
47 List<String> clone = param.fromString(param.toString(value));
48 Assert.assertEquals(value.size(), clone.size());
49 Assert.assertEquals(value.get(0), clone.get(0));
50 Assert.assertEquals(value.get(1), clone.get(1));
54 public void testConfigParam() throws Exception {
55 ParamDefinition<RTCConfiguration> param = ParamDefinitions.newConfigParam("NAME");
56 Assert.assertEquals("_NAME", param.name());
57 Assert.assertEquals("string", param.type());
59 RTCConfiguration value = param.fromString(
60 "{\"iceServers\": [{\"uri\": \"http://example.org\"}]}");
61 Assert.assertNotNull(value);
62 Assert.assertEquals(1, value.iceServers.size());
63 Assert.assertEquals("http://example.org", value.iceServers.get(0).uri);
66 param.fromString("[");
67 Assert.fail("Exception expected");
68 } catch (CommandFormatException e) {
72 value = new RTCConfiguration.Builder()
73 .addIceServer("http://example.org/1", "USERNAME", "CREDENTIAL")
74 .addIceServer("http://example.org/2", "USERNAME", "CREDENTIAL")
76 RTCConfiguration clone = param.fromString(param.toString(value));
77 Assert.assertEquals(value.iceServers.size(), clone.iceServers.size());
78 Assert.assertEquals(value.iceServers.get(0).username, clone.iceServers.get(0).username);
79 Assert.assertEquals(value.iceServers.get(1).credential, clone.iceServers.get(1).credential);