Package com.kurento.test.recorder

Source Code of com.kurento.test.recorder.RecorderIT

/*
* (C) Copyright 2014 Kurento (http://kurento.org/)
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser General Public License
* (LGPL) version 2.1 which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-2.1.html
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*/
package com.kurento.test.recorder;

import java.io.File;
import java.io.IOException;
import java.net.URL;

import org.apache.commons.io.FileUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.jboss.arquillian.junit.Arquillian;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.kurento.demo.internal.VideoURLs;
import com.kurento.test.base.BaseArquillianTst;

/**
* Integration test (JUnit/Arquillian) for HTTP Player. It uses
* <code>HttpClient</code> to interact with Kurento Application Server (KAS).
*
* @author Boni Garcia (bgarcia@gsyc.es)
* @since 4.1.1
* @see <a href="http://hc.apache.org//">Apache HTTP Component</a>
*/
@RunWith(Arquillian.class)
public class RecorderIT extends BaseArquillianTst {

  private static final Logger log = LoggerFactory.getLogger(RecorderIT.class);

  @Test
  public void testRecorderTunnel() throws IOException {
    testRecord("recorderTunnel", 200);
  }

  @Test
  public void testRecorderRedirect() throws IOException {
    testRecord("recorderRedirect", 307);
  }

  @Test
  public void testRecorderTunnelRepository() throws IOException {
    testRecord("recorderTunnelRepository", 200);
  }

  private void testRecord(String handler, int statusCode) throws IOException {
    // To follow redirect: .setRedirectStrategy(new LaxRedirectStrategy())
    HttpClient client = HttpClientBuilder.create().build();
    HttpPost post = new HttpPost("http://localhost:" + getServerPort()
        + "/kmf-content-api-test/" + handler);
    MultipartEntityBuilder multipartEntity = MultipartEntityBuilder
        .create();
    multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

    File file = new File("small");
    URL small = new URL(VideoURLs.map.get("small-webm"));
    FileUtils.copyURLToFile(small, file);
    FileBody fb = new FileBody(file);
    multipartEntity.addPart("file", fb);

    HttpEntity httpEntity = multipartEntity.build();
    post.setEntity(httpEntity);

    EntityUtils.consume(httpEntity);
    HttpResponse response = client.execute(post);
    final int responseStatusCode = response.getStatusLine().getStatusCode();

    log.info("Response Status Code: {}", responseStatusCode);
    log.info("Deleting tmp file: {}", file.delete());

    Assert.assertEquals("HTTP response status code must be " + statusCode,
        statusCode, responseStatusCode);
  }
}
TOP

Related Classes of com.kurento.test.recorder.RecorderIT

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.