Added test cases for improving line and branch coverage (#1150)
* Initial Commit * Assignment 1 Submissionmaster
parent
7f8607b881
commit
80842d72db
|
@ -1,8 +1,12 @@
|
|||
package us.codecraft.webmagic;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -14,4 +18,23 @@ public class SiteTest {
|
|||
assertEquals(StandardCharsets.UTF_8.name(), site.getDefaultCharset());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addCookieTest(){
|
||||
Site site=Site.me().setDefaultCharset(StandardCharsets.UTF_8.name());
|
||||
site.addCookie("cookieDefault","cookie-webmagicDefault");
|
||||
String firstDomain="example.com";
|
||||
String secondDomain="exampleCopy.com";
|
||||
site.addCookie(firstDomain, "cookie", "cookie-webmagic");
|
||||
site.addCookie(firstDomain, "cookieCopy", "cookie-webmagicCopy");
|
||||
site.addCookie(secondDomain, "cookie", "cookie-webmagic");
|
||||
Map<String, Map<String, String>> allCookies = site.getAllCookies();
|
||||
List<String> domains=new ArrayList<>();
|
||||
for(String key : allCookies.keySet()){
|
||||
domains.add(key);
|
||||
}
|
||||
assertEquals("cookie-webmagic", allCookies.get(firstDomain).get("cookie"));
|
||||
assertEquals("cookie-webmagicCopy", allCookies.get(firstDomain).get("cookieCopy"));
|
||||
assertEquals("cookie-webmagic", allCookies.get(secondDomain).get("cookie"));
|
||||
assertEquals(2, domains.size());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ import static com.github.dreamhead.moco.Moco.uri;
|
|||
import static com.github.dreamhead.moco.Moco.with;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertThrows;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
/**
|
||||
|
@ -333,5 +334,13 @@ public class HttpClientDownloaderTest {
|
|||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_no_task_download(){
|
||||
Request request = new Request();
|
||||
request.setUrl("http://127.0.0.1:13423/");
|
||||
HttpClientDownloader httpClientDownloader = new HttpClientDownloader();
|
||||
assertThrows(NullPointerException.class, () -> httpClientDownloader.download(request,null));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
package us.codecraft.webmagic.selector;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class AndSelectorTest {
|
||||
|
||||
@Test
|
||||
public void testSelectList() {
|
||||
String htmlContent = "<!DOCTYPE html>\n" +
|
||||
"<html lang=\"en\">\n" +
|
||||
"<head>\n" +
|
||||
" <meta charset=\"UTF-8\">\n" +
|
||||
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
|
||||
" <title>HTML with XPath</title>\n" +
|
||||
"</head>\n" +
|
||||
"<body>\n" +
|
||||
" <div class=\"container\">\n" +
|
||||
" <div class=\"item1\">Item 1</div>\n" +
|
||||
" <div class=\"item2\">Item 2</div>\n" +
|
||||
" </div>\n" +
|
||||
"</body>\n" +
|
||||
"</html>";
|
||||
List<Selector> selectors = new ArrayList<Selector>();
|
||||
selectors.add(new CssSelector("div"));
|
||||
selectors.add(new XpathSelector("//div[@class='item1']"));
|
||||
AndSelector andSelector = new AndSelector(selectors);
|
||||
List<String> result = andSelector.selectList(htmlContent);
|
||||
assertEquals("<div class=\"item1\">\n Item 1\n</div>", result.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSelectList_NoResults() {
|
||||
String htmlContent = "<!DOCTYPE html>\n" +
|
||||
"<html lang=\"en\">\n" +
|
||||
"<head>\n" +
|
||||
" <meta charset=\"UTF-8\">\n" +
|
||||
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
|
||||
" <title>HTML with XPath</title>\n" +
|
||||
"</head>\n" +
|
||||
"<body>\n" +
|
||||
" <div class=\"container\">\n" +
|
||||
" <div class=\"item1\">Item 1</div>\n" +
|
||||
" <div class=\"item2\">Item 2</div>\n" +
|
||||
" </div>\n" +
|
||||
"</body>\n" +
|
||||
"</html>";
|
||||
List<Selector> selectors = new ArrayList<Selector>();
|
||||
selectors.add(new CssSelector("div"));
|
||||
selectors.add(new XpathSelector("//div[@class='item']"));
|
||||
AndSelector andSelector = new AndSelector(selectors);
|
||||
List<String> result = andSelector.selectList(htmlContent);
|
||||
assertEquals(0, result.size());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package us.codecraft.webmagic.selector;
|
||||
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.runners.MockitoJUnitRunner;
|
||||
|
||||
import java.util.List;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class CssSelectorTest {
|
||||
|
||||
@Test
|
||||
public void testSelectElement() {
|
||||
CssSelector cssSelector = new CssSelector("div");
|
||||
String htmlContent = "<html><head><title>Dummy Page</title></head><body><div id=\"dummyDiv\">Hello World!</div></body></html>";
|
||||
Document doc = Jsoup.parse(htmlContent);
|
||||
Element dummyElement = doc.getElementById("dummyDiv");
|
||||
Element resultElement = cssSelector.selectElement(dummyElement);
|
||||
assertNotNull(resultElement);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSelectList() {
|
||||
CssSelector cssSelector = new CssSelector("div");
|
||||
String htmlContent = "<html><head><title>Dummy Page</title></head><body><div id=\"dummyDiv\">Hello World!</div></body></html>";
|
||||
Document doc = Jsoup.parse(htmlContent);
|
||||
Element dummyElement = doc.getElementById("dummyDiv");
|
||||
List<String> result = cssSelector.selectList(dummyElement);
|
||||
assertEquals(1, result.size());
|
||||
assertEquals("[<div id=\"dummyDiv\">\n Hello World!\n</div>]", result.toString());
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package us.codecraft.webmagic.selector;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class OrSelectorTest {
|
||||
@Test
|
||||
public void testSelectList() {
|
||||
String htmlContent = "<!DOCTYPE html>\n" +
|
||||
"<html lang=\"en\">\n" +
|
||||
"<head>\n" +
|
||||
" <meta charset=\"UTF-8\">\n" +
|
||||
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
|
||||
" <title>HTML with XPath</title>\n" +
|
||||
"</head>\n" +
|
||||
"<body>\n" +
|
||||
" <div class=\"container\">\n" +
|
||||
" <div class=\"item1\">Item 1</div>\n" +
|
||||
" <div class=\"item2\">Item 2</div>\n" +
|
||||
" </div>\n" +
|
||||
"</body>\n" +
|
||||
"</html>";
|
||||
String expectedResult = "[<head>\n" +
|
||||
" <meta charset=\"UTF-8\">\n" +
|
||||
" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
|
||||
" <title>HTML with XPath</title>\n" +
|
||||
"</head>, <div class=\"item1\">\n" +
|
||||
" Item 1\n" +
|
||||
"</div>, <div class=\"item2\">\n" +
|
||||
" Item 2\n" +
|
||||
"</div>]";
|
||||
List<Selector> selectors = new ArrayList<Selector>();
|
||||
selectors.add(new CssSelector("head"));
|
||||
selectors.add(new XpathSelector("//div[@class='item1']"));
|
||||
selectors.add(new XpathSelector("//div[@class='item2']"));
|
||||
OrSelector orSelector = new OrSelector(selectors);
|
||||
List<String> result = orSelector.selectList(htmlContent);
|
||||
assertEquals(expectedResult, result.toString());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue