aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/androidTest/java/org/rssin/rss/FeedLoaderTest.java23
-rw-r--r--app/src/main/java/org/rssin/rss/FeedLoader.java56
2 files changed, 50 insertions, 29 deletions
diff --git a/app/src/androidTest/java/org/rssin/rss/FeedLoaderTest.java b/app/src/androidTest/java/org/rssin/rss/FeedLoaderTest.java
new file mode 100644
index 0000000..f4bbfdd
--- /dev/null
+++ b/app/src/androidTest/java/org/rssin/rss/FeedLoaderTest.java
@@ -0,0 +1,23 @@
+package org.rssin.rss;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import java.net.URL;
+
+/**
+ * Created by Randy on 21-5-2015.
+ */
+public class FeedLoaderTest extends TestCase {
+
+
+ public void testFetchXML() throws Exception {
+ String urlstring = "http://www.pcworld.com/index.rss";
+ URL url = new URL(urlstring);
+ FeedLoader loader = new FeedLoader(url);
+ loader.fetchXML();
+ FeedItem f = loader.getFeed().getPosts().get(0);
+ Assert.assertEquals(f.getTitle(), "Amazon adds local groceries and meals to one-hour Prime Now delivery service");
+ }
+
+} \ No newline at end of file
diff --git a/app/src/main/java/org/rssin/rss/FeedLoader.java b/app/src/main/java/org/rssin/rss/FeedLoader.java
index 726cbac..eabfebd 100644
--- a/app/src/main/java/org/rssin/rss/FeedLoader.java
+++ b/app/src/main/java/org/rssin/rss/FeedLoader.java
@@ -25,7 +25,7 @@ public class FeedLoader {
private String text;
public FeedLoader(URL url){
- this.urlString = url;
+ this.setUrlString(url);
}
/**
@@ -48,15 +48,15 @@ public class FeedLoader {
case "item":
post = new FeedItem(null, null, null, null, null,
null, new LinkedList<String>(), null, null, null);
- chan = false; //this starts collection information for the
+ chan = false; //this starts collecting information for the
//separate items.
break;
case "image":
imageTagParse(myParser);
case "channel":
feed = new Feed(new LinkedList<String>(), null, null, null, null,
- null, null, null, null, null, null, null, null, null, null,
- null, null, null, null);
+ null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null);
chan = true;
break;
}
@@ -214,31 +214,25 @@ public class FeedLoader {
/**
* Retrieves the XML and parses it.
*/
- public void fetchXML(){
- Thread thread = new Thread(new Runnable(){
- @Override
- public void run() {
- try {
- URL url = urlString;
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setReadTimeout(10000 /* milliseconds */);
- conn.setConnectTimeout(15000 /* milliseconds */);
- conn.setRequestMethod("GET");
- conn.setDoInput(true);
- // Starts the query
- conn.connect();
- InputStream stream = conn.getInputStream();
- xmlFactoryObject = XmlPullParserFactory.newInstance();
- XmlPullParser myparser = xmlFactoryObject.newPullParser();
- myparser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
- myparser.setInput(stream, null);
- parseXMLAndStoreIt(myparser);
- stream.close();
- } catch (Exception ignored) {
- }
- }
- });
- thread.start();
+ public void fetchXML() {
+ try {
+ URL url = urlString;
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn.setReadTimeout(10000 /* milliseconds */);
+ conn.setConnectTimeout(15000 /* milliseconds */);
+ conn.setRequestMethod("GET");
+ conn.setDoInput(true);
+ // Starts the query
+ conn.connect();
+ InputStream stream = conn.getInputStream();
+ xmlFactoryObject = XmlPullParserFactory.newInstance();
+ XmlPullParser myparser = xmlFactoryObject.newPullParser();
+ myparser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
+ myparser.setInput(stream, null);
+ parseXMLAndStoreIt(myparser);
+ stream.close();
+ } catch (Exception ignored) {
+ }
}
public void setFeed(Feed feed) {
@@ -248,4 +242,8 @@ public class FeedLoader {
public Feed getFeed() {
return feed;
}
+
+ public void setUrlString(URL urlString) {
+ this.urlString = urlString;
+ }
}