class AppTestCase(unittest.TestCase):
    def setUp(self):
        self.app = App("blah")

    def test_get_text_from_element_NodeWithTextOnly(self):
        e = html.fromstring("<a>abcd</a>")
        self.assertEquals("abcd", self.app.get_text_from_element(e))

    def test_get_text_from_element_NodeWithTextAndOneChild(self):
        e = html.fromstring("<a>abcd<c1 />efg</a>")
        self.assertEquals("abcdefg", self.app.get_text_from_element(e))

    def test_get_text_from_element_NodeWithTextAndTwoChildren(self):
        e = html.fromstring("<a>abc<c1/>def</c2>ghi</a>")
        self.assertEquals("abcdefghi", self.app.get_text_from_element(e))

    def test_get_text_from_element_NodeWithTextAndNestedText(self):
        e = html.fromstring("<a>abc<c1>def</c1></c2>ghi</a>")
        self.assertEquals("abcdefghi", self.app.get_text_from_element(e))

    def test_get_text_from_element_NodeWithTextAndBRElement(self):
        e = html.fromstring("<a>abc<br />def</a>")
        self.assertEquals(
            "abc" + os.linesep + "def",
            self.app.get_text_from_element(e)
        )

    def test_get_text_from_element_NodeWithTextAndMultiBRElement(self):
        e = html.fromstring("<a>abc<br /><br />def<br />ghi<br /></a>")
        self.assertEquals(
            "abc" + os.linesep + os.linesep + "def" + os.linesep + "ghi"
                + os.linesep,
            self.app.get_text_from_element(e)
        )

    def test_get_main_url_and_page_number_PlainURL_PageNumber1(self):
        url, n = self.app.get_main_url_and_page_number(
            "http://www.abc.com/product-reviews/"
        )
        self.assertEquals(1, n)
        self.assertEquals("http://www.abc.com/product-reviews/", url)

    def test_get_main_url_and_page_number_URLWithNumber2_PageNumber2(self):
        url, n = self.app.get_main_url_and_page_number(
            "http://www.abc.com/product-reviews/?pageNumber=2"
        )
        self.assertEquals(2, n)
        self.assertEquals("http://www.abc.com/product-reviews/", url)

    def test_get_main_url_and_page_number_URLWithNumber2AndOtherParam_PageNumber2(self):
        url, n = self.app.get_main_url_and_page_number(
            "http://www.abc.com/product-reviews/?a=apple&pageNumber=2"
        )
        self.assertEquals(2, n)
        self.assertEquals("http://www.abc.com/product-reviews/", url)
 def setUp(self):
     self.app = App("blah")