Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / components / devtools_bridge / android / javatests / src / org / chromium / components / devtools_bridge / commands / ParamDefinitionsTest.java
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.
4
5 package org.chromium.components.devtools_bridge.commands;
6
7 import android.test.InstrumentationTestCase;
8 import android.test.suitebuilder.annotation.SmallTest;
9
10 import junit.framework.Assert;
11
12 import org.chromium.components.devtools_bridge.RTCConfiguration;
13
14 import java.util.List;
15
16 /**
17  * Tests for {@link ParamDefinitions}
18  */
19 public class ParamDefinitionsTest extends InstrumentationTestCase {
20     @SmallTest
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"));
27     }
28
29     @SmallTest
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());
34
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));
39
40         try {
41             param.fromString("{\"ITEM1\",\"ITEM2\"}");
42             Assert.fail("Exception expected");
43         } catch (CommandFormatException e) {
44             // Expected.
45         }
46
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));
51     }
52
53     @SmallTest
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());
58
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);
64
65         try {
66             param.fromString("[");
67             Assert.fail("Exception expected");
68         } catch (CommandFormatException e) {
69             // Expected.
70         }
71
72         value = new RTCConfiguration.Builder()
73                 .addIceServer("http://example.org/1", "USERNAME", "CREDENTIAL")
74                 .addIceServer("http://example.org/2", "USERNAME", "CREDENTIAL")
75                 .build();
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);
80     }
81 }