Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / components / devtools_bridge / android / javatests / src / org / chromium / components / devtools_bridge / commands / CommandReceiverTest.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 import org.chromium.components.devtools_bridge.SignalingReceiverMock;
14
15 import java.util.ArrayList;
16 import java.util.List;
17
18 /**
19  * Tests for {@link CommandReceiver}
20  */
21 public class CommandReceiverTest extends InstrumentationTestCase {
22     private static final RTCConfiguration CONFIG = new RTCConfiguration.Builder()
23             .build();
24
25     private final SignalingReceiverMock mMock = new SignalingReceiverMock();
26     private final CommandReceiver mReceiver = new CommandReceiver(mMock);
27     private final CompletionHandler mCompletionHandler = new CompletionHandler();
28
29     private static class CompletionHandler implements Runnable {
30         public boolean done = false;
31
32         @Override
33         public void run() {
34             done = true;
35         }
36     };
37
38     @SmallTest
39     public void testStartSessionCommand() {
40         Commands.StartSessionCommand command =
41                 new Commands.StartSessionCommand("SESSION_ID", CONFIG, "OFFER");
42
43         mReceiver.receive(command, mCompletionHandler);
44         Assert.assertEquals("SESSION_ID", mMock.sessionId);
45         Assert.assertEquals("OFFER", mMock.offer);
46
47         mMock.negotiationCallback.onSuccess("ANSWER");
48         Assert.assertTrue(mCompletionHandler.done);
49         Assert.assertEquals(command.getResult(), "ANSWER");
50     }
51
52     @SmallTest
53     public void testRenegotiateCommand() {
54         Commands.RenegotiateCommand command =
55                 new Commands.RenegotiateCommand("SESSION_ID", "OFFER");
56
57         mReceiver.receive(command, mCompletionHandler);
58         Assert.assertEquals("SESSION_ID", mMock.sessionId);
59         Assert.assertEquals("OFFER", mMock.offer);
60
61         mMock.negotiationCallback.onSuccess("ANSWER");
62         Assert.assertTrue(mCompletionHandler.done);
63         Assert.assertEquals(command.getResult(), "ANSWER");
64     }
65
66     @SmallTest
67     public void testIceExchangeCommand() {
68         List<String> candidates = new ArrayList<String>();
69
70         Commands.IceExchangeCommand command =
71                 new Commands.IceExchangeCommand("SESSION_ID", candidates);
72
73         mReceiver.receive(command, mCompletionHandler);
74         Assert.assertEquals("SESSION_ID", mMock.sessionId);
75
76         mMock.iceExchangeCallback.onSuccess(candidates);
77         Assert.assertTrue(mCompletionHandler.done);
78     }
79
80     @SmallTest
81     public void testCommandFailure() {
82         Commands.RenegotiateCommand command =
83                 new Commands.RenegotiateCommand("SESSION_ID", "OFFER");
84
85         mReceiver.receive(command, mCompletionHandler);
86
87         mMock.negotiationCallback.onFailure("ERROR_MESSAGE");
88         Assert.assertTrue(mCompletionHandler.done);
89         Assert.assertEquals(command.getErrorMessage(), "ERROR_MESSAGE");
90     }
91 }