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;
13 import org.chromium.components.devtools_bridge.SignalingReceiverMock;
15 import java.util.ArrayList;
16 import java.util.List;
19 * Tests for {@link CommandReceiver}
21 public class CommandReceiverTest extends InstrumentationTestCase {
22 private static final RTCConfiguration CONFIG = new RTCConfiguration.Builder()
25 private final SignalingReceiverMock mMock = new SignalingReceiverMock();
26 private final CommandReceiver mReceiver = new CommandReceiver(mMock);
27 private final CompletionHandler mCompletionHandler = new CompletionHandler();
29 private static class CompletionHandler implements Runnable {
30 public boolean done = false;
39 public void testStartSessionCommand() {
40 Commands.StartSessionCommand command =
41 new Commands.StartSessionCommand("SESSION_ID", CONFIG, "OFFER");
43 mReceiver.receive(command, mCompletionHandler);
44 Assert.assertEquals("SESSION_ID", mMock.sessionId);
45 Assert.assertEquals("OFFER", mMock.offer);
47 mMock.negotiationCallback.onSuccess("ANSWER");
48 Assert.assertTrue(mCompletionHandler.done);
49 Assert.assertEquals(command.getResult(), "ANSWER");
53 public void testRenegotiateCommand() {
54 Commands.RenegotiateCommand command =
55 new Commands.RenegotiateCommand("SESSION_ID", "OFFER");
57 mReceiver.receive(command, mCompletionHandler);
58 Assert.assertEquals("SESSION_ID", mMock.sessionId);
59 Assert.assertEquals("OFFER", mMock.offer);
61 mMock.negotiationCallback.onSuccess("ANSWER");
62 Assert.assertTrue(mCompletionHandler.done);
63 Assert.assertEquals(command.getResult(), "ANSWER");
67 public void testIceExchangeCommand() {
68 List<String> candidates = new ArrayList<String>();
70 Commands.IceExchangeCommand command =
71 new Commands.IceExchangeCommand("SESSION_ID", candidates);
73 mReceiver.receive(command, mCompletionHandler);
74 Assert.assertEquals("SESSION_ID", mMock.sessionId);
76 mMock.iceExchangeCallback.onSuccess(candidates);
77 Assert.assertTrue(mCompletionHandler.done);
81 public void testCommandFailure() {
82 Commands.RenegotiateCommand command =
83 new Commands.RenegotiateCommand("SESSION_ID", "OFFER");
85 mReceiver.receive(command, mCompletionHandler);
87 mMock.negotiationCallback.onFailure("ERROR_MESSAGE");
88 Assert.assertTrue(mCompletionHandler.done);
89 Assert.assertEquals(command.getErrorMessage(), "ERROR_MESSAGE");