Package org.rydia.server

Source Code of org.rydia.server.PageLinkParserTest

/**
* This file is part of Rydia.
*
* Rydia is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Rydia 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Rydia.  If not, see <http://www.gnu.org/licenses/>.
**/
package org.rydia.server;

import static org.junit.Assert.*;
import org.junit.Test;
import org.rydia.client.PageLinkParser;

/**
* <u><b><font color="red">FOR INTERNAL USE ONLY.</font></b></u>
*
* Note: This test is in the server package but the class it tests is actually
* in the client package.  This may cause errors, see if we can extend GWTTestCase later
*
* Copyright (c)2007, Daniel Kaplan
*
* @author Daniel Kaplan
* @since 7.11.6
*/
public class PageLinkParserTest {
    private static final String ONLY_PAGE = "<a href=\"page://3\">blah</a>";
    private static final String ONLY_PAGE_SPACE = " <a   href=\"page://3\"  >blah</a  >  ";
    private static final String FAKE_PAGE = "href=\"page://2\"<a href=\"page://3\">blah</a>href=\"page://2\"";
    private static final String QUOTE_PAGE = "<a href='page://3'>blah</a>";
    private static final String DOUBLE_QUOTE_FAKE_PAGE = "\"<a href='page://3'>blah</a>\"";
    private static final String SINGLE_QUOTE_FAKE_PAGE = "href=\"page://2\"'<a href='page://3'>blah</a>'";
    private static final String UNCLOSED_DOUBLE_QUOTE = "blah blah \" blah blah";
    private static final String UNCLOSED_TAG = "blah blah \" blah\" blah<a ";
    private static final String UNOPENED_TAG = "blah blah \" blah\" blah> ";
    private static final String OTHER_TAGS = "blah <b/> <p>hi</p> <div> how are you? </div>";
    private static final String FAKE_ATTRIBUTE = "<a href=\"http://blah\" alt=\"<a href='page://3'>blah</a>\">this alt is fake</a>";
    private static final String FAKE_ATTRIBUTE_SINGLE_QUOTE = "<a href=\"http://blah\" alt='<a href=\"page://3\">blah</a>'>this alt is fake</a>";
    private static final String NORMAL_LINK = "<a href=\"http://blah\">normal link</a>";
    private static final String MULTIPLE_LINKS = " <a href = \"page://3\" >  hi  </a> <a href=\"http://blah\">normal link</a>  <a href = \"page://5\" >  bye  </a>";

    @Test
    public void getTagsOnly() {
        assertEquals("<a href=\"page://3\">    </a>", new PageLinkParser(ONLY_PAGE, null).getTagsOnly());
        assertEquals(" <a   href=\"page://3\"  >    </a  >  ", new PageLinkParser(ONLY_PAGE_SPACE, null).getTagsOnly());
        assertEquals("               <a href=\"page://3\">    </a>               ", new PageLinkParser(FAKE_PAGE, null).getTagsOnly());
        assertEquals("<a href='page://3'>    </a>", new PageLinkParser(QUOTE_PAGE, null).getTagsOnly());
        assertEquals("                             ", new PageLinkParser(DOUBLE_QUOTE_FAKE_PAGE, null).getTagsOnly());
        assertEquals("                                            ", new PageLinkParser(SINGLE_QUOTE_FAKE_PAGE, null).getTagsOnly());
        assertEquals("                     ", new PageLinkParser(UNCLOSED_DOUBLE_QUOTE, null).getTagsOnly());
        assertEquals("                      <a ", new PageLinkParser(UNCLOSED_TAG, null).getTagsOnly());
        assertEquals("                        ", new PageLinkParser(UNOPENED_TAG, null).getTagsOnly());
        assertEquals("     <b/> <p>  </p> <div>              </div>", new PageLinkParser(OTHER_TAGS, null).getTagsOnly());
        assertEquals("<a href=\"http://blah\" alt=\" a href='page://3' blah /a \">                </a>", new PageLinkParser(FAKE_ATTRIBUTE, null).getTagsOnly());
        assertEquals("<a href=\"http://blah\" alt=' a href=\"page://3\" blah /a '>                </a>", new PageLinkParser(FAKE_ATTRIBUTE_SINGLE_QUOTE, null).getTagsOnly());
        assertEquals("<a href=\"http://blah\">           </a>", new PageLinkParser(NORMAL_LINK, null).getTagsOnly());
        assertEquals(" <a href = \"page://3\" >      </a> <a href=\"http://blah\">           </a>  <a href = \"page://5\" >       </a>", new PageLinkParser(MULTIPLE_LINKS, null).getTagsOnly());
    }

