/**
* Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.gistlabs.mechanize.document.html;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.List;
import org.junit.Test;
import com.gistlabs.mechanize.MechanizeTestCase;
import com.gistlabs.mechanize.Resource;
import com.gistlabs.mechanize.util.apache.ContentType;
/**
* @author Martin Kersten<Martin.Kersten.mk@gmail.com>
*/
public class HtmlElementsTest extends MechanizeTestCase {
protected String contentType() {
return ContentType.TEXT_HTML.getMimeType();
}
@Test
public void testFindingALink() {
addPageRequest("http://test.com",
newHtml("Test Page", "<a href=\"http://test.com/myPage.html\">myPage</a>"));
Resource page = agent().get("http://test.com");
HtmlElement htmlElement = ((HtmlDocument)page).htmlElements().find("*[href$='myPage.html']");
assertNotNull(htmlElement);
assertEquals("http://test.com/myPage.html", htmlElement.getAttribute("href"));
}
@Test
public void testFindingTwoLinks() {
addPageRequest("http://test.com",
newHtml("Test Page", "<a href=\"link1\">link1</a><a href=\"link2\">link2</a>"));
Resource page = agent().get("http://test.com");
List<HtmlElement> elements = ((HtmlDocument)page).htmlElements().findAll("a[href*='link']");//byHRef(regEx("link[0-9]")));
assertNotNull(elements);
assertEquals(2, elements.size());
assertEquals("link1", elements.get(0).getAttribute("href"));
assertEquals("link2", elements.get(1).getAttribute("href"));
}
}