/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.ngrinder.script.service;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Test;
import org.ngrinder.common.exception.NGrinderRuntimeException;
import org.ngrinder.model.User;
import org.ngrinder.script.handler.JythonScriptHandler;
public class FileEntryServiceTest {
private FileEntryService fileEntryService = new FileEntryService();
@Test
public void testFileTemplateWithoutOptions() {
User user = new User();
user.setUserName("JunHo Yoon");
String content = fileEntryService.loadTemplate(user, new JythonScriptHandler(), "http://helloworld/myname/is",
"hello", null);
assertThat(content, containsString("JunHo Yoon"));
assertThat(content, containsString("http://helloworld/myname/is"));
}
@Test
public void testFileTemplateWithOptions() {
String options = "{\"method\":\"POST_TEST\"," +
"\"headers\":[{\"name\":\"header\",\"value\":\"123\"}," +
"{\"name\":\"auth\",\"value\":\"no\"}]," +
"\"params\":[{\"name\":\"pName\",\"value\":\"pValue\"}]," +
"\"cookies\":[{\"name\":\"cook\",\"value\":\"good\",\"domain\":\"naver.com\",\"path\":\"/home\"}]}";
User user = new User();
user.setUserName("Gisoo Gwon");
String content = fileEntryService.loadTemplate(user, new JythonScriptHandler(), "http://helloworld/myname/is",
"hello", options);
System.out.println(content);
assertThat(content, containsString("Gisoo Gwon"));
assertThat(content, containsString("http://helloworld/myname/is"));
assertThat(content, containsString("request1.POST_TEST"));
assertThat(content, containsString("self.headers.append(NVPair(\"header\", \"123\"))"));
assertThat(content, containsString("self.params.append(NVPair(\"pName\", \"pValue\"))"));
assertThat(content, containsString("Cookie(\"cook\", \"good\", \"naver.com\", \"/home\""));
}
@Test
public void testFileNameFromUrl() {
assertThat(fileEntryService.getPathFromUrl("http://helloworld/wow;wow"), is("helloworld/wow_wow"));
assertThat(fileEntryService.getPathFromUrl("http://hellowor%d/222$wewe"), is("hellowor_d/222_wewe"));
assertThat(fileEntryService.getPathFromUrl("http://helloworld"), is("helloworld"));
assertThat(fileEntryService.getPathFromUrl("http://helloworld.com"), is("helloworld.com"));
assertThat(fileEntryService.getPathFromUrl("http://helloworld.com/wewe.nhn"), is("helloworld.com/wewe.nhn"));
assertThat(fileEntryService.getPathFromUrl("http://helloworld.com/wewe.nhn?wow=%dd"),
is("helloworld.com/wewe.nhn"));
}
@Test
public void testPathDivide() {
String[] dividePathAndFile = fileEntryService.dividePathAndFile("helloworld.com/hello");
assertThat(dividePathAndFile[0], is("helloworld.com"));
assertThat(dividePathAndFile[1], is("hello"));
dividePathAndFile = fileEntryService.dividePathAndFile("helloworld.com");
assertThat(dividePathAndFile[0], is(""));
assertThat(dividePathAndFile[1], is("helloworld.com"));
}
@Test(expected = NGrinderRuntimeException.class)
public void testFileNameFromInvalidUrl() {
fileEntryService.getPathFromUrl("htt22p://helloworld22");
}
}