/*
* PinDroid - http://code.google.com/p/PinDroid/
*
* Copyright (C) 2010 Matt Schmidt
*
* PinDroid 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.
*
* PinDroid 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 PinDroid; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
package com.pindroid.test.xml;
import com.pindroid.providers.BookmarkContent.Bookmark;
import com.pindroid.xml.SaxBookmarkParser;
import org.junit.Test;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.util.ArrayList;
import static org.junit.Assert.assertEquals;
public class SaxBookmarkParserTest {
private String singleBookmarkTest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<posts user=\"user\">" +
"<post href=\"http://www.howtocreate.co.uk/tutorials/texterise.php?dom=1\" " +
"description=\"JavaScript DOM reference\" " +
"extended=\"dom reference\" " +
"hash=\"c0238dc0c44f07daedd9a1fd9bbdeebd\" " +
"meta=\"92959a96fd69146c5fe7cbde6e5720f2\" " +
"tag=\"dom javascript webdev\" time=\"2005-11-28T05:26:09Z\" />" +
"</posts>";
private String multipleBookmarkTest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<posts user=\"maxpower47\">" +
"<post href=\"http://f-droid.org/wiki/page/com.pindroid\" time=\"2013-01-31T21:30:36Z\" description=\"com.pindroid - F-Droid\" extended=\"\" tag=\"pinboard pindroid\" hash=\"fafff755581363fa720dc8894212e522\" meta=\"f86784d71f229e3b8d061a09b5d60c6f\" />" +
"<post href=\"http://cybernetnews.com/pinboard-android/\" time=\"2013-01-31T21:29:30Z\" description=\"PinDroid: Pinboard for Android\" extended=\"\" tag=\"pindroid pinboard\" hash=\"a84f543a510d8218f16824cf059d33a8\" meta=\"e3f30dc2166dbf73cf1636095fd8bcb6\" />" +
"</posts>";
@Test
public void testSingleBookmarkParsing() throws ParseException{
InputStream is = new ByteArrayInputStream(singleBookmarkTest.getBytes());
SaxBookmarkParser parser = new SaxBookmarkParser(is);
ArrayList<Bookmark> r = parser.parse();
assertEquals(1, r.size());
Bookmark b = r.get(0);
assertEquals("http://www.howtocreate.co.uk/tutorials/texterise.php?dom=1", b.getUrl());
assertEquals("JavaScript DOM reference", b.getDescription());
assertEquals("dom reference", b.getNotes());
assertEquals("c0238dc0c44f07daedd9a1fd9bbdeebd", b.getHash());
assertEquals("92959a96fd69146c5fe7cbde6e5720f2", b.getMeta());
assertEquals("dom javascript webdev", b.getTagString());
assertEquals(1133155569000l, b.getTime());
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void testMultipleBookmarkParsing() throws ParseException{
InputStream is = new ByteArrayInputStream(multipleBookmarkTest.getBytes());
SaxBookmarkParser parser = new SaxBookmarkParser(is);
ArrayList<Bookmark> r = parser.parse();
assertEquals(2, r.size());
Bookmark b1 = r.get(0);
assertEquals("http://f-droid.org/wiki/page/com.pindroid", b1.getUrl());
assertEquals("com.pindroid - F-Droid", b1.getDescription());
assertEquals("", b1.getNotes());
assertEquals("fafff755581363fa720dc8894212e522", b1.getHash());
assertEquals("f86784d71f229e3b8d061a09b5d60c6f", b1.getMeta());
assertEquals("pinboard pindroid", b1.getTagString());
assertEquals(1359667836000l, b1.getTime());
Bookmark b2 = r.get(1);
assertEquals("http://cybernetnews.com/pinboard-android/", b2.getUrl());
assertEquals("PinDroid: Pinboard for Android", b2.getDescription());
assertEquals("", b2.getNotes());
assertEquals("a84f543a510d8218f16824cf059d33a8", b2.getHash());
assertEquals("e3f30dc2166dbf73cf1636095fd8bcb6", b2.getMeta());
assertEquals("pindroid pinboard", b2.getTagString());
assertEquals(1359667770000l, b2.getTime());
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}