Improved feedhandler test
This commit is contained in:
parent
6b14014b66
commit
d4147fd907
@ -23,7 +23,8 @@ public class FeedHandlerTest extends AndroidTestCase {
|
|||||||
private static final String TAG = "FeedHandlerTest";
|
private static final String TAG = "FeedHandlerTest";
|
||||||
private static final String FEEDS_DIR = "testfeeds";
|
private static final String FEEDS_DIR = "testfeeds";
|
||||||
|
|
||||||
private static final String[] rssUrls = {
|
private static final String[] urls = {
|
||||||
|
"http://bitlove.org/ranzzeit/ranz/feed",
|
||||||
"http://bitlove.org/importthis/mp3/feed",
|
"http://bitlove.org/importthis/mp3/feed",
|
||||||
"http://bitlove.org/astro/youtube/feed",
|
"http://bitlove.org/astro/youtube/feed",
|
||||||
"http://bitlove.org/channelcast/channelcast/feed",
|
"http://bitlove.org/channelcast/channelcast/feed",
|
||||||
@ -371,29 +372,16 @@ public class FeedHandlerTest extends AndroidTestCase {
|
|||||||
"http://bitlove.org/wunderlich/podcast/feed",
|
"http://bitlove.org/wunderlich/podcast/feed",
|
||||||
"http://www.cczwei.de/rss_tvissues.php" };
|
"http://www.cczwei.de/rss_tvissues.php" };
|
||||||
|
|
||||||
private static final String[] atomUrls = {
|
private ArrayList<Feed> feeds;
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
private ArrayList<Feed> rssFeeds;
|
|
||||||
private ArrayList<Feed> atomFeeds;
|
|
||||||
|
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
rssFeeds = new ArrayList<Feed>();
|
feeds = new ArrayList<Feed>();
|
||||||
for (int i = 0; i < rssUrls.length; i++) {
|
for (int i = 0; i < urls.length; i++) {
|
||||||
Feed f = new Feed(rssUrls[i], new Date());
|
Feed f = new Feed(urls[i], new Date());
|
||||||
f.setFile_url(new File(getContext().getExternalFilesDir(FEEDS_DIR)
|
f.setFile_url(new File(getContext().getExternalFilesDir(FEEDS_DIR)
|
||||||
.getAbsolutePath(), "R" + i).getAbsolutePath());
|
.getAbsolutePath(), "R" + i).getAbsolutePath());
|
||||||
rssFeeds.add(f);
|
feeds.add(f);
|
||||||
}
|
|
||||||
|
|
||||||
atomFeeds = new ArrayList<Feed>();
|
|
||||||
for (int i = 0; i < atomUrls.length; i++) {
|
|
||||||
Feed f = new Feed(atomUrls[i], new Date());
|
|
||||||
f.setFile_url(new File(getContext().getExternalFilesDir(FEEDS_DIR)
|
|
||||||
.getAbsolutePath(), "A" + i).getAbsolutePath());
|
|
||||||
atomFeeds.add(f);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -410,17 +398,41 @@ public class FeedHandlerTest extends AndroidTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void downloadFeed(Feed feed) throws IOException {
|
private void downloadFeed(Feed feed) throws IOException {
|
||||||
InputStream in = getInputStream(feed.getDownload_url());
|
int num_retries = 2;
|
||||||
assertNotNull(in);
|
boolean successful = false;
|
||||||
OutputStream out = new BufferedOutputStream(new FileOutputStream(
|
|
||||||
feed.getFile_url()));
|
for (int i = 0; i < num_retries; i++) {
|
||||||
byte[] buffer = new byte[8 * 1024];
|
InputStream in = null;
|
||||||
int count = 0;
|
OutputStream out = null;
|
||||||
while ((count = in.read(buffer)) != -1) {
|
try {
|
||||||
out.write(buffer, 0, count);
|
in = getInputStream(feed.getDownload_url());
|
||||||
|
assertNotNull(in);
|
||||||
|
out = new BufferedOutputStream(new FileOutputStream(
|
||||||
|
feed.getFile_url()));
|
||||||
|
byte[] buffer = new byte[8 * 1024];
|
||||||
|
int count = 0;
|
||||||
|
while ((count = in.read(buffer)) != -1) {
|
||||||
|
out.write(buffer, 0, count);
|
||||||
|
}
|
||||||
|
successful = true;
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if (in != null) {
|
||||||
|
in.close();
|
||||||
|
}
|
||||||
|
if (out != null) {
|
||||||
|
out.close();
|
||||||
|
}
|
||||||
|
if (successful) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!successful) {
|
||||||
|
Log.e(TAG, "Download failed after " + num_retries + " retries");
|
||||||
|
throw new IOException();
|
||||||
}
|
}
|
||||||
in.close();
|
|
||||||
out.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isFeedValid(Feed feed) {
|
private boolean isFeedValid(Feed feed) {
|
||||||
@ -458,22 +470,14 @@ public class FeedHandlerTest extends AndroidTestCase {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testParseRSS() {
|
public void testParseFeeds() {
|
||||||
Log.i(TAG, "Testing RSS feeds");
|
Log.i(TAG, "Testing RSS feeds");
|
||||||
for (Feed feed : rssFeeds) {
|
for (Feed feed : feeds) {
|
||||||
parseFeed(feed);
|
parseFeed(feed);
|
||||||
}
|
}
|
||||||
Log.i(TAG, "RSS Test completed");
|
Log.i(TAG, "RSS Test completed");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testParseAtom() {
|
|
||||||
Log.i(TAG, "Testing Atom feeds");
|
|
||||||
for (Feed feed : atomFeeds) {
|
|
||||||
parseFeed(feed);
|
|
||||||
}
|
|
||||||
Log.i(TAG, "Atom Test completed");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void parseFeed(Feed feed) {
|
private void parseFeed(Feed feed) {
|
||||||
try {
|
try {
|
||||||
Log.i(TAG, "Testing feed with url " + feed.getDownload_url());
|
Log.i(TAG, "Testing feed with url " + feed.getDownload_url());
|
||||||
@ -491,11 +495,7 @@ public class FeedHandlerTest extends AndroidTestCase {
|
|||||||
@Override
|
@Override
|
||||||
protected void tearDown() throws Exception {
|
protected void tearDown() throws Exception {
|
||||||
super.tearDown();
|
super.tearDown();
|
||||||
for (Feed feed : rssFeeds) {
|
for (Feed feed : feeds) {
|
||||||
File f = new File(feed.getFile_url());
|
|
||||||
f.delete();
|
|
||||||
}
|
|
||||||
for (Feed feed : atomFeeds) {
|
|
||||||
File f = new File(feed.getFile_url());
|
File f = new File(feed.getFile_url());
|
||||||
f.delete();
|
f.delete();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user