    @Test
    public void getPageLinksAsDollars() {
        assertEquals("$$$$$$$$$$$$$$$$$$$$$$$$$$$", new PageLinkParser(ONLY_PAGE, null).getPageLinksAsDollars());
        assertEquals(" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$  ", new PageLinkParser(ONLY_PAGE_SPACE, null).getPageLinksAsDollars());
        assertEquals("               $$$$$$$$$$$$$$$$$$$$$$$$$$$               ", new PageLinkParser(FAKE_PAGE, null).getPageLinksAsDollars());
        assertEquals("$$$$$$$$$$$$$$$$$$$$$$$$$$$", new PageLinkParser(QUOTE_PAGE, null).getPageLinksAsDollars());
        assertEquals("                                            ", new PageLinkParser(SINGLE_QUOTE_FAKE_PAGE, null).getPageLinksAsDollars());
        assertEquals("                             ", new PageLinkParser(DOUBLE_QUOTE_FAKE_PAGE, null).getPageLinksAsDollars());
        assertEquals("                     ", new PageLinkParser(UNCLOSED_DOUBLE_QUOTE, null).getPageLinksAsDollars());
        assertEquals("                      <a ", new PageLinkParser(UNCLOSED_TAG, null).getPageLinksAsDollars());
        assertEquals("                        ", new PageLinkParser(UNOPENED_TAG, null).getPageLinksAsDollars());
        assertEquals("     <b/> <p>  </p> <div>              </div>", new PageLinkParser(OTHER_TAGS, null).getPageLinksAsDollars());
        assertEquals("<a href=\"http://blah\" alt=\" a href='page://3' blah /a \">                </a>", new PageLinkParser(FAKE_ATTRIBUTE, null).getPageLinksAsDollars());
        assertEquals("<a href=\"http://blah\" alt=' a href=\"page://3\" blah /a '>                </a>", new PageLinkParser(FAKE_ATTRIBUTE_SINGLE_QUOTE, null).getPageLinksAsDollars());
        assertEquals("<a href=\"http://blah\">           </a>", new PageLinkParser(NORMAL_LINK, null).getPageLinksAsDollars());
        assertEquals(" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ <a href=\"http://blah\">           </a>  $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", new PageLinkParser(MULTIPLE_LINKS, null).getPageLinksAsDollars());
    }

    @Test
    public void getPageToJumpTo() {
        assertEquals(3, new PageLinkParser(ONLY_PAGE, null).getPageToJumpTo(0));
        assertEquals(3, new PageLinkParser(ONLY_PAGE_SPACE, null).getPageToJumpTo(1));
        assertEquals(3, new PageLinkParser(FAKE_PAGE, null).getPageToJumpTo(15));
        assertEquals(3, new PageLinkParser(QUOTE_PAGE, null).getPageToJumpTo(0));
        assertEquals(3, new PageLinkParser(MULTIPLE_LINKS, null).getPageToJumpTo(1));
        assertEquals(5, new PageLinkParser(MULTIPLE_LINKS, null).getPageToJumpTo(75));
    }

    @Test
    public void getPageLinkLabel() {
        assertEquals("blah", new PageLinkParser(ONLY_PAGE, null).getPageLinkLabel(0, 27));
        assertEquals("blah", new PageLinkParser(ONLY_PAGE_SPACE, null).getPageLinkLabel(0, 36));
        assertEquals("blah", new PageLinkParser(FAKE_PAGE, null).getPageLinkLabel(15, 44));
        assertEquals("blah", new PageLinkParser(QUOTE_PAGE, null).getPageLinkLabel(0, 27));
        assertEquals("  hi  ", new PageLinkParser(MULTIPLE_LINKS, null).getPageLinkLabel(1, 33));
        assertEquals("  bye  ", new PageLinkParser(MULTIPLE_LINKS, null).getPageLinkLabel(73, 106));
    }

}
TOP

Related Classes of org.rydia.server.PageLinkParserTest

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.