blob: 820882db89e1ccb30a5f19724bc2f4b3a44bbb5b [file] [log] [blame]
package com.example.android.network.sync.basicsyncadapter;
import android.content.ContentResolver;
import android.content.Context;
import android.content.OperationApplicationException;
import android.content.SyncResult;
import android.database.Cursor;
import android.os.RemoteException;
import android.test.ServiceTestCase;
import com.example.android.network.sync.basicsyncadapter.provider.FeedContract;
import org.xmlpull.v1.XmlPullParserException;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
public class SyncAdapterTest extends ServiceTestCase<SyncService> {
public SyncAdapterTest() {
super(SyncService.class);
}
public void testIncomingFeedParsed()
throws IOException, XmlPullParserException, RemoteException,
OperationApplicationException, ParseException {
String sampleFeed = "<?xml version=\"1.0\"?>\n" +
"<feed xmlns=\"http://www.w3.org/2005/Atom\">\n" +
" \n" +
" <title>Sample Blog</title>\n" +
" <link href=\"http://example.com/\"/>\n" +
" <link type=\"application/atom+xml\" rel=\"self\" href=\"http://example.xom/feed.xml\"/>\n" +
" <updated>2013-05-16T16:53:23-07:00</updated>\n" +
" <id>http://example.com/</id>\n" +
" <author>\n" +
" <name>Rick Deckard</name>\n" +
" <email>deckard@example.com</email>\n" +
" </author>\n" +
"\n" +
" <entry>\n" +
" <id>http://example.com/2012/10/20/test-post</id>\n" +
" <link type=\"text/html\" rel=\"alternate\" href=\"http://example.com/2012/10/20/test-post.html\"/>\n" +
" <title>Test Post #1</title>\n" +
" <published>2012-10-20T00:00:00-07:00</published>\n" +
" <updated>2012-10-20T00:00:00-07:00</updated>\n" +
" <author>\n" +
" <name>Rick Deckard</name>\n" +
" <uri>http://example.com/</uri>\n" +
" </author>\n" +
" <summary>This is a sample summary.</summary>\n" +
" <content type=\"html\">Here's some <em>sample</em> content.</content>\n" +
" </entry>\n" +
"</feed>\n";
InputStream stream = new ByteArrayInputStream(sampleFeed.getBytes());
SyncAdapter adapter = new SyncAdapter(getContext(), false);
adapter.updateLocalFeedData(stream, new SyncResult());
Context ctx = getContext();
assert ctx != null;
ContentResolver cr = ctx.getContentResolver();
final String[] projection = {FeedContract.Entry.COLUMN_NAME_ENTRY_ID,
FeedContract.Entry.COLUMN_NAME_TITLE,
FeedContract.Entry.COLUMN_NAME_LINK};
Cursor c = cr.query(FeedContract.Entry.CONTENT_URI, projection, null, null, null);
assert c != null;
assertEquals(1, c.getCount());
c.moveToFirst();
assertEquals("http://example.com/2012/10/20/test-post", c.getString(0));
assertEquals("Test Post #1", c.getString(1));
assertEquals("http://example.com/2012/10/20/test-post.html", c.getString(2));
}
}