aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/androidTest
diff options
context:
space:
mode:
Diffstat (limited to 'WordPress/src/androidTest')
-rw-r--r--WordPress/src/androidTest/.gitignore4
-rw-r--r--WordPress/src/androidTest/assets/1354-wp.getUsersBlogs.xml47
-rw-r--r--WordPress/src/androidTest/assets/comment-already-spammed-wp.editComment.xml21
-rw-r--r--WordPress/src/androidTest/assets/comment-already-spammed-wp.getComment.xml72
-rw-r--r--WordPress/src/androidTest/assets/corrupteddb-reproducing-814.sql21
-rw-r--r--WordPress/src/androidTest/assets/default-metaWeblog.getRecentPosts.json744
-rw-r--r--WordPress/src/androidTest/assets/default-metaWeblog.getRecentPosts.xml4203
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-clicks.json26
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-comments.json160
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-country-views.json113
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-followers.json58
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-insights.json1
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-post-123.json1376
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-referrers.json553
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-summary.json1
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-tags.json125
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-top-posts.json102
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-video-plays.json11
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-visits.json254
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats.json187
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-clicks.json65
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-followers.json156
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-top-posts.json101
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-video-plays.json18
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-2-plans-features.json203
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-2-sites-123456-plans.json191
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-me.json18
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-sites-new.json9
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-sites-new_1.json3
-rw-r--r--WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-users-new.json3
-rw-r--r--WordPress/src/androidTest/assets/default-wp.deletePost.xml10
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getComments.json482
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getComments.xml2654
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getMediaLibrary.xml2791
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getOptions.json32
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getOptions.xml161
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getPostFormats.json1
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getPostFormats.xml71
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getProfile.json1
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getProfile.xml89
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getUsersBlogs.json20
-rw-r--r--WordPress/src/androidTest/assets/default-wp.getUsersBlogs.xml115
-rw-r--r--WordPress/src/androidTest/assets/email-exists-public-api-wordpress-com-rest-v1-users-new.json4
-rw-r--r--WordPress/src/androidTest/assets/empty-wp.getProfile.json1
-rw-r--r--WordPress/src/androidTest/assets/empty_tables.sql16
-rw-r--r--WordPress/src/androidTest/assets/health-check/health-check-xplat-testcases.json229
-rw-r--r--WordPress/src/androidTest/assets/health-check/index.html153
-rw-r--r--WordPress/src/androidTest/assets/health-check/index_with_redirect.html153
-rw-r--r--WordPress/src/androidTest/assets/health-check/listMethodsResponse.xml91
-rw-r--r--WordPress/src/androidTest/assets/health-check/rsd.xml14
-rw-r--r--WordPress/src/androidTest/assets/health-check/rsd_with_redirect.xml14
-rw-r--r--WordPress/src/androidTest/assets/incorrect-password-wp.getOptions.xml21
-rw-r--r--WordPress/src/androidTest/assets/invalid-double-xmlrpc-wp.getMediaLibrary.xml37
-rw-r--r--WordPress/src/androidTest/assets/invalid-integer-xmlrpc-wp.getMediaLibrary.xml23
-rw-r--r--WordPress/src/androidTest/assets/malformed-getusersblog-wp.getUsersBlogs.xml3
-rw-r--r--WordPress/src/androidTest/assets/malformed-null-postid-metaWeblog.getRecentPosts.xml198
-rw-r--r--WordPress/src/androidTest/assets/malformed-software-version-wp.getOptions.json31
-rw-r--r--WordPress/src/androidTest/assets/malformed-software-version-wp.getProfile.json1
-rw-r--r--WordPress/src/androidTest/assets/malformed_category_parent_id.sql13
-rw-r--r--WordPress/src/androidTest/assets/one_category.sql13
-rw-r--r--WordPress/src/androidTest/assets/password-invalid-public-api-wordpress-com-rest-v1-devices-new.json2
-rw-r--r--WordPress/src/androidTest/assets/password-invalid-public-api-wordpress-com-rest-v1-users-new.json4
-rw-r--r--WordPress/src/androidTest/assets/rest-v1-notifications-num_note_items=20.json3453
-rw-r--r--WordPress/src/androidTest/assets/site-reserved-public-api-wordpress-com-rest-v1-sites-new.json4
-rw-r--r--WordPress/src/androidTest/assets/taliwutt-blogs-sample.sql48
-rw-r--r--WordPress/src/androidTest/assets/username-exists-public-api-wordpress-com-rest-v1-users-new.json4
-rw-r--r--WordPress/src/androidTest/java/URITest.java56
-rw-r--r--WordPress/src/androidTest/java/URLTest.java55
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/DefaultMocksInstrumentationTestCase.java42
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/FactoryUtils.java45
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/PostUploadServiceTest.java101
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/TestUtils.java168
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/UserAgentTest.java29
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/database/CommentTableTest.java61
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/database/WordPressDBTest.java17
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/OAuthAuthenticatorEmptyMock.java11
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/OAuthAuthenticatorFactoryTest.java24
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientCustomizableMock.java150
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientEmptyMock.java63
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientFactoryTest.java71
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/SystemServiceFactoryTest.java35
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableJSONMock.java94
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableMockAbstract.java23
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableXMLMock.java90
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientEmptyMock.java43
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java75
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/models/BlogTest.java293
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/models/CategoryNodeInstrumentationTest.java34
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/models/PostLocationTest.java115
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/models/PostTest.java55
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/networking/AuthenticatorRequestTest.java61
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/networking/GravatarApiTest.java44
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/networking/WPNetworkImageViewTest.java58
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/networking/XMLRPCTest.java35
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/GCMIntentServiceTest.java66
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/NotesParseTest.java29
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/NotificationsUtilsTest.java19
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/ui/plans/RemoteTests.java159
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/ui/posts/PostUtilsTest.java33
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/ui/stats/RemoteTests.java638
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/util/ApiHelperTest.java124
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/util/AutolinkUtilsTest.java79
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/util/HealthCheckTest.java227
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/util/UrlUtilsTest.java25
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/util/WPHtmlTest.java38
-rw-r--r--WordPress/src/androidTest/java/org/wordpress/android/util/WPUrlUtilsTest.java272
-rw-r--r--WordPress/src/androidTest/monkeys/README.md36
-rw-r--r--WordPress/src/androidTest/monkeys/create_wpcom_blog_from_settings.py44
-rw-r--r--WordPress/src/androidTest/monkeys/customizable_monkey.py44
-rwxr-xr-xWordPress/src/androidTest/monkeys/playstore-screenshots.py202
-rw-r--r--WordPress/src/androidTest/monkeys/settings.py-example4
-rw-r--r--WordPress/src/androidTest/proguard-project.txt20
-rw-r--r--WordPress/src/androidTest/readme.md9
-rwxr-xr-xWordPress/src/androidTest/tools/dump-device-db.sh3
114 files changed, 23822 insertions, 0 deletions
diff --git a/WordPress/src/androidTest/.gitignore b/WordPress/src/androidTest/.gitignore
new file mode 100644
index 000000000..eb14c81a0
--- /dev/null
+++ b/WordPress/src/androidTest/.gitignore
@@ -0,0 +1,4 @@
+/gen/
+/bin/
+build.xml
+local.properties
diff --git a/WordPress/src/androidTest/assets/1354-wp.getUsersBlogs.xml b/WordPress/src/androidTest/assets/1354-wp.getUsersBlogs.xml
new file mode 100644
index 000000000..976cc9fab
--- /dev/null
+++ b/WordPress/src/androidTest/assets/1354-wp.getUsersBlogs.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>isAdmin</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>url</name>
+ <value>
+ <string>https://tataliwut.wordpress.com/</string>
+ </value>
+ </member>
+ <member>
+ <name>blogid</name>
+ <value>
+ <string>59073674</string>
+ </value>
+ </member>
+ <member>
+ <name>blogName</name>
+ <value>
+ <string>Empty blog stays empty</string>
+ </value>
+ </member>
+ <member>
+ <name>xmlrpc</name>
+ <value>
+ <string>pouët</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/comment-already-spammed-wp.editComment.xml b/WordPress/src/androidTest/assets/comment-already-spammed-wp.editComment.xml
new file mode 100644
index 000000000..de74a1055
--- /dev/null
+++ b/WordPress/src/androidTest/assets/comment-already-spammed-wp.editComment.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <fault>
+ <value>
+ <struct>
+ <member>
+ <name>faultCode</name>
+ <value>
+ <int>500</int>
+ </value>
+ </member>
+ <member>
+ <name>faultString</name>
+ <value>
+ <string>Sorry, the comment could not be edited. Something wrong happened.</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </fault>
+</methodResponse>
diff --git a/WordPress/src/androidTest/assets/comment-already-spammed-wp.getComment.xml b/WordPress/src/androidTest/assets/comment-already-spammed-wp.getComment.xml
new file mode 100644
index 000000000..74af47107
--- /dev/null
+++ b/WordPress/src/androidTest/assets/comment-already-spammed-wp.getComment.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20160108T14:52:57</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>11057357</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>1</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>spam</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>a comment</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://stefanosuser.wordpress.com/2016/01/08/post1/comment-page-1/#comment-1
+ </string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>2</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Post1</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>Stefanos</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </param>
+ </params>
+</methodResponse>
diff --git a/WordPress/src/androidTest/assets/corrupteddb-reproducing-814.sql b/WordPress/src/androidTest/assets/corrupteddb-reproducing-814.sql
new file mode 100644
index 000000000..228502777
--- /dev/null
+++ b/WordPress/src/androidTest/assets/corrupteddb-reproducing-814.sql
@@ -0,0 +1,21 @@
+PRAGMA foreign_keys=OFF;
+BEGIN TRANSACTION;
+CREATE TABLE android_metadata (locale TEXT);
+INSERT INTO "android_metadata" VALUES('en_US');
+CREATE TABLE accounts (id integer primary key autoincrement, url text, blogName text, username text, password text, imagePlacement text, centerThumbnail boolean, fullSizeImage boolean, maxImageWidth text, maxImageWidthId integer, lastCommentId integer, runService boolean, blogId integer, location boolean default false, dotcom_username text, dotcom_password text, api_key text, api_blogid text, dotcomFlag boolean default false, wpVersion text, httpuser text, httppassword text, postFormats text default '', isScaledImage boolean default false, scaledImgWidth integer default 1024, homeURL text default '', blog_options text default '', isAdmin boolean default false, isHidden boolean default 0);
+INSERT INTO accounts VALUES(8,'',NULL,'','AS3vw/BNTdI=
+',NULL,0,0,'',0,NULL,0,0,'false',NULL,NULL,NULL,NULL,0,NULL,'','AS3vw/BNTdI=
+','','false',1024,NULL,'',0,0);
+INSERT INTO accounts VALUES(9,'',NULL,'','AS3vw/BNTdI=
+',NULL,0,0,'',0,NULL,0,0,'false',NULL,NULL,NULL,NULL,0,'3.9-alpha','','AS3vw/BNTdI=
+','','false',1024,NULL,'',0,0);
+CREATE TABLE posts (id integer primary key autoincrement, blogID text, postid text, title text default '', dateCreated date, date_created_gmt date, categories text default '', custom_fields text default '', description text default '', link text default '', mt_allow_comments boolean, mt_allow_pings boolean, mt_excerpt text default '', mt_keywords text default '', mt_text_more text default '', permaLink text default '', post_status text default '', userid integer default 0, wp_author_display_name text default '', wp_author_id text default '', wp_password text default '', wp_post_format text default '', wp_slug text default '', mediaPaths text default '', latitude real, longitude real, localDraft boolean default 0, uploaded boolean default 0, isPage boolean default 0, wp_page_parent_id text, wp_page_parent_title text, isLocalChange boolean default 0);
+CREATE TABLE comments (blogID text, postID text, iCommentID integer, author text, comment text, commentDate text, commentDateFormatted text, status text, url text, email text, postTitle text);
+CREATE TABLE cats (id integer primary key autoincrement, blog_id text, wp_id integer, category_name text not null, parent_id integer default 0);
+CREATE TABLE quickpress_shortcuts (id integer primary key autoincrement, accountId text, name text);
+CREATE TABLE media (id integer primary key autoincrement, postID integer not null, filePath text default '', fileName text default '', title text default '', description text default '', caption text default '', horizontalAlignment integer default 0, width integer default 0, height integer default 0, mimeType text default '', featured boolean default false, isVideo boolean default false, isFeaturedInPost boolean default false, fileURL text default '', thumbnailURL text default '', mediaId text default '', blogId text default '', date_created_gmt date, uploadState default '', videoPressShortcode text default '');
+CREATE TABLE themes (_id integer primary key autoincrement, themeId text, name text, description text, screenshotURL text, trendingRank integer default 0, popularityRank integer default 0, launchDate date, previewURL text, blogId text, isCurrent boolean default false, isPremium boolean default false, features text);
+CREATE TABLE notes (id integer primary key, note_id text, message text, type text, raw_note_data text, timestamp integer, placeholder boolean);
+DELETE FROM sqlite_sequence;
+INSERT INTO "sqlite_sequence" VALUES('accounts',9);
+COMMIT;
diff --git a/WordPress/src/androidTest/assets/default-metaWeblog.getRecentPosts.json b/WordPress/src/androidTest/assets/default-metaWeblog.getRecentPosts.json
new file mode 100644
index 000000000..d42a4e019
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-metaWeblog.getRecentPosts.json
@@ -0,0 +1,744 @@
+[
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1250",
+ "key": "jabber_published",
+ "value": "1390395828"
+ }
+ ],
+ "dateCreated": "Jan 22, 2014 1:03:47 PM",
+ "date_created_gmt": "Jan 22, 2014 1:03:47 PM",
+ "date_modified": "Jan 22, 2014 1:03:48 PM",
+ "date_modified_gmt": "Jan 22, 2014 1:03:48 PM",
+ "description": "[caption id=\"\" align=\"alignnone\" width=\"2000\" caption=\"Mop\"]<a href=\"https://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg\"><img title=\"wpid-wp-1388141726961.jpeg\" class=\"alignnone size-full\" alt=\"image\" src=\"https://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg?w=2000\" /></a>[/caption]",
+ "link": "https://taliwutblog.wordpress.com/2014/01/22/cat-2/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/cat-2/",
+ "post_status": "publish",
+ "postid": "299",
+ "title": "Cat",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "cat-2"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1244",
+ "key": "jabber_published",
+ "value": "1390395578"
+ }
+ ],
+ "dateCreated": "Jan 22, 2014 12:59:38 PM",
+ "date_created_gmt": "Jan 22, 2014 12:59:38 PM",
+ "date_modified": "Jan 22, 2014 12:59:38 PM",
+ "date_modified_gmt": "Jan 22, 2014 12:59:38 PM",
+ "description": "<a href=\"http://www.google.com/search?hl=en&amp;biw=384&amp;bih=640&amp;tbm=isch&amp;sa=1&amp;ei=RbLKUv-lHYem0wW8oYHABA&amp;q=hd+wallpaper+photo&amp;oq=hd+wallpaper+photo&amp;gs_l=mobile-gws-serp.3..0l4j0i5.4612.5034.0.5279.4.4.0.0.0.0.203.203.2-1.1.0....0...1c.1.32.mobile-gws-serp..3.1.203.63ZBZ9KeMPs#biv=i%7C10%3Bd%7Cfmk-ugJVQIMDBM%3A\">http://www.google.com/search?hl=en&amp;biw=384&amp;bih=640&amp;tbm=isch&amp;sa=1&amp;ei=RbLKUv-lHYem0wW8oYHABA&amp;q=hd+wallpaper+photo&amp;oq=hd+wallpaper+photo&amp;gs_l=mobile-gws-serp.3..0l4j0i5.4612.5034.0.5279.4.4.0.0.0.0.203.203.2-1.1.0....0...1c.1.32.mobile-gws-serp..3.1.203.63ZBZ9KeMPs#biv=i%7C10%3Bd%7Cfmk-ugJVQIMDBM%3A</a>",
+ "link": "https://taliwutblog.wordpress.com/2014/01/22/hd-wallpaper-photo-google-search/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/hd-wallpaper-photo-google-search/",
+ "post_status": "publish",
+ "postid": "297",
+ "title": "hd wallpaper photo - Google Search",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "hd-wallpaper-photo-google-search"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1241",
+ "key": "blog_id",
+ "value": "55267051"
+ },
+ {
+ "id": "1242",
+ "key": "is_reblog",
+ "value": "1"
+ },
+ {
+ "id": "1235",
+ "key": "jabber_published",
+ "value": "1390394182"
+ },
+ {
+ "id": "1240",
+ "key": "post_id",
+ "value": "642"
+ }
+ ],
+ "dateCreated": "Jan 22, 2014 12:36:20 PM",
+ "date_created_gmt": "Jan 22, 2014 12:36:20 PM",
+ "date_modified": "Jan 22, 2014 12:36:20 PM",
+ "date_modified_gmt": "Jan 22, 2014 12:36:20 PM",
+ "description": "Hai",
+ "link": "https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/",
+ "post_status": "publish",
+ "postid": "296",
+ "title": "The End of Unrecorded Life",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "the-end-of-unrecorded-life"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1228",
+ "key": "jabber_published",
+ "value": "1390386762"
+ }
+ ],
+ "dateCreated": "Jan 22, 2014 10:32:40 AM",
+ "date_created_gmt": "Jan 22, 2014 10:32:40 AM",
+ "date_modified": "Jan 22, 2014 10:32:40 AM",
+ "date_modified_gmt": "Jan 22, 2014 10:32:40 AM",
+ "description": "<a href=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386748907.jpg\"><img title=\"wp-1390386748907.jpg\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386748907.jpg\" /></a>",
+ "link": "https://taliwutblog.wordpress.com/2014/01/22/geny/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/geny/",
+ "post_status": "publish",
+ "postid": "292",
+ "title": "Geny!",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "image",
+ "wp_post_thumbnail": "",
+ "wp_slug": "geny"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1216",
+ "key": "jabber_published",
+ "value": "1390386657"
+ }
+ ],
+ "dateCreated": "Jan 22, 2014 10:30:57 AM",
+ "date_created_gmt": "Jan 22, 2014 10:30:57 AM",
+ "date_modified": "Jan 22, 2014 10:32:16 AM",
+ "date_modified_gmt": "Jan 22, 2014 10:32:16 AM",
+ "description": "<a href=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386640415.jpg\"><img title=\"wp-1390386640415.jpg\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386640415.jpg\" /></a>\n\n[caption id=\"\" align=\"aligncenter\" width=\"990\" caption=\"Island\"]<a href=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-love-island-1920c3971080-wallpapers-jpg.jpeg\"><img title=\"Love-Island-1920\u00d71080-wallpapers.jpg\" class=\"aligncenter size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2014/01/wpid-love-island-1920c3971080-wallpapers-jpg.jpeg\" /></a>[/caption]",
+ "link": "https://taliwutblog.wordpress.com/2014/01/22/287/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/22/287/",
+ "post_status": "publish",
+ "postid": "287",
+ "title": "",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "image",
+ "wp_post_thumbnail": "",
+ "wp_slug": "287"
+ },
+ {
+ "categories": [
+ "bird",
+ "pigeon",
+ "raven"
+ ],
+ "custom_fields": [
+ {
+ "id": "1208",
+ "key": "jabber_published",
+ "value": "1390386102"
+ }
+ ],
+ "dateCreated": "Jan 22, 2014 10:21:42 AM",
+ "date_created_gmt": "Jan 22, 2014 10:21:42 AM",
+ "date_modified": "Jan 22, 2014 10:25:10 AM",
+ "date_modified_gmt": "Jan 22, 2014 10:25:10 AM",
+ "description": "<strong>Mop</strong> est un poney\nHaij\nEnorme poney!!",
+ "link": "https://taliwutblog.wordpress.com/?p=284",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "bird, raven",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/?p=284",
+ "post_status": "draft",
+ "postid": "284",
+ "title": "Mop",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "quote",
+ "wp_post_thumbnail": "",
+ "wp_slug": "mop"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1198",
+ "key": "jabber_published",
+ "value": "1389290705"
+ }
+ ],
+ "dateCreated": "Jan 9, 2014 6:05:04 PM",
+ "date_created_gmt": "Jan 9, 2014 6:05:04 PM",
+ "date_modified": "Jan 9, 2014 6:05:04 PM",
+ "date_modified_gmt": "Jan 9, 2014 6:05:04 PM",
+ "description": "<a href=\"mop@woot.com\">mop@wooot</a>",
+ "link": "https://taliwutblog.wordpress.com/2014/01/09/mail-link/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/09/mail-link/",
+ "post_status": "publish",
+ "postid": "282",
+ "title": "Mail link",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "mail-link"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1189",
+ "key": "jabber_published",
+ "value": "1389290631"
+ }
+ ],
+ "dateCreated": "Jan 9, 2014 6:03:51 PM",
+ "date_created_gmt": "Jan 9, 2014 6:03:51 PM",
+ "date_modified": "Jan 9, 2014 6:03:51 PM",
+ "date_modified_gmt": "Jan 9, 2014 6:03:51 PM",
+ "description": "<a href=\"woot.com\">wooot</a>",
+ "link": "https://taliwutblog.wordpress.com/2014/01/09/link-link-2/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/09/link-link-2/",
+ "post_status": "publish",
+ "postid": "280",
+ "title": "Link link 2",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "link-link-2"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1176",
+ "key": "jabber_published",
+ "value": "1389290505"
+ }
+ ],
+ "dateCreated": "Jan 9, 2014 6:01:45 PM",
+ "date_created_gmt": "Jan 9, 2014 6:01:45 PM",
+ "date_modified": "Jan 9, 2014 6:03:03 PM",
+ "date_modified_gmt": "Jan 9, 2014 6:03:03 PM",
+ "description": "<a href=\"woot.com\">wooot</a>",
+ "link": "https://taliwutblog.wordpress.com/2014/01/09/link-link/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/09/link-link/",
+ "post_status": "publish",
+ "postid": "278",
+ "title": "Link link",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "link-link"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1169",
+ "key": "jabber_published",
+ "value": "1389289935"
+ }
+ ],
+ "dateCreated": "Jan 9, 2014 5:52:14 PM",
+ "date_created_gmt": "Jan 9, 2014 5:52:14 PM",
+ "date_modified": "Jan 9, 2014 5:52:14 PM",
+ "date_modified_gmt": "Jan 9, 2014 5:52:14 PM",
+ "description": "",
+ "link": "https://taliwutblog.wordpress.com/2014/01/09/magnifique/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/09/magnifique/",
+ "post_status": "publish",
+ "postid": "277",
+ "title": "Magnifique!",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "magnifique"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1158",
+ "key": "jabber_published",
+ "value": "1388755568"
+ }
+ ],
+ "dateCreated": "Jan 3, 2014 1:26:07 PM",
+ "date_created_gmt": "Jan 3, 2014 1:26:07 PM",
+ "date_modified": "Jan 3, 2014 1:26:07 PM",
+ "date_modified_gmt": "Jan 3, 2014 1:26:07 PM",
+ "description": "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"gutter\"><div class=\"line number1 index0 alt2\">1</div><div class=\"line number2 index1 alt1\">2</div><div class=\"line number3 index2 alt2\">3</div><div class=\"line number4 index3 alt1\">4</div><div class=\"line number5 index4 alt2\">5</div><div class=\"line number6 index5 alt1\">6</div><div class=\"line number7 index6 alt2\">7</div><div class=\"line number8 index7 alt1\">8</div></td><td class=\"code\"><div class=\"container\"><div class=\"line number1 index0 alt2\"><code class=\"plain plain\">[02-Jan-2014 15:15:48 UTC] Wwwww1-02 15:15:48 Can't select gr -</code></div><div class=\"line number2 index1 alt1\"><code class=\"plain plain\">'referrer' =&amp;gt; 'pwwwwwcom/wwwww&amp;amp;fields=id%2Ctype%2Cunread%2Ctimestamp%2Csubject%2Cmeta&amp;amp;trap=true',</code></div><div class=\"line number3 index2 alt2\"><code class=\"plain plain\">'server' =&amp;gt; ,</code></div><div class=\"line number4 index3 alt1\"><code class=\"plain plain\">'host' =&amp;gt; wwwwwwww,</code></div><div class=\"line number5 index4 alt2\"><code class=\"plain plain\">'error' =&amp;gt; Too many connections,</code></div><div class=\"line number6 index5 alt1\"><code class=\"plain plain\">'errno' =&amp;gt; 1040,</code></div><div class=\"line number7 index6 alt2\"><code class=\"plain plain\">'server_state' =&amp;gt; up</code></div><div class=\"line number8 index7 alt1\"><code class=\"plain plain\">'lagged_status' =&amp;gt; 1 for query SELECT prepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprepprepreprep<br /> </code></div></div></td></tr></tbody></table>",
+ "link": "https://taliwutblog.wordpress.com/2014/01/03/273/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/03/273/",
+ "post_status": "publish",
+ "postid": "273",
+ "title": "",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "273"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1147",
+ "key": "jabber_published",
+ "value": "1388755107"
+ }
+ ],
+ "dateCreated": "Jan 3, 2014 1:18:27 PM",
+ "date_created_gmt": "Jan 3, 2014 1:18:27 PM",
+ "date_modified": "Jan 3, 2014 1:18:58 PM",
+ "date_modified_gmt": "Jan 3, 2014 1:18:58 PM",
+ "description": "Pre:\n\n<pre>\npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre \npre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre pre \npre \npre \n</pre>",
+ "link": "https://taliwutblog.wordpress.com/2014/01/03/pre-pre/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/03/pre-pre/",
+ "post_status": "publish",
+ "postid": "270",
+ "title": "Pre pre",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "pre-pre"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1133",
+ "key": "jabber_published",
+ "value": "1388754692"
+ }
+ ],
+ "dateCreated": "Jan 3, 2014 1:11:32 PM",
+ "date_created_gmt": "Jan 3, 2014 1:11:32 PM",
+ "date_modified": "Jan 3, 2014 1:15:47 PM",
+ "date_modified_gmt": "Jan 3, 2014 1:15:47 PM",
+ "description": "<pre>\npouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet pouet \npouet \npouet \npouet \npouet \n</pre>",
+ "link": "https://taliwutblog.wordpress.com/2014/01/03/test-2/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/03/test-2/",
+ "post_status": "publish",
+ "postid": "2",
+ "title": "Test",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "test-2"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1120",
+ "key": "jabber_published",
+ "value": "1388677774"
+ }
+ ],
+ "dateCreated": "Jan 2, 2014 3:49:33 PM",
+ "date_created_gmt": "Jan 2, 2014 3:49:33 PM",
+ "date_modified": "Jan 2, 2014 3:49:33 PM",
+ "date_modified_gmt": "Jan 2, 2014 3:49:33 PM",
+ "description": "[caption id=\"\" align=\"alignnone\" width=\"1067\"]<img title=\"Unicorn\" alt=\"Unicorn\" src=\"http://imgs.tuts.dragoart.com/how-to-draw-princess-cadence-my-little-pony_1_000000012723_5.png\" width=\"1067\" height=\"1073\" /> Unicorn[/caption]",
+ "link": "https://taliwutblog.wordpress.com/2014/01/02/unicorn/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/02/unicorn/",
+ "post_status": "publish",
+ "postid": "263",
+ "title": "Unicorn",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "unicorn"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1111",
+ "key": "jabber_published",
+ "value": "1388677368"
+ }
+ ],
+ "dateCreated": "Jan 2, 2014 3:42:46 PM",
+ "date_created_gmt": "Jan 2, 2014 3:42:46 PM",
+ "date_modified": "Jan 3, 2014 10:30:51 AM",
+ "date_modified_gmt": "Jan 3, 2014 10:30:51 AM",
+ "description": "Romeo and Juliet\nShakespeare homepage | Romeo and Juliet | Entire play\nACT I\n\nPROLOGUE\n\nTwo households, both alike in dignity,\nIn fair Verona, where we lay our scene,\nFrom ancient grudge break to new mutiny,\nWhere civil blood makes civil hands unclean.\nFrom forth the fatal loins of these two foes\nA pair of star-cross'd lovers take their life;\nWhose misadventured piteous overthrows\nDo with their death bury their parents' strife.\nThe fearful passage of their death-mark'd love,\nAnd the continuance of their parents' rage,\nWhich, but their children's end, nought could remove,\nIs now the two hours' traffic of our stage;\nThe which if you with patient ears attend,\nWhat here shall miss, our toil shall strive to mend.\nSCENE I. Verona. A public place.\n\nEnter SAMPSON and GREGORY, of the house of Capulet, armed with swords and bucklers\nSAMPSON\nGregory, o' my word, we'll not carry coals.\nGREGORY\nNo, for then we should be colliers.\nSAMPSON\nI mean, an we be in choler, we'll draw.\nGREGORY\nAy, while you live, draw your neck out o' the collar.\nSAMPSON\nI strike quickly, being moved.\nGREGORY\nBut thou art not quickly moved to strike.\nSAMPSON\nA dog of the house of Montague moves me.\nGREGORY\nTo move is to stir; and to be valiant is to stand:\ntherefore, if thou art moved, thou runn'st away.\nSAMPSON\nA dog of that house shall move me to stand: I will\ntake the wall of any man or maid of Montague's.\nGREGORY\nThat shows thee a weak slave; for the weakest goes\nto the wall.\nSAMPSON\nTrue; and therefore women, being the weaker vessels,\nare ever thrust to the wall: therefore I will push\nMontague's men from the wall, and thrust his maids\nto the wall.\nGREGORY\nThe quarrel is between our masters and us their men.\nSAMPSON\n'Tis all one, I will show myself a tyrant: when I\nhave fought with the men, I will be cruel with the\nmaids, and cut off their heads.\nGREGORY\nThe heads of the maids?\nSAMPSON\nAy, the heads of the maids, or their maidenheads;\ntake it in what sense thou wilt.\nGREGORY\nThey must take it in sense that feel it.\nSAMPSON\nMe they shall feel while I am able to stand: and\n'tis known I am a pretty piece of flesh.\nGREGORY\n'Tis well thou art not fish; if thou hadst, thou\nhadst been poor John. Draw thy tool! here comes\ntwo of the house of the Montagues.\nSAMPSON\nMy naked weapon is out: quarrel, I will back thee.\nGREGORY\nHow! turn thy back and run?\nSAMPSON\nFear me not.\nGREGORY\nNo, marry; I fear thee!\nSAMPSON\nLet us take the law of our sides; let them begin.\nGREGORY\nI will frown as I pass by, and let them take it as\nthey list.\nSAMPSON\nNay, as they dare. I will bite my thumb at them;\nwhich is a disgrace to them, if they bear it.\nEnter ABRAHAM and BALTHASAR\n\nABRAHAM\nDo you bite your thumb at us, sir?\nSAMPSON\nI do bite my thumb, sir.\nABRAHAM\nDo you bite your thumb at us, sir?\nSAMPSON\n[Aside to GREGORY] Is the law of our side, if I say\nay?\nGREGORY\nNo.\nSAMPSON\nNo, sir, I do not bite my thumb at you, sir, but I\nbite my thumb, sir.\nGREGORY\nDo you quarrel, sir?\nABRAHAM\nQuarrel sir! no, sir.\nSAMPSON\nIf you do, sir, I am for you: I serve as good a man as you.\nABRAHAM\nNo better.\nSAMPSON\nWell, sir.\nGREGORY\nSay 'better:' here comes one of my master's kinsmen.\nSAMPSON\nYes, better, sir.\nABRAHAM\nYou lie.\nSAMPSON\nDraw, if you be men. Gregory, remember thy swashing blow.\nThey fight\n\nEnter BENVOLIO\n\nBENVOLIO\nPart, fools!\nPut up your swords; you know not what you do.\nBeats down their swords\n\nEnter TYBALT\n\nTYBALT\nWhat, art thou drawn among these heartless hinds?\nTurn thee, Benvolio, look upon thy death.\nBENVOLIO\nI do but keep the peace: put up thy sword,\nOr manage it to part these men with me.\nTYBALT\nWhat, drawn, and talk of peace! I hate the word,\nAs I hate hell, all Montagues, and thee:\nHave at thee, coward!\nThey fight\n\nEnter, several of both houses, who join the fray; then enter Citizens, with clubs\n\nFirst Citizen\nClubs, bills, and partisans! strike! beat them down!\nDown with the Capulets! down with the Montagues!\nEnter CAPULET in his gown, and LADY CAPULET\n\nCAPULET\nWhat noise is this? Give me my long sword, ho!\nLADY CAPULET\nA crutch, a crutch! why call you for a sword?\nCAPULET\nMy sword, I say! Old Montague is come,\nAnd flourishes his blade in spite of me.\nEnter MONTAGUE and LADY MONTAGUE\n\nMONTAGUE\nThou villain Capulet,--Hold me not, let me go.\nLADY MONTAGUE\nThou shalt not stir a foot to seek a foe.\nEnter PRINCE, with Attendants\n\nPRINCE\nRebellious subjects, enemies to peace,\nProfaners of this neighbour-stained steel,--\nWill they not hear? What, ho! you men, you beasts,\nThat quench the fire of your pernicious rage\nWith purple fountains issuing from your veins,\nOn pain of torture, from those bloody hands\nThrow your mistemper'd weapons to the ground,\nAnd hear the sentence of your moved prince.\nThree civil brawls, bred of an airy word,\nBy thee, old Capulet, and Montague,\nHave thrice disturb'd the quiet of our streets,\nAnd made Verona's ancient citizens\nCast by their grave beseeming ornaments,\nTo wield old partisans, in hands as old,\nCanker'd with peace, to part your canker'd hate:\nIf ever you disturb our streets again,\nYour lives shall pay the forfeit of the peace.\nFor this time, all the rest depart away:\nYou Capulet; shall go along with me:\nAnd, Montague, come you this afternoon,\nTo know our further pleasure in this case,\nTo old Free-town, our common judgment-place.\nOnce more, on pain of death, all men depart.\nExeunt all but MONTAGUE, LADY MONTAGUE, and BENVOLIO\n\nMONTAGUE\nWho set this ancient quarrel new abroach?\nSpeak, nephew, were you by when it began?\nBENVOLIO\nHere were the servants of your adversary,\nAnd yours, close fighting ere I did approach:\nI drew to part them: in the instant came\nThe fiery Tybalt, with his sword prepared,\nWhich, as he breathed defiance to my ears,\nHe swung about his head and cut the winds,\nWho nothing hurt withal hiss'd him in scorn:\nWhile we were interchanging thrusts and blows,\nCame more and more and fought on part and part,\nTill the prince came, who parted either part.\nLADY MONTAGUE\nO, where is Romeo? saw you him to-day?\nRight glad I am he was not at this fray.\nBENVOLIO\nMadam, an hour before the worshipp'd sun\nPeer'd forth the golden window of the east,\nA troubled mind drave me to walk abroad;\nWhere, underneath the grove of sycamore\nThat westward rooteth from the city's side,\nSo early walking did I see your son:\nTowards him I made, but he was ware of me\nAnd stole into the covert of the wood:\nI, measuring his affections by my own,\nThat most are busied when they're most alone,\nPursued my humour not pursuing his,\nAnd gladly shunn'd who gladly fled from me.\nMONTAGUE\nMany a morning hath he there been seen,\nWith tears augmenting the fresh morning dew.\nAdding to clouds more clouds with his deep sighs;\nBut all so soon as the all-cheering sun\nShould in the furthest east begin to draw\nThe shady curtains from Aurora's bed,\nAway from the light steals home my heavy son,\nAnd private in his chamber pens himself,\nShuts up his windows, locks far daylight out\nAnd makes himself an artificial night:\nBlack and portentous must this humour prove,\nUnless good counsel may the cause remove.\nBENVOLIO\nMy noble uncle, do you know the cause?\nMONTAGUE\nI neither know it nor can learn of him.\nBENVOLIO\nHave you importuned him by any means?\nMONTAGUE\nBoth by myself and many other friends:\nBut he, his own affections' counsellor,\nIs to himself--I will not say how true--\nBut to himself so secret and so close,\nSo far from sounding and discovery,\nAs is the bud bit with an envious worm,\nEre he can spread his sweet leaves to the air,\nOr dedicate his beauty to the sun.\nCould we but learn from whence his sorrows grow.\nWe would as willingly give cure as know.\nEnter ROMEO\n\nBENVOLIO\nSee, where he comes: so please you, step aside;\nI'll know his grievance, or be much denied.\nMONTAGUE\nI would thou wert so happy by thy stay,\nTo hear true shrift. Come, madam, let's away.\nExeunt MONTAGUE and LADY MONTAGUE\n\nBENVOLIO\nGood-morrow, cousin.\nROMEO\nIs the day so young?\nBENVOLIO\nBut new struck nine.\nROMEO\nAy me! sad hours seem long.\nWas that my father that went hence so fast?\nBENVOLIO\nIt was. What sadness lengthens Romeo's hours?\nROMEO\nNot having that, which, having, makes them short.\nBENVOLIO\nIn love?\nROMEO\nOut--\nBENVOLIO\nOf love?\nROMEO\nOut of her favour, where I am in love.\nBENVOLIO\nAlas, that love, so gentle in his view,\nShould be so tyrannous and rough in proof!\nROMEO\nAlas, that love, whose view is muffled still,\nShould, without eyes, see pathways to his will!\nWhere shall we dine? O me! What fray was here?\nYet tell me not, for I have heard it all.\nHere's much to do with hate, but more with love.\nWhy, then, O brawling love! O loving hate!\nO any thing, of nothing first create!\nO heavy lightness! serious vanity!\nMis-shapen chaos of well-seeming forms!\nFeather of lead, bright smoke, cold fire,\nsick health!\nStill-waking sleep, that is not what it is!\nThis love feel I, that feel no love in this.\nDost thou not laugh?\nBENVOLIO\nNo, coz, I rather weep.\nROMEO\nGood heart, at what?\nBENVOLIO\nAt thy good heart's oppression.\nROMEO\nWhy, such is love's transgression.\nGriefs of mine own lie heavy in my breast,\nWhich thou wilt propagate, to have it prest\nWith more of thine: this love that thou hast shown\nDoth add more grief to too much of mine own.\nLove is a smoke raised with the fume of sighs;\nBeing purged, a fire sparkling in lovers' eyes;\nBeing vex'd a sea nourish'd with lovers' tears:\nWhat is it else? a madness most discreet,\nA choking gall and a preserving sweet.\nFarewell, my coz.\nBENVOLIO\nSoft! I will go along;\nAn if you leave me so, you do me wrong.\nROMEO\nTut, I have lost myself; I am not here;\nThis is not Romeo, he's some other where.\nBENVOLIO\nTell me in sadness, who is that you love.\nROMEO\nWhat, shall I groan and tell thee?\nBENVOLIO\nGroan! why, no.\nBut sadly tell me who.\nROMEO\nBid a sick man in sadness make his will:\nAh, word ill urged to one that is so ill!\nIn sadness, cousin, I do love a woman.\nBENVOLIO\nI aim'd so near, when I supposed you loved.\nROMEO\nA right good mark-man! And she's fair I love.\nBENVOLIO\nA right fair mark, fair coz, is soonest hit.\nROMEO\nWell, in that hit you miss: she'll not be hit\nWith Cupid's arrow; she hath Dian's wit;\nAnd, in strong proof of chastity well arm'd,\nFrom love's weak childish bow she lives unharm'd.\nShe will not stay the siege of loving terms,\nNor bide the encounter of assailing eyes,\nNor ope her lap to saint-seducing gold:\nO, she is rich in beauty, only poor,\nThat when she dies with beauty dies her store.\nBENVOLIO\nThen she hath sworn that she will still live chaste?\nROMEO\nShe hath, and in that sparing makes huge waste,\nFor beauty starved with her severity\nCuts beauty off from all posterity.\nShe is too fair, too wise, wisely too fair,\nTo merit bliss by making me despair:\nShe hath forsworn to love, and in that vow\nDo I live dead that live to tell it now.\nBENVOLIO\nBe ruled by me, forget to think of her.\nROMEO\nO, teach me how I should forget to think.\nBENVOLIO\nBy giving liberty unto thine eyes;\nExamine other beauties.\nROMEO\n'Tis the way\nTo call hers exquisite, in question more:\nThese happy masks that kiss fair ladies' brows\nBeing black put us in mind they hide the fair;\nHe that is strucken blind cannot forget\nThe precious treasure of his eyesight lost:\nShow me a mistress that is passing fair,\nWhat doth her beauty serve, but as a note\nWhere I may read who pass'd that passing fair?\nFarewell: thou canst not teach me to forget.\nBENVOLIO\nI'll pay that doctrine, or else die in debt.\nExeunt\n\nSCENE II. A street.\n\nEnter CAPULET, PARIS, and Servant\nCAPULET\nBut Montague is bound as well as I,\nIn penalty alike; and 'tis not hard, I think,\nFor men so old as we to keep the peace.\nPARIS\nOf honourable reckoning are you both;\nAnd pity 'tis you lived at odds so long.\nBut now, my lord, what say you to my suit?\nCAPULET\nBut saying o'er what I have said before:\nMy child is yet a stranger in the world;\nShe hath not seen the change of fourteen years,\nLet two more summers wither in their pride,\nEre we may think her ripe to be a bride.\nPARIS\nYounger than she are happy mothers made.\nCAPULET\nAnd too soon marr'd are those so early made.\nThe earth hath swallow'd all my hopes but she,\nShe is the hopeful lady of my earth:\nBut woo her, gentle Paris, get her heart,\nMy will to her consent is but a part;\nAn she agree, within her scope of choice\nLies my consent and fair according voice.\nThis night I hold an old accustom'd feast,\nWhereto I have invited many a guest,\nSuch as I love; and you, among the store,\nOne more, most welcome, makes my number more.\nAt my poor house look to behold this night\nEarth-treading stars that make dark heaven light:\nSuch comfort as do lusty young men feel\nWhen well-apparell'd April on the heel\nOf limping winter treads, even such delight\nAmong fresh female buds shall you this night\nInherit at my house; hear all, all see,\nAnd like her most whose merit most shall be:\nWhich on more view, of many mine being one\nMay stand in number, though in reckoning none,\nCome, go with me.\nTo Servant, giving a paper\n\nGo, sirrah, trudge about\nThrough fair Verona; find those persons out\nWhose names are written there, and to them say,\nMy house and welcome on their pleasure stay.\nExeunt CAPULET and PARIS\n\nServant\nFind them out whose names are written here! It is\nwritten, that the shoemaker should meddle with his\nyard, and the tailor with his last, the fisher with\nhis pencil, and the painter with his nets; but I am\nsent to find those persons whose names are here\nwrit, and can never find what names the writing\nperson hath here writ. I must to the learned.--In good time.\nEnter BENVOLIO and ROMEO\n\nBENVOLIO\nTut, man, one fire burns out another's burning,\nOne pain is lessen'd by another's anguish;\nTurn giddy, and be holp by backward turning;\nOne desperate grief cures with another's languish:\nTake thou some new infection to thy eye,\nAnd the rank poison of the old will die.\nROMEO\nYour plaintain-leaf is excellent for that.\nBENVOLIO\nFor what, I pray thee?\nROMEO\nFor your broken shin.\nBENVOLIO\nWhy, Romeo, art thou mad?\nROMEO\nNot mad, but bound more than a mad-man is;\nShut up in prison, kept without my food,\nWhipp'd and tormented and--God-den, good fellow.\nServant\nGod gi' god-den. I pray, sir, can you read?\nROMEO\nAy, mine own fortune in my misery.\nServant\nPerhaps you have learned it without book: but, I\npray, can you read any thing you see?\nROMEO\nAy, if I know the letters and the language.\nServant\nYe say honestly: rest you merry!\nROMEO\nStay, fellow; I can read.\nReads\n\n'Signior Martino and his wife and daughters;\nCounty Anselme and his beauteous sisters; the lady\nwidow of Vitravio; Signior Placentio and his lovely\nnieces; Mercutio and his brother Valentine; mine\nuncle Capulet, his wife and daughters; my fair niece\nRosaline; Livia; Signior Valentio and his cousin\nTybalt, Lucio and the lively Helena.' A fair\nassembly: whither should they come?\nServant\nUp.\nROMEO\nWhither?\nServant\nTo supper; to our house.\nROMEO\nWhose house?\nServant\nMy master's.\nROMEO\nIndeed, I should have ask'd you that before.\nServant\nNow I'll tell you without asking: my master is the\ngreat rich Capulet; and if you be not of the house\nof Montagues, I pray, come and crush a cup of wine.\nRest you merry!\nExit\n\nBENVOLIO\nAt this same ancient feast of Capulet's\nSups the fair Rosaline whom thou so lovest,\nWith all the admired beauties of Verona:\nGo thither; and, with unattainted eye,\nCompare her face with some that I shall show,\nAnd I will make thee think thy swan a crow.\nROMEO\nWhen the devout religion of mine eye\nMaintains such falsehood, then turn tears to fires;\nAnd these, who often drown'd could never die,\nTransparent heretics, be burnt for liars!\nOne fairer than my love! the all-seeing sun\nNe'er saw her match since first the world begun.\nBENVOLIO\nTut, you saw her fair, none else being by,\nHerself poised with herself in either eye:\nBut in that crystal scales let there be weigh'd\nYour lady's love against some other maid\nThat I will show you shining at this feast,\nAnd she shall scant show well that now shows best.\nROMEO\nI'll go along, no such sight to be shown,\nBut to rejoice in splendor of mine own.\nExeunt\n\nSCENE III. A room in Capulet's house.\n\nEnter LADY CAPULET and Nurse\nLADY CAPULET\nNurse, where's my daughter? call her forth to me.\nNurse\nNow, by my maidenhead, at twelve year old,\nI bade her come. What, lamb! what, ladybird!\nGod forbid! Where's this girl? What, Juliet!\nEnter JULIET\n\nJULIET\nHow now! who calls?\nNurse\nYour mother.\nJULIET\nMadam, I am here.\nWhat is your will?\nLADY CAPULET\nThis is the matter:--Nurse, give leave awhile,\nWe must talk in secret:--nurse, come back again;\nI have remember'd me, thou's hear our counsel.\nThou know'st my daughter's of a pretty age.\nNurse\nFaith, I can tell her age unto an hour.\nLADY CAPULET\nShe's not fourteen.\nNurse\nI'll lay fourteen of my teeth,--\nAnd yet, to my teeth be it spoken, I have but four--\nShe is not fourteen. How long is it now\nTo Lammas-tide?\nLADY CAPULET\nA fortnight and odd days.\nNurse\nEven or odd, of all days in the year,\nCome Lammas-eve at night shall she be fourteen.\nSusan and she--God rest all Christian souls!--\nWere of an age: well, Susan is with God;\nShe was too good for me: but, as I said,\nOn Lammas-eve at night shall she be fourteen;\nThat shall she, marry; I remember it well.\n'Tis since the earthquake now eleven years;\nAnd she was wean'd,--I never shall forget it,--\nOf all the days of the year, upon that day:\nFor I had then laid wormwood to my dug,\nSitting in the sun under the dove-house wall;\nMy lord and you were then at Mantua:--\nNay, I do bear a brain:--but, as I said,\nWhen it did taste the wormwood on the nipple\nOf my dug and felt it bitter, pretty fool,\nTo see it tetchy and fall out with the dug!\nShake quoth the dove-house: 'twas no need, I trow,\nTo bid me trudge:\nAnd since that time it is eleven years;\nFor then she could stand alone; nay, by the rood,\nShe could have run and waddled all about;\nFor even the day before, she broke her brow:\nAnd then my husband--God be with his soul!\nA' was a merry man--took up the child:\n'Yea,' quoth he, 'dost thou fall upon thy face?\nThou wilt fall backward when thou hast more wit;\nWilt thou not, Jule?' and, by my holidame,\nThe pretty wretch left crying and said 'Ay.'\nTo see, now, how a jest shall come about!\nI warrant, an I should live a thousand years,\nI never should forget it: 'Wilt thou not, Jule?' quoth he;\nAnd, pretty fool, it stinted and said 'Ay.'\nLADY CAPULET\nEnough of this; I pray thee, hold thy peace.\nNurse\nYes, madam: yet I cannot choose but laugh,\nTo think it should leave crying and say 'Ay.'\nAnd yet, I warrant, it had upon its brow\nA bump as big as a young cockerel's stone;\nA parlous knock; and it cried bitterly:\n'Yea,' quoth my husband,'fall'st upon thy face?\nThou wilt fall backward when thou comest to age;\nWilt thou not, Jule?' it stinted and said 'Ay.'\nJULIET\nAnd stint thou too, I pray thee, nurse, say I.\nNurse\nPeace, I have done. God mark thee to his grace!\nThou wast the prettiest babe that e'er I nursed:\nAn I might live to see thee married once,\nI have my wish.\nLADY CAPULET\nMarry, that 'marry' is the very theme\nI came to talk of. Tell me, daughter Juliet,\nHow stands your disposition to be married?\nJULIET\nIt is an honour that I dream not of.\nNurse\nAn honour! were not I thine only nurse,\nI would say thou hadst suck'd wisdom from thy teat.\nLADY CAPULET\nWell, think of marriage now; younger than you,\nHere in Verona, ladies of esteem,\nAre made already mothers: by my count,\nI was your mother much upon these years\nThat you are now a maid. Thus then in brief:\nThe valiant Paris seeks you for his love.\nNurse\nA man, young lady! lady, such a man\nAs all the world--why, he's a man of wax.\nLADY CAPULET\nVerona's summer hath not such a flower.\nNurse\nNay, he's a flower; in faith, a very flower.\nLADY CAPULET\nWhat say you? can you love the gentleman?\nThis night you shall behold him at our feast;\nRead o'er the volume of young Paris' face,\nAnd find delight writ there with beauty's pen;\nExamine every married lineament,\nAnd see how one another lends content\nAnd what obscured in this fair volume lies\nFind written in the margent of his eyes.\nThis precious book of love, this unbound lover,\nTo beautify him, only lacks a cover:\nThe fish lives in the sea, and 'tis much pride\nFor fair without the fair within to hide:\nThat book in many's eyes doth share the glory,\nThat in gold clasps locks in the golden story;\nSo shall you share all that he doth possess,\nBy having him, making yourself no less.\nNurse\nNo less! nay, bigger; women grow by men.\nLADY CAPULET\nSpeak briefly, can you like of Paris' love?\nJULIET\nI'll look to like, if looking liking move:\nBut no more deep will I endart mine eye\nThan your consent gives strength to make it fly.\nEnter a Servant\n\nServant\nMadam, the guests are come, supper served up, you\ncalled, my young lady asked for, the nurse cursed in\nthe pantry, and every thing in extremity. I must\nhence to wait; I beseech you, follow straight.\nLADY CAPULET\nWe follow thee.\nExit Servant\n\nJuliet, the county stays.\nNurse\nGo, girl, seek happy nights to happy days.\nExeunt\n\nSCENE IV. A street.\n\nEnter ROMEO, MERCUTIO, BENVOLIO, with five or six Maskers, Torch-bearers, and others\nROMEO\nWhat, shall this speech be spoke for our excuse?\nOr shall we on without a apology?\nBENVOLIO\nThe date is out of such prolixity:\nWe'll have no Cupid hoodwink'd with a scarf,\nBearing a Tartar's painted bow of lath,\nScaring the ladies like a crow-keeper;\nNor no without-book prologue, faintly spoke\nAfter the prompter, for our entrance:\nBut let them measure us by what they will;\nWe'll measure them a measure, and be gone.\nROMEO\nGive me a torch: I am not for this ambling;\nBeing but heavy, I will bear the light.\nMERCUTIO\nNay, gentle Romeo, we must have you dance.\nROMEO\nNot I, believe me: you have dancing shoes\nWith nimble soles: I have a soul of lead\nSo stakes me to the ground I cannot move.\nMERCUTIO\nYou are a lover; borrow Cupid's wings,\nAnd soar with them above a common bound.\nROMEO\nI am too sore enpierced with his shaft\nTo soar with his light feathers, and so bound,\nI cannot bound a pitch above dull woe:\nUnder love's heavy burden do I sink.\nMERCUTIO\nAnd, to sink in it, should you burden love;\nToo great oppression for a tender thing.\nROMEO\nIs love a tender thing? it is too rough,\nToo rude, too boisterous, and it pricks like thorn.\nMERCUTIO\nIf love be rough with you, be rough with love;\nPrick love for pricking, and you beat love down.\nGive me a case to put my visage in:\nA visor for a visor! what care I\nWhat curious eye doth quote deformities?\nHere are the beetle brows shall blush for me.\nBENVOLIO\nCome, knock and enter; and no sooner in,\nBut every man betake him to his legs.\nROMEO\nA torch for me: let wantons light of heart\nTickle the senseless rushes with their heels,\nFor I am proverb'd with a grandsire phrase;\nI'll be a candle-holder, and look on.\nThe game was ne'er so fair, and I am done.\nMERCUTIO\nTut, dun's the mouse, the constable's own word:\nIf thou art dun, we'll draw thee from the mire\nOf this sir-reverence love, wherein thou stick'st\nUp to the ears. Come, we burn daylight, ho!\nROMEO\nNay, that's not so.\nMERCUTIO\nI mean, sir, in delay\nWe waste our lights in vain, like lamps by day.\nTake our good meaning, for our judgment sits\nFive times in that ere once in our five wits.\nROMEO\nAnd we mean well in going to this mask;\nBut 'tis no wit to go.\nMERCUTIO\nWhy, may one ask?\nROMEO\nI dream'd a dream to-night.\nMERCUTIO\nAnd so did I.\nROMEO\nWell, what was yours?\nMERCUTIO\nThat dreamers often lie.\nROMEO\nIn bed asleep, while they do dream things true.\nMERCUTIO\nO, then, I see Queen Mab hath been with you.\nShe is the fairies' midwife, and she comes\nIn shape no bigger than an agate-stone\nOn the fore-finger of an alderman,\nDrawn with a team of little atomies\nAthwart men's noses as they lie asleep;\nHer wagon-spokes made of long spiders' legs,\nThe cover of the wings of grasshoppers,\nThe traces of the smallest spider's web,\nThe collars of the moonshine's watery beams,\nHer whip of cricket's bone, the lash of film,\nHer wagoner a small grey-coated gnat,\nNot so big as a round little worm\nPrick'd from the lazy finger of a maid;\nHer chariot is an empty hazel-nut\nMade by the joiner squirrel or old grub,\nTime out o' mind the fairies' coachmakers.\nAnd in this state she gallops night by night\nThrough lovers' brains, and then they dream of love;\nO'er courtiers' knees, that dream on court'sies straight,\nO'er lawyers' fingers, who straight dream on fees,\nO'er ladies ' lips, who straight on kisses dream,\nWhich oft the angry Mab with blisters plagues,\nBecause their breaths with sweetmeats tainted are:\nSometime she gallops o'er a courtier's nose,\nAnd then dreams he of smelling out a suit;\nAnd sometime comes she with a tithe-pig's tail\nTickling a parson's nose as a' lies asleep,\nThen dreams, he of another benefice:\nSometime she driveth o'er a soldier's neck,\nAnd then dreams he of cutting foreign throats,\nOf breaches, ambuscadoes, Spanish blades,\nOf healths five-fathom deep; and then anon\nDrums in his ear, at which he starts and wakes,\nAnd being thus frighted swears a prayer or two\nAnd sleeps again. This is that very Mab\nThat plats the manes of horses in the night,\nAnd bakes the elflocks in foul sluttish hairs,\nWhich once untangled, much misfortune bodes:\nThis is the hag, when maids lie on their backs,\nThat presses them and learns them first to bear,\nMaking them women of good carriage:\nThis is she--\nROMEO\nPeace, peace, Mercutio, peace!\nThou talk'st of nothing.\nMERCUTIO\nTrue, I talk of dreams,\nWhich are the children of an idle brain,\nBegot of nothing but vain fantasy,\nWhich is as thin of substance as the air\nAnd more inconstant than the wind, who wooes\nEven now the frozen bosom of the north,\nAnd, being anger'd, puffs away from thence,\nTurning his face to the dew-dropping south.\nBENVOLIO\nThis wind, you talk of, blows us from ourselves;\nSupper is done, and we shall come too late.\nROMEO\nI fear, too early: for my mind misgives\nSome consequence yet hanging in the stars\nShall bitterly begin his fearful date\nWith this night's revels and expire the term\nOf a despised life closed in my breast\nBy some vile forfeit of untimely death.\nBut He, that hath the steerage of my course,\nDirect my sail! On, lusty gentlemen.\nBENVOLIO\nStrike, drum.\nExeunt\n\nSCENE V. A hall in Capulet's house.\n\nMusicians waiting. Enter Servingmen with napkins\nFirst Servant\nWhere's Potpan, that he helps not to take away? He\nshift a trencher? he scrape a trencher!\nSecond Servant\nWhen good manners shall lie all in one or two men's\nhands and they unwashed too, 'tis a foul thing.\nFirst Servant\nAway with the joint-stools, remove the\ncourt-cupboard, look to the plate. Good thou, save\nme a piece of marchpane; and, as thou lovest me, let\nthe porter let in Susan Grindstone and Nell.\nAntony, and Potpan!\nSecond Servant\nAy, boy, ready.\nFirst Servant\nYou are looked for and called for, asked for and\nsought for, in the great chamber.\nSecond Servant\nWe cannot be here and there too. Cheerly, boys; be\nbrisk awhile, and the longer liver take all.\nEnter CAPULET, with JULIET and others of his house, meeting the Guests and Maskers\n\nCAPULET\nWelcome, gentlemen! ladies that have their toes\nUnplagued with corns will have a bout with you.\nAh ha, my mistresses! which of you all\nWill now deny to dance? she that makes dainty,\nShe, I'll swear, hath corns; am I come near ye now?\nWelcome, gentlemen! I have seen the day\nThat I have worn a visor and could tell\nA whispering tale in a fair lady's ear,\nSuch as would please: 'tis gone, 'tis gone, 'tis gone:\nYou are welcome, gentlemen! come, musicians, play.\nA hall, a hall! give room! and foot it, girls.\nMusic plays, and they dance\n\nMore light, you knaves; and turn the tables up,\nAnd quench the fire, the room is grown too hot.\nAh, sirrah, this unlook'd-for sport comes well.\nNay, sit, nay, sit, good cousin Capulet;\nFor you and I are past our dancing days:\nHow long is't now since last yourself and I\nWere in a mask?\nSecond Capulet\nBy'r lady, thirty years.\nCAPULET\nWhat, man! 'tis not so much, 'tis not so much:\n'Tis since the nuptials of Lucentio,\nCome pentecost as quickly as it will,\nSome five and twenty years; and then we mask'd.\nSecond Capulet\n'Tis more, 'tis more, his son is elder, sir;\nHis son is thirty.\nCAPULET\nWill you tell me that?\nHis son was but a ward two years ago.\nROMEO\n[To a Servingman] What lady is that, which doth\nenrich the hand\nOf yonder knight?\nServant\nI know not, sir.\nROMEO\nO, she doth teach the torches to burn bright!\nIt seems she hangs upon the cheek of night\nLike a rich jewel in an Ethiope's ear;\nBeauty too rich for use, for earth too dear!\nSo shows a snowy dove trooping with crows,\nAs yonder lady o'er her fellows shows.\nThe measure done, I'll watch her place of stand,\nAnd, touching hers, make blessed my rude hand.\nDid my heart love till now? forswear it, sight!\nFor I ne'er saw true beauty till this night.\nTYBALT\nThis, by his voice, should be a Montague.\nFetch me my rapier, boy. What dares the slave\nCome hither, cover'd with an antic face,\nTo fleer and scorn at our solemnity?\nNow, by the stock and honour of my kin,\nTo strike him dead, I hold it not a sin.\nCAPULET\nWhy, how now, kinsman! wherefore storm you so?\nTYBALT\nUncle, this is a Montague, our foe,\nA villain that is hither come in spite,\nTo scorn at our solemnity this night.\nCAPULET\nYoung Romeo is it?\nTYBALT\n'Tis he, that villain Romeo.\nCAPULET\nContent thee, gentle coz, let him alone;\nHe bears him like a portly gentleman;\nAnd, to say truth, Verona brags of him\nTo be a virtuous and well-govern'd youth:\nI would not for the wealth of all the town\nHere in my house do him disparagement:\nTherefore be patient, take no note of him:\nIt is my will, the which if thou respect,\nShow a fair presence and put off these frowns,\nAnd ill-beseeming semblance for a feast.\nTYBALT\nIt fits, when such a villain is a guest:\nI'll not endure him.\nCAPULET\nHe shall be endured:\nWhat, goodman boy! I say, he shall: go to;\nAm I the master here, or you? go to.\nYou'll not endure him! God shall mend my soul!\nYou'll make a mutiny among my guests!\nYou will set cock-a-hoop! you'll be the man!\nTYBALT\nWhy, uncle, 'tis a shame.\nCAPULET\nGo to, go to;\nYou are a saucy boy: is't so, indeed?\nThis trick may chance to scathe you, I know what:\nYou must contrary me! marry, 'tis time.\nWell said, my hearts! You are a princox; go:\nBe quiet, or--More light, more light! For shame!\nI'll make you quiet. What, cheerly, my hearts!\nTYBALT\nPatience perforce with wilful choler meeting\nMakes my flesh tremble in their different greeting.\nI will withdraw: but this intrusion shall\nNow seeming sweet convert to bitter gall.\nExit\n\nROMEO\n[To JULIET] If I profane with my unworthiest hand\nThis holy shrine, the gentle fine is this:\nMy lips, two blushing pilgrims, ready stand\nTo smooth that rough touch with a tender kiss.\nJULIET\nGood pilgrim, you do wrong your hand too much,\nWhich mannerly devotion shows in this;\nFor saints have hands that pilgrims' hands do touch,\nAnd palm to palm is holy palmers' kiss.\nROMEO\nHave not saints lips, and holy palmers too?\nJULIET\nAy, pilgrim, lips that they must use in prayer.\nROMEO\nO, then, dear saint, let lips do what hands do;\nThey pray, grant thou, lest faith turn to despair.\nJULIET\nSaints do not move, though grant for prayers' sake.\nROMEO\nThen move not, while my prayer's effect I take.\nThus from my lips, by yours, my sin is purged.\nJULIET\nThen have my lips the sin that they have took.\nROMEO\nSin from thy lips? O trespass sweetly urged!\nGive me my sin again.\nJULIET\nYou kiss by the book.\nNurse\nMadam, your mother craves a word with you.\nROMEO\nWhat is her mother?\nNurse\nMarry, bachelor,\nHer mother is the lady of the house,\nAnd a good lady, and a wise and virtuous\nI nursed her daughter, that you talk'd withal;\nI tell you, he that can lay hold of her\nShall have the chinks.\nROMEO\nIs she a Capulet?\nO dear account! my life is my foe's debt.\nBENVOLIO\nAway, begone; the sport is at the best.\nROMEO\nAy, so I fear; the more is my unrest.\nCAPULET\nNay, gentlemen, prepare not to be gone;\nWe have a trifling foolish banquet towards.\nIs it e'en so? why, then, I thank you all\nI thank you, honest gentlemen; good night.\nMore torches here! Come on then, let's to bed.\nAh, sirrah, by my fay, it waxes late:\nI'll to my rest.\nExeunt all but JULIET and Nurse\n\nJULIET\nCome hither, nurse. What is yond gentleman?\nNurse\nThe son and heir of old Tiberio.\nJULIET\nWhat's he that now is going out of door?\nNurse\nMarry, that, I think, be young Petrucio.\nJULIET\nWhat's he that follows there, that would not dance?\nNurse\nI know not.\nJULIET\nGo ask his name: if he be married.\nMy grave is like to be my wedding bed.\nNurse\nHis name is Romeo, and a Montague;\nThe only son of your great enemy.\nJULIET\nMy only love sprung from my only hate!\nToo early seen unknown, and known too late!\nProdigious birth of love it is to me,\nThat I must love a loathed enemy.\nNurse\nWhat's this? what's this?\nJULIET\nA rhyme I learn'd even now\nOf one I danced withal.\nOne calls within 'Juliet.'\n\nNurse\nAnon, anon!\nCome, let's away; the strangers all are gone.\nExeunt\n\nACT II\n\nPROLOGUE\n\nEnter Chorus\nChorus\nNow old desire doth in his death-bed lie,\nAnd young affection gapes to be his heir;\nThat fair for which love groan'd for and would die,\nWith tender Juliet match'd, is now not fair.\nNow Romeo is beloved and loves again,\nAlike betwitched by the charm of looks,\nBut to his foe supposed he must complain,\nAnd she steal love's sweet bait from fearful hooks:\nBeing held a foe, he may not have access\nTo breathe such vows as lovers use to swear;\nAnd she as much in love, her means much less\nTo meet her new-beloved any where:\nBut passion lends them power, time means, to meet\nTempering extremities with extreme sweet.\nExit\n\nSCENE I. A lane by the wall of Capulet's orchard.\n\nEnter ROMEO\nROMEO\nCan I go forward when my heart is here?\nTurn back, dull earth, and find thy centre out.\nHe climbs the wall, and leaps down within it\n\nEnter BENVOLIO and MERCUTIO\n\nBENVOLIO\nRomeo! my cousin Romeo!\nMERCUTIO\nHe is wise;\nAnd, on my lie, hath stol'n him home to bed.\nBENVOLIO\nHe ran this way, and leap'd this orchard wall:\nCall, good Mercutio.\nMERCUTIO\nNay, I'll conjure too.\nRomeo! humours! madman! passion! lover!\nAppear thou in the likeness of a sigh:\nSpeak but one rhyme, and I am satisfied;\nCry but 'Ay me!' pronounce but 'love' and 'dove;'\nSpeak to my gossip Venus one fair word,\nOne nick-name for her purblind son and heir,\nYoung Adam Cupid, he that shot so trim,\nWhen King Cophetua loved the beggar-maid!\nHe heareth not, he stirreth not, he moveth not;\nThe ape is dead, and I must conjure him.\nI conjure thee by Rosaline's bright eyes,\nBy her high forehead and her scarlet lip,\nBy her fine foot, straight leg and quivering thigh\nAnd the demesnes that there adjacent lie,\nThat in thy likeness thou appear to us!\nBENVOLIO\nAnd if he hear thee, thou wilt anger him.\nMERCUTIO\nThis cannot anger him: 'twould anger him\nTo raise a spirit in his mistress' circle\nOf some strange nature, letting it there stand\nTill she had laid it and conjured it down;\nThat were some spite: my invocation\nIs fair and honest, and in his mistres s' name\nI conjure only but to raise up him.\nBENVOLIO\nCome, he hath hid himself among these trees,\nTo be consorted with the humorous night:\nBlind is his love and best befits the dark.\nMERCUTIO\nIf love be blind, love cannot hit the mark.\nNow will he sit under a medlar tree,\nAnd wish his mistress were that kind of fruit\nAs maids call medlars, when they laugh alone.\nRomeo, that she were, O, that she were\nAn open et caetera, thou a poperin pear!\nRomeo, good night: I'll to my truckle-bed;\nThis field-bed is too cold for me to sleep:\nCome, shall we go?\nBENVOLIO\nGo, then; for 'tis in vain\nTo seek him here that means not to be found.\nExeunt\n\nSCENE II. Capulet's orchard.\n\nEnter ROMEO\nROMEO\nHe jests at scars that never felt a wound.\nJULIET appears above at a window\n\nBut, soft! what light through yonder window breaks?\nIt is the east, and Juliet is the sun.\nArise, fair sun, and kill the envious moon,\nWho is already sick and pale with grief,\nThat thou her maid art far more fair than she:\nBe not her maid, since she is envious;\nHer vestal livery is but sick and green\nAnd none but fools do wear it; cast it off.\nIt is my lady, O, it is my love!\nO, that she knew she were!\nShe speaks yet she says nothing: what of that?\nHer eye discourses; I will answer it.\nI am too bold, 'tis not to me she speaks:\nTwo of the fairest stars in all the heaven,\nHaving some business, do entreat her eyes\nTo twinkle in their spheres till they return.\nWhat if her eyes were there, they in her head?\nThe brightness of her cheek would shame those stars,\nAs daylight doth a lamp; her eyes in heaven\nWould through the airy region stream so bright\nThat birds would sing and think it were not night.\nSee, how she leans her cheek upon her hand!\nO, that I were a glove upon that hand,\nThat I might touch that cheek!\nJULIET\nAy me!\nROMEO\nShe speaks:\nO, speak again, bright angel! for thou art\nAs glorious to this night, being o'er my head\nAs is a winged messenger of heaven\nUnto the white-upturned wondering eyes\nOf mortals that fall back to gaze on him\nWhen he bestrides the lazy-pacing clouds\nAnd sails upon the bosom of the air.\nJULIET\nO Romeo, Romeo! wherefore art thou Romeo?\nDeny thy father and refuse thy name;\nOr, if thou wilt not, be but sworn my love,\nAnd I'll no longer be a Capulet.\nROMEO\n[Aside] Shall I hear more, or shall I speak at this?\nJULIET\n'Tis but thy name that is my enemy;\nThou art thyself, though not a Montague.\nWhat's Montague? it is nor hand, nor foot,\nNor arm, nor face, nor any other part\nBelonging to a man. O, be some other name!\nWhat's in a name? that which we call a rose\nBy any other name would smell as sweet;\nSo Romeo would, were he not Romeo call'd,\nRetain that dear perfection which he owes\nWithout that title. Romeo, doff thy name,\nAnd for that name which is no part of thee\nTake all myself.\nROMEO\nI take thee at thy word:\nCall me but love, and I'll be new baptized;\nHenceforth I never will be Romeo.\nJULIET\nWhat man art thou that thus bescreen'd in night\nSo stumblest on my counsel?\nROMEO\nBy a name\nI know not how to tell thee who I am:\nMy name, dear saint, is hateful to myself,\nBecause it is an enemy to thee;\nHad I it written, I would tear the word.\nJULIET\nMy ears have not yet drunk a hundred words\nOf that tongue's utterance, yet I know the sound:\nArt thou not Romeo and a Montague?\nROMEO\nNeither, fair saint, if either thee dislike.\nJULIET\nHow camest thou hither, tell me, and wherefore?\nThe orchard walls are high and hard to climb,\nAnd the place death, considering who thou art,\nIf any of my kinsmen find thee here.\nROMEO\nWith love's light wings did I o'er-perch these walls;\nFor stony limits cannot hold love out,\nAnd what love can do that dares love attempt;\nTherefore thy kinsmen are no let to me.\nJULIET\nIf they do see thee, they will murder thee.\nROMEO\nAlack, there lies more peril in thine eye\nThan twenty of their swords: look thou but sweet,\nAnd I am proof against their enmity.\nJULIET\nI would not for the world they saw thee here.\nROMEO\nI have night's cloak to hide me from their sight;\nAnd but thou love me, let them find me here:\nMy life were better ended by their hate,\nThan death prorogued, wanting of thy love.\nJULIET\nBy whose direction found'st thou out this place?\nROMEO\nBy love, who first did prompt me to inquire;\nHe lent me counsel and I lent him eyes.\nI am no pilot; yet, wert thou as far\nAs that vast shore wash'd with the farthest sea,\nI would adventure for such merchandise.\nJULIET\nThou know'st the mask of night is on my face,\nElse would a maiden blush bepaint my cheek\nFor that which thou hast heard me speak to-night\nFain would I dwell on form, fain, fain deny\nWhat I have spoke: but farewell compliment!\nDost thou love me? I know thou wilt say 'Ay,'\nAnd I will take thy word: yet if thou swear'st,\nThou mayst prove false; at lovers' perjuries\nThen say, Jove laughs. O gentle Romeo,\nIf thou dost love, pronounce it faithfully:\nOr if thou think'st I am too quickly won,\nI'll frown and be perverse an say thee nay,\nSo thou wilt woo; but else, not for the world.\nIn truth, fair Montague, I am too fond,\nAnd therefore thou mayst think my 'havior light:\nBut trust me, gentleman, I'll prove more true\nThan those that have more cunning to be strange.\nI should have been more strange, I must confess,\nBut that thou overheard'st, ere I was ware,\nMy true love's passion: therefore pardon me,\nAnd not impute this yielding to light love,\nWhich the dark night hath so discovered.\nROMEO\nLady, by yonder blessed moon I swear\nThat tips with silver all these fruit-tree tops--\nJULIET\nO, swear not by the moon, the inconstant moon,\nThat monthly changes in her circled orb,\nLest that thy love prove likewise variable.\nROMEO\nWhat shall I swear by?\nJULIET\nDo not swear at all;\nOr, if thou wilt, swear by thy gracious self,\nWhich is the god of my idolatry,\nAnd I'll believe thee.\nROMEO\nIf my heart's dear love--\nJULIET\nWell, do not swear: although I joy in thee,\nI have no joy of this contract to-night:\nIt is too rash, too unadvised, too sudden;\nToo like the lightning, which doth cease to be\nEre one can say 'It lightens.' Sweet, good night!\nThis bud of love, by summer's ripening breath,\nMay prove a beauteous flower when next we meet.\nGood night, good night! as sweet repose and rest\nCome to thy heart as that within my breast!\nROMEO\nO, wilt thou leave me so unsatisfied?\nJULIET\nWhat satisfaction canst thou have to-night?\nROMEO\nThe exchange of thy love's faithful vow for mine.\nJULIET\nI gave thee mine before thou didst request it:\nAnd yet I would it were to give again.\nROMEO\nWouldst thou withdraw it? for what purpose, love?\nJULIET\nBut to be frank, and give it thee again.\nAnd yet I wish but for the thing I have:\nMy bounty is as boundless as the sea,\nMy love as deep; the more I give to thee,\nThe more I have, for both are infinite.\nNurse calls within\n\nI hear some noise within; dear love, adieu!\nAnon, good nurse! Sweet Montague, be true.\nStay but a little, I will come again.\nExit, above\n\nROMEO\nO blessed, blessed night! I am afeard.\nBeing in night, all this is but a dream,\nToo flattering-sweet to be substantial.\nRe-enter JULIET, above\n\nJULIET\nThree words, dear Romeo, and good night indeed.\nIf that thy bent of love be honourable,\nThy purpose marriage, send me word to-morrow,\nBy one that I'll procure to come to thee,\nWhere and what time thou wilt perform the rite;\nAnd all my fortunes at thy foot I'll lay\nAnd follow thee my lord throughout the world.\nNurse\n[Within] Madam!\nJULIET\nI come, anon.--But if thou mean'st not well,\nI do beseech thee--\nNurse\n[Within] Madam!\nJULIET\nBy and by, I come:--\nTo cease thy suit, and leave me to my grief:\nTo-morrow will I send.\nROMEO\nSo thrive my soul--\nJULIET\nA thousand times good night!\nExit, above\n\nROMEO\nA thousand times the worse, to want thy light.\nLove goes toward love, as schoolboys from\ntheir books,\nBut love from love, toward school with heavy looks.\nRetiring\n\nRe-enter JULIET, above\n\nJULIET\nHist! Romeo, hist! O, for a falconer's voice,\nTo lure this tassel-gentle back again!\nBondage is hoarse, and may not speak aloud;\nElse would I tear the cave where Echo lies,\nAnd make her airy tongue more hoarse than mine,\nWith repetition of my Romeo's name.\nROMEO\nIt is my soul that calls upon my name:\nHow silver-sweet sound lovers' tongues by night,\nLike softest music to attending ears!\nJULIET\nRomeo!\nROMEO\nMy dear?\nJULIET\nAt what o'clock to-morrow\nShall I send to thee?\nROMEO\nAt the hour of nine.\nJULIET\nI will not fail: 'tis twenty years till then.\nI have forgot why I did call thee back.\nROMEO\nLet me stand here till thou remember it.\nJULIET\nI shall forget, to have thee still stand there,\nRemembering how I love thy company.\nROMEO\nAnd I'll still stay, to have thee still forget,\nForgetting any other home but this.\nJULIET\n'Tis almost morning; I would have thee gone:\nAnd yet no further than a wanton's bird;\nWho lets it hop a little from her hand,\nLike a poor prisoner in his twisted gyves,\nAnd with a silk thread plucks it back again,\nSo loving-jealous of his liberty.\nROMEO\nI would I were thy bird.\nJULIET\nSweet, so would I:\nYet I should kill thee with much cherishing.\nGood night, good night! parting is such\nsweet sorrow,\nThat I shall say good night till it be morrow.\nExit above\n\nROMEO\nSleep dwell upon thine eyes, peace in thy breast!\nWould I were sleep and peace, so sweet to rest!\nHence will I to my ghostly father's cell,\nHis help to crave, and my dear hap to tell.\nExit\n\nSCENE III. Friar Laurence's cell.\n\nEnter FRIAR LAURENCE, with a basket\nFRIAR LAURENCE\nThe grey-eyed morn smiles on the frowning night,\nChequering the eastern clouds with streaks of light,\nAnd flecked darkness like a drunkard reels\nFrom forth day's path and Titan's fiery wheels:\nNow, ere the sun advance his burning eye,\nThe day to cheer and night's dank dew to dry,\nI must up-fill this osier cage of ours\nWith baleful weeds and precious-juiced flowers.\nThe earth that's nature's mother is her tomb;\nWhat is her burying grave that is her womb,\nAnd from her womb children of divers kind\nWe sucking on her natural bosom find,\nMany for many virtues excellent,\nNone but for some and yet all different.\nO, mickle is the powerful grace that lies\nIn herbs, plants, stones, and their true qualities:\nFor nought so vile that on the earth doth live\nBut to the earth some special good doth give,\nNor aught so good but strain'd from that fair use\nRevolts from true birth, stumbling on abuse:\nVirtue itself turns vice, being misapplied;\nAnd vice sometimes by action dignified.\nWithin the infant rind of this small flower\nPoison hath residence and medicine power:\nFor this, being smelt, with that part cheers each part;\nBeing tasted, slays all senses with the heart.\nTwo such opposed kings encamp them still\nIn man as well as herbs, grace and rude will;\nAnd where the worser is predominant,\nFull soon the canker death eats up that plant.\nEnter ROMEO\n\nROMEO\nGood morrow, father.\nFRIAR LAURENCE\nBenedicite!\nWhat early tongue so sweet saluteth me?\nYoung son, it argues a distemper'd head\nSo soon to bid good morrow to thy bed:\nCare keeps his watch in every old man's eye,\nAnd where care lodges, sleep will never lie;\nBut where unbruised youth with unstuff'd brain\nDoth couch his limbs, there golden sleep doth reign:\nTherefore thy earliness doth me assure\nThou art up-roused by some distemperature;\nOr if not so, then here I hit it right,\nOur Romeo hath not been in bed to-night.\nROMEO\nThat last is true; the sweeter rest was mine.\nFRIAR LAURENCE\nGod pardon sin! wast thou with Rosaline?\nROMEO\nWith Rosaline, my ghostly father? no;\nI have forgot that name, and that name's woe.\nFRIAR LAURENCE\nThat's my good son: but where hast thou been, then?\nROMEO\nI'll tell thee, ere thou ask it me again.\nI have been feasting with mine enemy,\nWhere on a sudden one hath wounded me,\nThat's by me wounded: both our remedies\nWithin thy help and holy physic lies:\nI bear no hatred, blessed man, for, lo,\nMy intercession likewise steads my foe.\nFRIAR LAURENCE\nBe plain, good son, and homely in thy drift;\nRiddling confession finds but riddling shrift.\nROMEO\nThen plainly know my heart's dear love is set\nOn the fair daughter of rich Capulet:\nAs mine on hers, so hers is set on mine;\nAnd all combined, save what thou must combine\nBy holy marriage: when and where and how\nWe met, we woo'd and made exchange of vow,\nI'll tell thee as we pass; but this I pray,\nThat thou consent to marry us to-day.\nFRIAR LAURENCE\nHoly Saint Francis, what a change is here!\nIs Rosaline, whom thou didst love so dear,\nSo soon forsaken? young men's love then lies\nNot truly in their hearts, but in their eyes.\nJesu Maria, what a deal of brine\nHath wash'd thy sallow cheeks for Rosaline!\nHow much salt water thrown away in waste,\nTo season love, that of it doth not taste!\nThe sun not yet thy sighs from heaven clears,\nThy old groans ring yet in my ancient ears;\nLo, here upon thy cheek the stain doth sit\nOf an old tear that is not wash'd off yet:\nIf e'er thou wast thyself and these woes thine,\nThou and these woes were all for Rosaline:\nAnd art thou changed? pronounce this sentence then,\nWomen may fall, when there's no strength in men.\nROMEO\nThou chid'st me oft for loving Rosaline.\nFRIAR LAURENCE\nFor doting, not for loving, pupil mine.\nROMEO\nAnd bad'st me bury love.\nFRIAR LAURENCE\nNot in a grave,\nTo lay one in, another out to have.\nROMEO\nI pray thee, chide not; she whom I love now\nDoth grace for grace and love for love allow;\nThe other did not so.\nFRIAR LAURENCE\nO, she knew well\nThy love did read by rote and could not spell.\nBut come, young waverer, come, go with me,\nIn one respect I'll thy assistant be;\nFor this alliance may so happy prove,\nTo turn your households' rancour to pure love.\nROMEO\nO, let us hence; I stand on sudden haste.\nFRIAR LAURENCE\nWisely and slow; they stumble that run fast.\nExeunt\n\nSCENE IV. A street.\n\nEnter BENVOLIO and MERCUTIO\nMERCUTIO\nWhere the devil should this Romeo be?\nCame he not home to-night?\nBENVOLIO\nNot to his father's; I spoke with his man.\nMERCUTIO\nAh, that same pale hard-hearted wench, that Rosaline.\nTorments him so, that he will sure run mad.\nBENVOLIO\nTybalt, the kinsman of old Capulet,\nHath sent a letter to his father's house.\nMERCUTIO\nA challenge, on my life.\nBENVOLIO\nRomeo will answer it.\nMERCUTIO\nAny man that can write may answer a letter.\nBENVOLIO\nNay, he will answer the letter's master, how he\ndares, being dared.\nMERCUTIO\nAlas poor Romeo! he is already dead; stabbed with a\nwhite wench's black eye; shot through the ear with a\nlove-song; the very pin of his heart cleft with the\nblind bow-boy's butt-shaft: and is he a man to\nencounter Tybalt?\nBENVOLIO\nWhy, what is Tybalt?\nMERCUTIO\nMore than prince of cats, I can tell you. O, he is\nthe courageous captain of compliments. He fights as\nyou sing prick-song, keeps time, distance, and\nproportion; rests me his minim rest, one, two, and\nthe third in your bosom: the very butcher of a silk\nbutton, a duellist, a duellist; a gentleman of the\nvery first house, of the first and second cause:\nah, the immortal passado! the punto reverso! the\nhai!\nBENVOLIO\nThe what?\nMERCUTIO\nThe pox of such antic, lisping, affecting\nfantasticoes; these new tuners of accents! 'By Jesu,\na very good blade! a very tall man! a very good\nwhore!' Why, is not this a lamentable thing,\ngrandsire, that we should be thus afflicted with\nthese strange flies, these fashion-mongers, these\nperdona-mi's, who stand so much on the new form,\nthat they cannot at ease on the old bench? O, their\nbones, their bones!\nEnter ROMEO\n\nBENVOLIO\nHere comes Romeo, here comes Romeo.\nMERCUTIO\nWithout his roe, like a dried herring: flesh, flesh,\nhow art thou fishified! Now is he for the numbers\nthat Petrarch flowed in: Laura to his lady was but a\nkitchen-wench; marry, she had a better love to\nbe-rhyme her; Dido a dowdy; Cleopatra a gipsy;\nHelen and Hero hildings and harlots; Thisbe a grey\neye or so, but not to the purpose. Signior\nRomeo, bon jour! there's a French salutation\nto your French slop. You gave us the counterfeit\nfairly last night.\nROMEO\nGood morrow to you both. What counterfeit did I give you?\nMERCUTIO\nThe ship, sir, the slip; can you not conceive?\nROMEO\nPardon, good Mercutio, my business was great; and in\nsuch a case as mine a man may strain courtesy.\nMERCUTIO\nThat's as much as to say, such a case as yours\nconstrains a man to bow in the hams.\nROMEO\nMeaning, to court'sy.\nMERCUTIO\nThou hast most kindly hit it.\nROMEO\nA most courteous exposition.\nMERCUTIO\nNay, I am the very pink of courtesy.\nROMEO\nPink for flower.\nMERCUTIO\nRight.\nROMEO\nWhy, then is my pump well flowered.\nMERCUTIO\nWell said: follow me this jest now till thou hast\nworn out thy pump, that when the single sole of it\nis worn, the jest may remain after the wearing sole singular.\nROMEO\nO single-soled jest, solely singular for the\nsingleness.\nMERCUTIO\nCome between us, good Benvolio; my wits faint.\nROMEO\nSwitch and spurs, switch and spurs; or I'll cry a match.\nMERCUTIO\nNay, if thy wits run the wild-goose chase, I have\ndone, for thou hast more of the wild-goose in one of\nthy wits than, I am sure, I have in my whole five:\nwas I with you there for the goose?\nROMEO\nThou wast never with me for any thing when thou wast\nnot there for the goose.\nMERCUTIO\nI will bite thee by the ear for that jest.\nROMEO\nNay, good goose, bite not.\nMERCUTIO\nThy wit is a very bitter sweeting; it is a most\nsharp sauce.\nROMEO\nAnd is it not well served in to a sweet goose?\nMERCUTIO\nO here's a wit of cheveril, that stretches from an\ninch narrow to an ell broad!\nROMEO\nI stretch it out for that word 'broad;' which added\nto the goose, proves thee far and wide a broad goose.\nMERCUTIO\nWhy, is not this better now than groaning for love?\nnow art thou sociable, now art thou Romeo; now art\nthou what thou art, by art as well as by nature:\nfor this drivelling love is like a great natural,\nthat runs lolling up and down to hide his bauble in a hole.\nBENVOLIO\nStop there, stop there.\nMERCUTIO\nThou desirest me to stop in my tale against the hair.\nBENVOLIO\nThou wouldst else have made thy tale large.\nMERCUTIO\nO, thou art deceived; I would have made it short:\nfor I was come to the whole depth of my tale; and\nmeant, indeed, to occupy the argument no longer.\nROMEO\nHere's goodly gear!\nEnter Nurse and PETER\n\nMERCUTIO\nA sail, a sail!\nBENVOLIO\nTwo, two; a shirt and a smock.\nNurse\nPeter!\nPETER\nAnon!\nNurse\nMy fan, Peter.\nMERCUTIO\nGood Peter, to hide her face; for her fan's the\nfairer face.\nNurse\nGod ye good morrow, gentlemen.\nMERCUTIO\nGod ye good den, fair gentlewoman.\nNurse\nIs it good den?\nMERCUTIO\n'Tis no less, I tell you, for the bawdy hand of the\ndial is now upon the prick of noon.\nNurse\nOut upon you! what a man are you!\nROMEO\nOne, gentlewoman, that God hath made for himself to\nmar.\nNurse\nBy my troth, it is well said; 'for himself to mar,'\nquoth a'? Gentlemen, can any of you tell me where I\nmay find the young Romeo?\nROMEO\nI can tell you; but young Romeo will be older when\nyou have found him than he was when you sought him:\nI am the youngest of that name, for fault of a worse.\nNurse\nYou say well.\nMERCUTIO\nYea, is the worst well? very well took, i' faith;\nwisely, wisely.\nNurse\nif you be he, sir, I desire some confidence with\nyou.\nBENVOLIO\nShe will indite him to some supper.\nMERCUTIO\nA bawd, a bawd, a bawd! so ho!\nROMEO\nWhat hast thou found?\nMERCUTIO\nNo hare, sir; unless a hare, sir, in a lenten pie,\nthat is something stale and hoar ere it be spent.\nSings\n\nAn old hare hoar,\nAnd an old hare hoar,\nIs very good meat in lent\nBut a hare that is hoar\nIs too much for a score,\nWhen it hoars ere it be spent.\nRomeo, will you come to your father's? we'll\nto dinner, thither.\nROMEO\nI will follow you.\nMERCUTIO\nFarewell, ancient lady; farewell,\nSinging\n\n'lady, lady, lady.'\nExeunt MERCUTIO and BENVOLIO\n\nNurse\nMarry, farewell! I pray you, sir, what saucy\nmerchant was this, that was so full of his ropery?\nROMEO\nA gentleman, nurse, that loves to hear himself talk,\nand will speak more in a minute than he will stand\nto in a month.\nNurse\nAn a' speak any thing against me, I'll take him\ndown, an a' were lustier than he is, and twenty such\nJacks; and if I cannot, I'll find those that shall.\nScurvy knave! I am none of his flirt-gills; I am\nnone of his skains-mates. And thou must stand by\ntoo, and suffer every knave to use me at his pleasure?\nPETER\nI saw no man use you a pleasure; if I had, my weapon\nshould quickly have been out, I warrant you: I dare\ndraw as soon as another man, if I see occasion in a\ngood quarrel, and the law on my side.\nNurse\nNow, afore God, I am so vexed, that every part about\nme quivers. Scurvy knave! Pray you, sir, a word:\nand as I told you, my young lady bade me inquire you\nout; what she bade me say, I will keep to myself:\nbut first let me tell ye, if ye should lead her into\na fool's paradise, as they say, it were a very gross\nkind of behavior, as they say: for the gentlewoman\nis young; and, therefore, if you should deal double\nwith her, truly it were an ill thing to be offered\nto any gentlewoman, and very weak dealing.\nROMEO\nNurse, commend me to thy lady and mistress. I\nprotest unto thee--\nNurse\nGood heart, and, i' faith, I will tell her as much:\nLord, Lord, she will be a joyful woman.\nROMEO\nWhat wilt thou tell her, nurse? thou dost not mark me.\nNurse\nI will tell her, sir, that you do protest; which, as\nI take it, is a gentlemanlike offer.\nROMEO\nBid her devise\nSome means to come to shrift this afternoon;\nAnd there she shall at Friar Laurence' cell\nBe shrived and married. Here is for thy pains.\nNurse\nNo truly sir; not a penny.\nROMEO\nGo to; I say you shall.\nNurse\nThis afternoon, sir? well, she shall be there.\nROMEO\nAnd stay, good nurse, behind the abbey wall:\nWithin this hour my man shall be with thee\nAnd bring thee cords made like a tackled stair;\nWhich to the high top-gallant of my joy\nMust be my convoy in the secret night.\nFarewell; be trusty, and I'll quit thy pains:\nFarewell; commend me to thy mistress.\nNurse\nNow God in heaven bless thee! Hark you, sir.\nROMEO\nWhat say'st thou, my dear nurse?\nNurse\nIs your man secret? Did you ne'er hear say,\nTwo may keep counsel, putting one away?\nROMEO\nI warrant thee, my man's as true as steel.\nNURSE\nWell, sir; my mistress is the sweetest lady--Lord,\nLord! when 'twas a little prating thing:--O, there\nis a nobleman in town, one Paris, that would fain\nlay knife aboard; but she, good soul, had as lief\nsee a toad, a very toad, as see him. I anger her\nsometimes and tell her that Paris is the properer\nman; but, I'll warrant you, when I say so, she looks\nas pale as any clout in the versal world. Doth not\nrosemary and Romeo begin both with a letter?\nROMEO\nAy, nurse; what of that? both with an R.\nNurse\nAh. mocker! that's the dog's name; R is for\nthe--No; I know it begins with some other\nletter:--and she hath the prettiest sententious of\nit, of you and rosemary, that it would do you good\nto hear it.\nROMEO\nCommend me to thy lady.\nNurse\nAy, a thousand times.\nExit Romeo\n\nPeter!\nPETER\nAnon!\nNurse\nPeter, take my fan, and go before and apace.\nExeunt\n\nSCENE V. Capulet's orchard.\n\nEnter JULIET\nJULIET\nThe clock struck nine when I did send the nurse;\nIn half an hour she promised to return.\nPerchance she cannot meet him: that's not so.\nO, she is lame! love's heralds should be thoughts,\nWhich ten times faster glide than the sun's beams,\nDriving back shadows over louring hills:\nTherefore do nimble-pinion'd doves draw love,\nAnd therefore hath the wind-swift Cupid wings.\nNow is the sun upon the highmost hill\nOf this day's journey, and from nine till twelve\nIs three long hours, yet she is not come.\nHad she affections and warm youthful blood,\nShe would be as swift in motion as a ball;\nMy words would bandy her to my sweet love,\nAnd his to me:\nBut old folks, many feign as they were dead;\nUnwieldy, slow, heavy and pale as lead.\nO God, she comes!\nEnter Nurse and PETER\n\nO honey nurse, what news?\nHast thou met with him? Send thy man away.\nNurse\nPeter, stay at the gate.\nExit PETER\n\nJULIET\nNow, good sweet nurse,--O Lord, why look'st thou sad?\nThough news be sad, yet tell them merrily;\nIf good, thou shamest the music of sweet news\nBy playing it to me with so sour a face.\nNurse\nI am a-weary, give me leave awhile:\nFie, how my bones ache! what a jaunt have I had!\nJULIET\nI would thou hadst my bones, and I thy news:\nNay, come, I pray thee, speak; good, good nurse, speak.\nNurse\nJesu, what haste? can you not stay awhile?\nDo you not see that I am out of breath?\nJULIET\nHow art thou out of breath, when thou hast breath\nTo say to me that thou art out of breath?\nThe excuse that thou dost make in this delay\nIs longer than the tale thou dost excuse.\nIs thy news good, or bad? answer to that;\nSay either, and I'll stay the circumstance:\nLet me be satisfied, is't good or bad?\nNurse\nWell, you have made a simple choice; you know not\nhow to choose a man: Romeo! no, not he; though his\nface be better than any man's, yet his leg excels\nall men's; and for a hand, and a foot, and a body,\nthough they be not to be talked on, yet they are\npast compare: he is not the flower of courtesy,\nbut, I'll warrant him, as gentle as a lamb. Go thy\nways, wench; serve God. What, have you dined at home?\nJULIET\nNo, no: but all this did I know before.\nWhat says he of our marriage? what of that?\nNurse\nLord, how my head aches! what a head have I!\nIt beats as it would fall in twenty pieces.\nMy back o' t' other side,--O, my back, my back!\nBeshrew your heart for sending me about,\nTo catch my death with jaunting up and down!\nJULIET\nI' faith, I am sorry that thou art not well.\nSweet, sweet, sweet nurse, tell me, what says my love?\nNurse\nYour love says, like an honest gentleman, and a\ncourteous, and a kind, and a handsome, and, I\nwarrant, a virtuous,--Where is your mother?\nJULIET\nWhere is my mother! why, she is within;\nWhere should she be? How oddly thou repliest!\n'Your love says, like an honest gentleman,\nWhere is your mother?'\nNurse\nO God's lady dear!\nAre you so hot? marry, come up, I trow;\nIs this the poultice for my aching bones?\nHenceforward do your messages yourself.\nJULIET\nHere's such a coil! come, what says Romeo?\nNurse\nHave you got leave to go to shrift to-day?\nJULIET\nI have.\nNurse\nThen hie you hence to Friar Laurence' cell;\nThere stays a husband to make you a wife:\nNow comes the wanton blood up in your cheeks,\nThey'll be in scarlet straight at any news.\nHie you to church; I must another way,\nTo fetch a ladder, by the which your love\nMust climb a bird's nest soon when it is dark:\nI am the drudge and toil in your delight,\nBut you shall bear the burden soon at night.\nGo; I'll to dinner: hie you to the cell.\nJULIET\nHie to high fortune! Honest nurse, farewell.\nExeunt\n\nSCENE VI. Friar Laurence's cell.\n\nEnter FRIAR LAURENCE and ROMEO\nFRIAR LAURENCE\nSo smile the heavens upon this holy act,\nThat after hours with sorrow chide us not!\nROMEO\nAmen, amen! but come what sorrow can,\nIt cannot countervail the exchange of joy\nThat one short minute gives me in her sight:\nDo thou but close our hands with holy words,\nThen love-devouring death do what he dare;\nIt is enough I may but call her mine.\nFRIAR LAURENCE\nThese violent delights have violent ends\nAnd in their triumph die, like fire and powder,\nWhich as they kiss consume: the sweetest honey\nIs loathsome in his own deliciousness\nAnd in the taste confounds the appetite:\nTherefore love moderately; long love doth so;\nToo swift arrives as tardy as too slow.\nEnter JULIET\n\nHere comes the lady: O, so light a foot\nWill ne'er wear out the everlasting flint:\nA lover may bestride the gossamer\nThat idles in the wanton summer air,\nAnd yet not fall; so light is vanity.\nJULIET\nGood even to my ghostly confessor.\nFRIAR LAURENCE\nRomeo shall thank thee, daughter, for us both.\nJULIET\nAs much to him, else is his thanks too much.\nROMEO\nAh, Juliet, if the measure of thy joy\nBe heap'd like mine and that thy skill be more\nTo blazon it, then sweeten with thy breath\nThis neighbour air, and let rich music's tongue\nUnfold the imagined happiness that both\nReceive in either by this dear encounter.\nJULIET\nConceit, more rich in matter than in words,\nBrags of his substance, not of ornament:\nThey are but beggars that can count their worth;\nBut my true love is grown to such excess\nI cannot sum up sum of half my wealth.\nFRIAR LAURENCE\nCome, come with me, and we will make short work;\nFor, by your leaves, you shall not stay alone\nTill holy church incorporate two in one.\nExeunt\n\nACT III\n\nSCENE I. A public place.\n\nEnter MERCUTIO, BENVOLIO, Page, and Servants\nBENVOLIO\nI pray thee, good Mercutio, let's retire:\nThe day is hot, the Capulets abroad,\nAnd, if we meet, we shall not scape a b",
+ "link": "https://taliwutblog.wordpress.com/2014/01/02/romeo/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/02/romeo/",
+ "post_status": "publish",
+ "postid": "261",
+ "title": "Romeo",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "romeo"
+ },
+ {
+ "categories": [
+ "bitcoin"
+ ],
+ "custom_fields": [
+ {
+ "id": "1104",
+ "key": "jabber_published",
+ "value": "1388660489"
+ }
+ ],
+ "dateCreated": "Jan 2, 2014 11:01:28 AM",
+ "date_created_gmt": "Jan 2, 2014 11:01:28 AM",
+ "date_modified": "Jan 2, 2014 11:01:28 AM",
+ "date_modified_gmt": "Jan 2, 2014 11:01:28 AM",
+ "description": "oh yeah #bitcoin !",
+ "link": "https://taliwutblog.wordpress.com/2014/01/02/bitcoin/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "bitcoin",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2014/01/02/bitcoin/",
+ "post_status": "publish",
+ "postid": "259",
+ "title": "Bitcoin",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "bitcoin"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1098",
+ "key": "geo_latitude",
+ "value": "48.8428791"
+ },
+ {
+ "id": "1099",
+ "key": "geo_longitude",
+ "value": "2.3055229"
+ },
+ {
+ "id": "1100",
+ "key": "geo_public",
+ "value": "1"
+ }
+ ],
+ "dateCreated": "Dec 27, 2013 10:56:33 AM",
+ "date_created_gmt": "Dec 27, 2013 10:56:33 AM",
+ "date_modified": "Dec 27, 2013 10:57:19 AM",
+ "date_modified_gmt": "Dec 27, 2013 10:57:19 AM",
+ "description": "Gghh",
+ "link": "https://taliwutblog.wordpress.com/2013/12/27/gghh/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "hhyhg, jjhb",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2013/12/27/gghh/",
+ "post_status": "private",
+ "postid": "256",
+ "title": "Gghh",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "standard",
+ "wp_post_thumbnail": "",
+ "wp_slug": "gghh"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1088",
+ "key": "geo_latitude",
+ "value": "48.8429192"
+ },
+ {
+ "id": "1089",
+ "key": "geo_longitude",
+ "value": "2.3055496"
+ },
+ {
+ "id": "1090",
+ "key": "geo_public",
+ "value": "1"
+ },
+ {
+ "id": "1092",
+ "key": "jabber_published",
+ "value": "1388141763"
+ }
+ ],
+ "dateCreated": "Dec 27, 2013 10:56:02 AM",
+ "date_created_gmt": "Dec 27, 2013 10:56:02 AM",
+ "date_modified": "Dec 27, 2013 10:56:03 AM",
+ "date_modified_gmt": "Dec 27, 2013 10:56:03 AM",
+ "description": "<a href=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg\"><img title=\"wp-1388141726961\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg\" /></a>",
+ "link": "https://taliwutblog.wordpress.com/2013/12/27/254/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2013/12/27/254/",
+ "post_status": "publish",
+ "postid": "254",
+ "title": "",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "image",
+ "wp_post_thumbnail": "",
+ "wp_slug": "254"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1027",
+ "key": "jabber_published",
+ "value": "1387524751"
+ }
+ ],
+ "dateCreated": "Dec 20, 2013 7:32:31 AM",
+ "date_created_gmt": "Dec 20, 2013 7:32:31 AM",
+ "date_modified": "Dec 26, 2013 2:52:12 PM",
+ "date_modified_gmt": "Dec 26, 2013 2:52:12 PM",
+ "description": "<a href=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1387524739322.gif\"><img title=\"wp-1387524739322\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1387524739322.gif\" /></a>",
+ "link": "https://taliwutblog.wordpress.com/2013/12/20/pony-2/",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/2013/12/20/pony-2/",
+ "post_status": "private",
+ "postid": "234",
+ "title": "Pony",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "image",
+ "wp_post_thumbnail": "",
+ "wp_slug": "pony-2"
+ },
+ {
+ "categories": [
+ "Uncategorized"
+ ],
+ "custom_fields": [
+ {
+ "id": "1016",
+ "key": "jabber_published",
+ "value": "1387524660"
+ }
+ ],
+ "dateCreated": "Dec 20, 2013 7:31:00 AM",
+ "date_created_gmt": "Dec 20, 2013 7:31:00 AM",
+ "date_modified": "Dec 26, 2013 2:52:57 PM",
+ "date_modified_gmt": "Dec 26, 2013 2:52:57 PM",
+ "description": "<a href=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-9117-animated_gif-derpy_hooves-mailbox-my_little_pony_friendship_is_magic-tagme.gif\"><img title=\"9117 - animated_gif derpy_hooves mailbox my_little_pony_friendship_is_magic tagme.gif\" class=\"alignnone size-full\" alt=\"image\" src=\"http://taliwutblog.files.wordpress.com/2013/12/wpid-9117-animated_gif-derpy_hooves-mailbox-my_little_pony_friendship_is_magic-tagme.gif\" /></a>",
+ "link": "https://taliwutblog.wordpress.com/?p=230",
+ "mt_allow_comments": 1,
+ "mt_allow_pings": 1,
+ "mt_excerpt": "",
+ "mt_keywords": "",
+ "mt_text_more": "",
+ "permaLink": "https://taliwutblog.wordpress.com/?p=230",
+ "post_status": "pending",
+ "postid": "230",
+ "title": "Gif test",
+ "userid": "55434822",
+ "wp_author_display_name": "taliwutt",
+ "wp_author_id": "55434822",
+ "wp_more_text": "",
+ "wp_password": "",
+ "wp_post_format": "image",
+ "wp_post_thumbnail": "",
+ "wp_slug": "gif-test"
+ }
+]
diff --git a/WordPress/src/androidTest/assets/default-metaWeblog.getRecentPosts.xml b/WordPress/src/androidTest/assets/default-metaWeblog.getRecentPosts.xml
new file mode 100644
index 000000000..e938c964b
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-metaWeblog.getRecentPosts.xml
@@ -0,0 +1,4203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140211T16:04:00</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>306</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>enft</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/11/enft/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/11/enft/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>enft</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140211T16:04:00</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1411</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1392048234</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140210T16:04:31</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140210T16:04:31</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140211T11:30:35</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>333</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>&lt;a href=&quot;//&quot;&gt;test 1&lt;/a&gt; &lt;a href=&quot;//login&quot;&gt;Test 2&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Fun with URLs</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/11/fun-with-urls/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/11/fun-with-urls/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>fun-with-urls</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140211T11:30:35</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1425</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1392118236</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140211T11:30:36</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140211T11:30:36</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140210T16:40:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>331</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>hb</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wftfwtfw</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/10/wftfwtfw/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/10/wftfwtfw/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>wftfwtfw</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140210T16:40:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1418</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1392050448</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140210T16:40:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140210T16:40:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140205T13:19:44</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>330</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>jey*</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>#BookReview Bridget Jones: Mad About the Boy</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/05/bookreview-bridget-jones-mad-about-the-boy-4/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/05/bookreview-bridget-jones-mad-about-the-boy-4/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>bookreview-bridget-jones-mad-about-the-boy-4</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140205T13:19:44</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1406</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>blog_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>57991476</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1407</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>is_reblog</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1400</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391606386</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1405</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>post_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>302</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140205T13:19:44</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140205T13:19:44</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140205T13:19:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>329</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>e*</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>#BookReview Bridget Jones: Mad About the Boy</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/05/bookreview-bridget-jones-mad-about-the-boy-3/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/05/bookreview-bridget-jones-mad-about-the-boy-3/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>bookreview-bridget-jones-mad-about-the-boy-3</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140205T13:19:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1397</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>blog_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>57991476</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1398</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>is_reblog</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1391</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391606379</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1396</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>post_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>302</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140205T13:19:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140205T13:19:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140205T12:42:13</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>327</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>&lt;a href=&quot;http://www.youtube.com/watch?v=GP7aP67qQjQ&quot;&gt;http://www.youtube.com/watch?v=GP7aP67qQjQ&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Watch &quot;NORMAN - LUIGI CLASH MARIO&quot; on YouTube</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/05/watch-norman-luigi-clash-mario-on-youtube/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/05/watch-norman-luigi-clash-mario-on-youtube/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>watch-norman-luigi-clash-mario-on-youtube</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140205T12:42:13</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1384</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391604135</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140205T12:42:14</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140205T12:42:14</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140205T07:14:33</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>325</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>[youtube https://www.youtube.com/watch?v=belUlgnhu9M&amp;w=560&amp;h=315]</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Test YouTube</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/05/test-youtube/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/05/test-youtube/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>test-youtube</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140205T07:14:33</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1377</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391584474</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140205T07:14:34</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140205T07:14:34</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140203T17:32:45</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>324</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Your Keyboard &amp;amp; You. I'll Stick With Colemak</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/your-keyboard-you-ill-stick-with-colemak-2/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/your-keyboard-you-ill-stick-with-colemak-2/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>your-keyboard-you-ill-stick-with-colemak-2</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T17:32:45</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1372</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>blog_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>56042455</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1373</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>is_reblog</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1366</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391448767</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1371</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>post_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>631</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140203T17:32:45</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T17:32:45</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140203T17:32:36</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>323</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Your Keyboard &amp;amp; You. I'll Stick With Colemak</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/your-keyboard-you-ill-stick-with-colemak/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/your-keyboard-you-ill-stick-with-colemak/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>your-keyboard-you-ill-stick-with-colemak</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T17:32:36</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1363</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>blog_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>56042455</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1364</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>is_reblog</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1357</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391448758</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1362</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>post_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>631</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140203T17:32:36</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T17:32:36</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140203T12:37:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>321</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>&lt;a href=&quot;http://impactjs.com/forums/games/real-time-chess&quot;&gt;http://impactjs.com/forums/games/real-time-chess&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Forget about turns, this is real time chess. It's hectic, chaotic and short. The winner is the guy who is able to process everything and cope under stress. Welcome to the new chess experience</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/forget-about-turns-this-is-real-time-chess-its-hectic-chaotic-and-short-the-winner-is-the-guy-who-is-able-to-process-everything-and-cope-under-stress-welcome-to-the-new-chess-experience/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/forget-about-turns-this-is-real-time-chess-its-hectic-chaotic-and-short-the-winner-is-the-guy-who-is-able-to-process-everything-and-cope-under-stress-welcome-to-the-new-chess-experience/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>forget-about-turns-this-is-real-time-chess-its-hectic-chaotic-and-short-the-winner-is-the-guy-who-is-able-to-process-everything-and-cope-under-stress-welcome-to-the-new-chess-experience</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T12:37:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1350</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391431048</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140203T12:37:27</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T12:37:27</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140203T11:51:11</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>319</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>&lt;a href=&quot;http://taliwutblog.files.wordpress.com/2014/02/wpid-urbanherovantbarreeltje.jpg&quot;&gt;&lt;img title=&quot;Urbanherovantbarreeltje.JPG&quot; class=&quot;alignnone size-full&quot; alt=&quot;image&quot; src=&quot;http://taliwutblog.files.wordpress.com/2014/02/wpid-urbanherovantbarreeltje.jpg&quot; /&gt;&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Another Pony</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/another-pony/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/another-pony/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>another-pony</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T11:51:11</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1342</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391428272</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>image</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140203T11:51:11</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T11:51:11</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140203T10:20:28</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>316</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>&lt;a href=&quot;http://taliwutblog.files.wordpress.com/2014/02/wpid-pony1.jpg&quot;&gt;&lt;img title=&quot;pony.jpg&quot; class=&quot;alignnone size-full&quot; alt=&quot;image&quot; src=&quot;http://taliwutblog.files.wordpress.com/2014/02/wpid-pony1.jpg&quot; /&gt;&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Cute pony</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/cute-pony-2/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/cute-pony-2/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>cute-pony-2</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T10:20:28</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1333</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391422828</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>image</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140203T10:20:28</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T10:20:28</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140203T09:49:15</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>313</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>&lt;a href=&quot;http://taliwutblog.files.wordpress.com/2014/02/wpid-pony.jpg&quot;&gt;&lt;img title=&quot;pony.jpg&quot; class=&quot;alignnone size-full&quot; alt=&quot;image&quot; src=&quot;http://taliwutblog.files.wordpress.com/2014/02/wpid-pony.jpg&quot; /&gt;&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Cute pony</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/cute-pony/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/cute-pony/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>cute-pony</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T09:49:15</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1324</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391420956</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>image</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140203T09:49:16</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T09:49:16</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140130T19:02:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>50540106</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>303</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>The New iOS and Android Apps Have Arrived!</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/30/the-new-ios-and-android-apps-have-arrived/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/30/the-new-ios-and-android-apps-have-arrived/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>the-new-ios-and-android-apps-have-arrived</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>50540106</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>Maxime</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140130T19:02:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1290</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>blog_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>3584907</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1291</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>is_reblog</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1286</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391108569</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1289</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>post_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>23682</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1297</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>reblog_snapshot</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>O:8:&quot;stdClass&quot;:8:{s:5:&quot;title&quot;;s:42:&quot;The New iOS and Android Apps Have Arrived!&quot;;s:4:&quot;type&quot;;s:4:&quot;post&quot;;s:9:&quot;mime_type&quot;;s:0:&quot;&quot;;s:6:&quot;format&quot;;b:0;s:12:&quot;modified_gmt&quot;;s:19:&quot;2014-01-30 18:59:14&quot;;s:9:&quot;permalink&quot;;s:60:&quot;http://en.blog.wordpress.com/2014/01/30/updated-ios-android/&quot;;s:7:&quot;content&quot;;s:3728:&quot;&lt;div class=&quot;reblogged-content&quot;&gt;More and more of us are blogging from our mobile devices. Today, we’re thrilled to announce new versions of the WordPress mobile apps for Android and iOS. Here are some of the new versions' highlights. &lt;img class=&quot;aligncenter size-full wp-image-23687&quot; alt=&quot;android26-ios39-promo&quot; src=&quot;http://taliwutblog.files.wordpress.com/2014/01/android26-ios39-promo.png&quot; width=&quot;635&quot; height=&quot;423&quot; data-originalSrc=&quot;http://en.blog.files.wordpress.com/2014/01/android26-ios39-promo.png&quot; data-rehosted=&quot;1&quot;&gt;&lt;h3&gt;WordPress for iOS 3.9&lt;/h3&gt;
+ The latest WordPress for iOS update is one of our largest app releases to date. This update is remarkable both for the significant changes we've introduced, and for the level of dedication it received from our hard-working team members. Version 3.9 includes a major visual redesign of the app. We decided to drop the sidebar navigation and embrace a tab bar-based layout. The app's new design allowed us to add numerous visual improvements throughout, including revamped and enhanced Reader, Comments, and Notifications sections. We also created a seamless inline commenting experience to make it easier for you to engage with the content you love. Finally, we made visual improvements to the editing experience of posts and pages.
+ Our team has embraced the latest and greatest technologies that Apple has provided us with iOS 7 to deliver you the best app possible. Version 3.9 and future updates will require iOS 7. The app also includes several other changes. On top of various bug fixes and performance improvements, it now supports deep-linking from Twitter, and features an improved login screen. Be sure to try it out: &lt;a href=&quot;https://itunes.apple.com/us/app/wordpress/id335703880?mt=8&quot;&gt;Download from the App Store&lt;/a&gt; &lt;h3&gt;WordPress for Android 2.6&lt;/h3&gt;
+ The latest update to WordPress for Android includes a new reading and setup experience, as well as significant updates to the user interface. The app Reader has been completely redesigned, and now provides a much-improved, native reading experience. You'll definitely notice its speed -- posts appear in a snap, and images fade in as they load. You can also view users that have commented or liked posts, as well as edit the list of tags that you follow. We've revamped the like, reblog, and comment interfaces to make it easier than ever to respond to posts that strike your fancy.
+ When signing in to the app or creating an account on WordPress.com, you’ll notice a brand new user interface that makes it super-simple to start blogging. If you keep multiple blogs on your account, they will all be automatically added for you. You can also hide whichever blogs you don't wish to work on in the app. We've given the app a facelift, including a new color scheme, a refined navigation drawer layout, and sharp-looking lists in notifications, posts, pages and comments.
+ You’ll also notice some changes to the post editor, with larger images and a new Post Settings area where you'll manage post data such as status, post formats, and categories, among others. The post content area will now go full screen while you are editing, to give you maximum space to focus on your content. Give the app a try here: &lt;a href=&quot;https://play.google.com/store/apps/details?id=org.wordpress.android&quot;&gt;Download from Google Play&lt;/a&gt; &lt;h3&gt;What’s next?&lt;/h3&gt;
+ The mobile team isn’t stopping here! We have big plans for the months to come and for the rest of 2014. You can keep up with the development progress over at http://make.wordpress.org/mobile. You can also follow the apps on twitter &lt;a href=&quot;http://twitter.com/wpandroid&quot;&gt;@WPAndroid&lt;/a&gt; and &lt;a href=&quot;http://twitter.com/wordpressios&quot;&gt;@WordPressiOS&lt;/a&gt;.&lt;/div&gt;&quot;;s:15:&quot;images_mirrored&quot;;i:1;}</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140130T19:02:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140130T19:02:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string>304</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140130T10:00:00</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>308</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>&lt;strong&gt;wft&lt;/strong&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>art</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/30/art/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/30/art/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>art</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140130T10:00:00</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1304</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1391162423</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140131T10:01:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140131T10:01:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140128T10:01:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>302</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>ib/Tqg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>#BookReview Bridget Jones: Mad About the Boy</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/28/bookreview-bridget-jones-mad-about-the-boy-2/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/28/bookreview-bridget-jones-mad-about-the-boy-2/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>bookreview-bridget-jones-mad-about-the-boy-2</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140128T10:01:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1282</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>blog_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>31639867</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1283</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>is_reblog</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1276</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1390903288</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1281</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>post_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>7493</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140128T10:01:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140128T10:01:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140122T13:03:47</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>299</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>[caption id=&quot;&quot; align=&quot;alignnone&quot; width=&quot;2000&quot; caption=&quot;Mop&quot;]&lt;a href=&quot;https://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg&quot;&gt;&lt;img title=&quot;wpid-wp-1388141726961.jpeg&quot; class=&quot;alignnone size-full&quot; alt=&quot;image&quot; src=&quot;https://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg?w=2000&quot; /&gt;&lt;/a&gt;[/caption]</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/22/cat-2/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/22/cat-2/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>cat-2</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T13:03:47</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1250</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1390395828</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140122T13:03:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T13:03:48</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140122T12:59:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>297</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;biw=384&amp;amp;bih=640&amp;amp;tbm=isch&amp;amp;sa=1&amp;amp;ei=RbLKUv-lHYem0wW8oYHABA&amp;amp;q=hd+wallpaper+photo&amp;amp;oq=hd+wallpaper+photo&amp;amp;gs_l=mobile-gws-serp.3..0l4j0i5.4612.5034.0.5279.4.4.0.0.0.0.203.203.2-1.1.0....0...1c.1.32.mobile-gws-serp..3.1.203.63ZBZ9KeMPs#biv=i%7C10%3Bd%7Cfmk-ugJVQIMDBM%3A&quot;&gt;http://www.google.com/search?hl=en&amp;amp;biw=384&amp;amp;bih=640&amp;amp;tbm=isch&amp;amp;sa=1&amp;amp;ei=RbLKUv-lHYem0wW8oYHABA&amp;amp;q=hd+wallpaper+photo&amp;amp;oq=hd+wallpaper+photo&amp;amp;gs_l=mobile-gws-serp.3..0l4j0i5.4612.5034.0.5279.4.4.0.0.0.0.203.203.2-1.1.0....0...1c.1.32.mobile-gws-serp..3.1.203.63ZBZ9KeMPs#biv=i%7C10%3Bd%7Cfmk-ugJVQIMDBM%3A&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>hd wallpaper photo - Google Search</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/22/hd-wallpaper-photo-google-search/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/22/hd-wallpaper-photo-google-search/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>hd-wallpaper-photo-google-search</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T12:59:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1244</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1390395578</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140122T12:59:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T12:59:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140122T12:36:20</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>296</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>Hai</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>The End of Unrecorded Life</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>the-end-of-unrecorded-life</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T12:36:20</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1241</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>blog_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>55267051</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1242</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>is_reblog</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1235</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1390394182</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1240</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>post_id</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>642</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140122T12:36:20</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T12:36:20</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140122T10:32:40</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>292</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string>&lt;a href=&quot;http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386748907.jpg&quot;&gt;&lt;img title=&quot;wp-1390386748907.jpg&quot; class=&quot;alignnone size-full&quot; alt=&quot;image&quot; src=&quot;http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386748907.jpg&quot; /&gt;&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>Geny!</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/22/geny/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/22/geny/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>geny</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T10:32:40</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1228</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1390386762</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>image</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140131T09:59:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140131T09:59:38</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-clicks.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-clicks.json
new file mode 100644
index 000000000..9f1ebb72c
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-clicks.json
@@ -0,0 +1,26 @@
+{
+ "date": "2014-11-03",
+ "days": {
+ "2014-11-03": {
+ "clicks": [
+ {
+ "icon": null,
+ "url": "http://astralbodies.net/blog/2013/10/31/paying-attention-at-automattic/",
+ "name": "astralbodies.net/blog/2013/10/31/paying-attention-at-automattic/",
+ "views": 1,
+ "children": null
+ },
+ {
+ "icon": null,
+ "url": "https://devforums.apple.com/thread/86137",
+ "name": "devforums.apple.com/thread/86137",
+ "views": 1,
+ "children": null
+ }
+ ],
+ "other_clicks": 0,
+ "total_clicks": 2
+ }
+ },
+ "period": "day"
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-comments.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-comments.json
new file mode 100644
index 000000000..93f4abf79
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-comments.json
@@ -0,0 +1,160 @@
+{
+ "date": "2014-12-16",
+ "authors": [
+ {
+ "name": "Aaron Douglas",
+ "link": "?user_id=67137",
+ "gravatar": "https://1.gravatar.com/avatar/db127a496309f2717657d6f6167abd49?s=64&amp;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=R",
+ "comments": "20",
+ "follow_data": false
+ },
+ {
+ "name": "Joe R.",
+ "link": "?s=joe@modmobile.net",
+ "gravatar": "https://1.gravatar.com/avatar/a56c4eaf07d062dd9f13f94956d87620?s=64&amp;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=R",
+ "comments": "3",
+ "follow_data": null
+ },
+ {
+ "name": "Murray Sagal",
+ "link": "?s=murraysagal@gmail.com",
+ "gravatar": "https://1.gravatar.com/avatar/480b5bd2a5c318e277c20e434072a7c0?s=64&amp;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=R",
+ "comments": "3",
+ "follow_data": null
+ },
+ {
+ "name": "Dan",
+ "link": "?user_id=5073742",
+ "gravatar": "https://2.gravatar.com/avatar/ed3eefbe2cdb55d5fa0ed5da44c9608a?s=64&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=R",
+ "comments": "3",
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_comments",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "danroundhill.wordpress.com",
+ "blog_url": "http://danroundhill.wordpress.com",
+ "blog_id": 4836651,
+ "site_id": 4836651,
+ "blog_title": "Around the Hill",
+ "is_following": true
+ },
+ "type": "follow"
+ }
+ },
+ {
+ "name": "Charles Araujo",
+ "link": "?s=charlesaaraujo@gmail.com",
+ "gravatar": "https://0.gravatar.com/avatar/0f410f110603f11a20746f19d9fee68c?s=64&amp;d=https%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=R",
+ "comments": "2",
+ "follow_data": null
+ },
+ {
+ "name": "Stephane Daury",
+ "link": "?user_id=1494209",
+ "gravatar": "https://2.gravatar.com/avatar/5b8d74a711e183850bd70ccdd440d15e?s=64&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=R",
+ "comments": "2",
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_comments",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "stephdau.wordpress.com",
+ "blog_url": "http://stephdau.wordpress.com",
+ "blog_id": 1618138,
+ "site_id": 1618138,
+ "blog_title": "tekArtist",
+ "is_following": false
+ },
+ "type": "follow"
+ }
+ },
+ {
+ "name": "pacoverde",
+ "link": "?user_id=16593546",
+ "gravatar": "https://2.gravatar.com/avatar/54fe301056974f51b236ed64521fbb1e?s=64&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=R",
+ "comments": "2",
+ "follow_data": false
+ }
+ ],
+ "posts": [
+ {
+ "name": "Mac Screen Sharing (VNC) & White Screen",
+ "link": "http://astralbodi.es/2010/05/02/mac-screen-sharing-vnc-white-screen/",
+ "id": "67",
+ "comments": "29"
+ },
+ {
+ "name": "Paying Attention at Automattic",
+ "link": "http://astralbodi.es/2013/10/31/paying-attention-at-automattic/",
+ "id": "267",
+ "comments": "17"
+ },
+ {
+ "name": "Xcode 4 - Problem submitting App with Static Library",
+ "link": "http://astralbodi.es/2011/03/27/xcode-4-problem-submitting-app-with-static-library/",
+ "id": "130",
+ "comments": "11"
+ },
+ {
+ "name": "Installing MySQL 5.5.8 on Mac OS X Snow Leopard",
+ "link": "http://astralbodi.es/2010/12/21/installing-mysql-5-5-8-on-mac-os-x-snow-leopard/",
+ "id": "74",
+ "comments": "11"
+ },
+ {
+ "name": "Fix ScanSnap on Mac not opening Evernote properly",
+ "link": "http://astralbodi.es/2013/12/27/scansnap-on-mac-not-opening-evernote-properly/",
+ "id": "297",
+ "comments": "10"
+ },
+ {
+ "name": "iOS Basics - UINavigation Controller & Back Button Text",
+ "link": "http://astralbodi.es/2011/03/20/ios-basics-uinavigation-controller-back-button-text/",
+ "id": "120",
+ "comments": "9"
+ },
+ {
+ "name": "Adium always presenting Apple Quarantine Message",
+ "link": "http://astralbodi.es/2012/01/01/adium-always-presenting-apple-quarantine-message/",
+ "id": "173",
+ "comments": "6"
+ },
+ {
+ "name": "Resizing a UITextView automatically with the keyboard",
+ "link": "http://astralbodi.es/2012/02/01/resizing-a-uitextview-automatically-with-the-keyboard/",
+ "id": "200",
+ "comments": "5"
+ },
+ {
+ "name": "Xcode SCM & build directory",
+ "link": "http://astralbodi.es/2009/08/03/xcode-scm-build-directory/",
+ "id": "43",
+ "comments": "5"
+ },
+ {
+ "name": "Loading a UIImage from a bundle",
+ "link": "http://astralbodi.es/2009/06/03/loading-a-uiimage-from-a-bundle/",
+ "id": "33",
+ "comments": "5"
+ },
+ {
+ "name": "Mac OS X 10.9 Mavericks Calendar + Google Sync Problems",
+ "link": "http://astralbodi.es/2014/06/05/mac-os-x-10-9-mavericks-calendar-google-sync-problems/",
+ "id": "725",
+ "comments": "4"
+ }
+ ],
+ "monthly_comments": 2,
+ "total_comments": "177",
+ "most_active_day": "",
+ "most_active_time": "08:00",
+ "most_commented_post": {
+ "name": "Mac Screen Sharing (VNC) & White Screen",
+ "link": "http://astralbodi.es/2010/05/02/mac-screen-sharing-vnc-white-screen/",
+ "id": "67",
+ "comments": "29"
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-country-views.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-country-views.json
new file mode 100644
index 000000000..60370bc2d
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-country-views.json
@@ -0,0 +1,113 @@
+{
+ "date": "2015-02-06",
+ "days": {
+ "2015-02-06": {
+ "views": [
+ {
+ "country_code": "US",
+ "views": 8
+ },
+ {
+ "country_code": "TW",
+ "views": 6
+ },
+ {
+ "country_code": "DE",
+ "views": 4
+ },
+ {
+ "country_code": "IN",
+ "views": 4
+ },
+ {
+ "country_code": "PH",
+ "views": 4
+ },
+ {
+ "country_code": "GR",
+ "views": 3
+ },
+ {
+ "country_code": "FR",
+ "views": 3
+ },
+ {
+ "country_code": "BR",
+ "views": 2
+ },
+ {
+ "country_code": "CA",
+ "views": 2
+ },
+ {
+ "country_code": "HU",
+ "views": 2
+ }
+ ],
+ "other_views": 17,
+ "total_views": 55
+ }
+ },
+ "country-info": {
+ "US": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/5a83891a81b057fed56930a6aaaf7b3c?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/9f4faa5ad0c723474f7a6d810172447c?s=48",
+ "country_full": "United States",
+ "map_region": "021"
+ },
+ "TW": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/f983fff0dda7387746b697cfd865e657?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/2c224480a40527ee89d7340d4396e8e6?s=48",
+ "country_full": "Taiwan",
+ "map_region": "030"
+ },
+ "PH": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/9fb5caa12630ee351f854526887036b5?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/b45edf6312236c2ed67e9d6943b41862?s=48",
+ "country_full": "Philippines",
+ "map_region": "035"
+ },
+ "DE": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/e13c43aa12cd8aada2ffb1663970374f?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/82f933cabd7491369097f681958bdaed?s=48",
+ "country_full": "Germany",
+ "map_region": "155"
+ },
+ "IN": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/217b6ac82c316e3a176351cef1d2d0b6?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/d449a857f065ec5ddf1e7a086001a541?s=48",
+ "country_full": "India",
+ "map_region": "034"
+ },
+ "FR": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/bff4fa191e38bc0a316410b8fd2958fd?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/8139b3de98c828078f8a0f7deec0c79b?s=48",
+ "country_full": "France",
+ "map_region": "155"
+ },
+ "GR": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/b6b7e68f84a52ab815467a6fbec1f3c0?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/9b9c3f808361ec2e84526c44eb42944c?s=48",
+ "country_full": "Greece",
+ "map_region": "039"
+ },
+ "CA": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/7f3085b2665ac78346be5923724ba4c6?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/685ac009247bf3378158ee41c3f8f250?s=48",
+ "country_full": "Canada",
+ "map_region": "021"
+ },
+ "HU": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/33a7eb058641623442e0f785b2b1e112?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/cc6139c667fe0f8c1a0b609c01c4c51e?s=48",
+ "country_full": "Hungary",
+ "map_region": "151"
+ },
+ "BR": {
+ "flag_icon": "https://secure.gravatar.com/blavatar/2eb39070460892f8d51479ce95484f09?s=48",
+ "flat_flag_icon": "https://secure.gravatar.com/blavatar/254e046ea74f30ab535952b4ce25f0cb?s=48",
+ "country_full": "Brazil",
+ "map_region": "005"
+ }
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-followers.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-followers.json
new file mode 100644
index 000000000..8e4ba45c1
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-followers.json
@@ -0,0 +1,58 @@
+{
+ "page": 1,
+ "pages": 419,
+ "total": 2931,
+ "total_email": 2931,
+ "total_wpcom": 7926165,
+ "subscribers": [
+ {
+ "avatar": "https://2.gravatar.com/avatar/e82142697283897ad7444810e5975895?s=64&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "user1@example.com",
+ "url": null,
+ "follow_data": null,
+ "date_subscribed": "2014-12-16T11:24:41+00:00"
+ },
+ {
+ "avatar": "https://0.gravatar.com/avatar/c0886cabd7d010a69b49eab4b2749ae6?s=64&amp;d=https%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "user2@example.com",
+ "url": null,
+ "follow_data": null,
+ "date_subscribed": "2014-12-16T06:44:34+00:00"
+ },
+ {
+ "avatar": "https://0.gravatar.com/avatar/3804ce80c05eaa18d9d600f800a697b5?s=64&amp;d=https%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "user3@example.com",
+ "url": null,
+ "follow_data": null,
+ "date_subscribed": "2014-12-16T06:25:17+00:00"
+ },
+ {
+ "avatar": "https://2.gravatar.com/avatar/59d507351cc16802fcd0d36d03425e5b?s=64&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "user4@example.com",
+ "url": null,
+ "follow_data": null,
+ "date_subscribed": "2014-12-15T22:30:39+00:00"
+ },
+ {
+ "avatar": "https://2.gravatar.com/avatar/5087090dedc4fb5e802a2ee541084dc1?s=64&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "user5@example.com",
+ "url": null,
+ "follow_data": null,
+ "date_subscribed": "2014-12-15T22:14:37+00:00"
+ },
+ {
+ "avatar": "https://2.gravatar.com/avatar/e98a1902a1c1e947f040956916cc8fa1?s=64&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "user6@example.com",
+ "url": null,
+ "follow_data": null,
+ "date_subscribed": "2014-12-15T20:20:33+00:00"
+ },
+ {
+ "avatar": "https://0.gravatar.com/avatar/3b37f38b63ce4f595cc5cfbaadb10938?s=64&amp;d=https%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "user7@example.com",
+ "url": null,
+ "follow_data": null,
+ "date_subscribed": "2014-12-15T15:09:01+00:00"
+ }
+ ]
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-insights.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-insights.json
new file mode 100644
index 000000000..ed333eff2
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-insights.json
@@ -0,0 +1 @@
+{"highest_hour":9,"highest_day_of_week":5,"highest_day_percent":30.532081377152} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-post-123.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-post-123.json
new file mode 100644
index 000000000..834d3f6c6
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-post-123.json
@@ -0,0 +1,1376 @@
+{
+ "date": "2015-03-04",
+ "views": 1323,
+ "years": {
+ "2014": {
+ "months": {
+ "6": 47,
+ "7": 122,
+ "8": 173,
+ "9": 229,
+ "10": 278,
+ "11": 141,
+ "12": 107
+ },
+ "total": 1097
+ },
+ "2015": {
+ "months": {
+ "1": 125,
+ "2": 83,
+ "3": 18
+ },
+ "total": 226
+ }
+ },
+ "averages": {
+ "2014": {
+ "months": {
+ "6": 1,
+ "7": 3,
+ "8": 5,
+ "9": 7,
+ "10": 8,
+ "11": 4,
+ "12": 3
+ },
+ "overall": 5
+ },
+ "2015": {
+ "months": {
+ "1": 4,
+ "2": 2,
+ "3": 3
+ },
+ "overall": 3
+ }
+ },
+ "weeks": [
+ {
+ "days": [
+ {
+ "day": "2015-01-26",
+ "count": 6
+ },
+ {
+ "day": "2015-01-27",
+ "count": 3
+ },
+ {
+ "day": "2015-01-28",
+ "count": 6
+ },
+ {
+ "day": "2015-01-29",
+ "count": 2
+ },
+ {
+ "day": "2015-01-30",
+ "count": 4
+ },
+ {
+ "day": "2015-01-31",
+ "count": 1
+ },
+ {
+ "day": "2015-02-01",
+ "count": 3
+ }
+ ],
+ "total": 25,
+ "average": 3,
+ "change": null
+ },
+ {
+ "days": [
+ {
+ "day": "2015-02-02",
+ "count": 8
+ },
+ {
+ "day": "2015-02-03",
+ "count": 6
+ },
+ {
+ "day": "2015-02-04",
+ "count": 2
+ },
+ {
+ "day": "2015-02-05",
+ "count": 5
+ },
+ {
+ "day": "2015-02-06",
+ "count": 2
+ },
+ {
+ "day": "2015-02-07",
+ "count": 2
+ },
+ {
+ "day": "2015-02-08",
+ "count": 3
+ }
+ ],
+ "total": 28,
+ "average": 4,
+ "change": 12
+ },
+ {
+ "days": [
+ {
+ "day": "2015-02-09",
+ "count": 0
+ },
+ {
+ "day": "2015-02-10",
+ "count": 3
+ },
+ {
+ "day": "2015-02-11",
+ "count": 4
+ },
+ {
+ "day": "2015-02-12",
+ "count": 3
+ },
+ {
+ "day": "2015-02-13",
+ "count": 3
+ },
+ {
+ "day": "2015-02-14",
+ "count": 6
+ },
+ {
+ "day": "2015-02-15",
+ "count": 1
+ }
+ ],
+ "total": 20,
+ "average": 2,
+ "change": -28.571428571429
+ },
+ {
+ "days": [
+ {
+ "day": "2015-02-16",
+ "count": 4
+ },
+ {
+ "day": "2015-02-17",
+ "count": 4
+ },
+ {
+ "day": "2015-02-18",
+ "count": 2
+ },
+ {
+ "day": "2015-02-19",
+ "count": 1
+ },
+ {
+ "day": "2015-02-20",
+ "count": 3
+ },
+ {
+ "day": "2015-02-21",
+ "count": 0
+ },
+ {
+ "day": "2015-02-22",
+ "count": 1
+ }
+ ],
+ "total": 15,
+ "average": 2,
+ "change": -25
+ },
+ {
+ "days": [
+ {
+ "day": "2015-02-23",
+ "count": 2
+ },
+ {
+ "day": "2015-02-24",
+ "count": 4
+ },
+ {
+ "day": "2015-02-25",
+ "count": 2
+ },
+ {
+ "day": "2015-02-26",
+ "count": 6
+ },
+ {
+ "day": "2015-02-27",
+ "count": 2
+ },
+ {
+ "day": "2015-02-28",
+ "count": 1
+ },
+ {
+ "day": "2015-03-01",
+ "count": 3
+ }
+ ],
+ "total": 20,
+ "average": 2,
+ "change": 33.333333333333
+ },
+ {
+ "days": [
+ {
+ "day": "2015-03-02",
+ "count": 4
+ },
+ {
+ "day": "2015-03-03",
+ "count": 3
+ },
+ {
+ "day": "2015-03-04",
+ "count": 8
+ }
+ ],
+ "total": 15,
+ "average": 3,
+ "change": 22.5
+ }
+ ],
+ "fields": [
+ "period",
+ "views"
+ ],
+ "data": [
+ [
+ "2014-06-04",
+ 0
+ ],
+ [
+ "2014-06-05",
+ 6
+ ],
+ [
+ "2014-06-06",
+ 1
+ ],
+ [
+ "2014-06-07",
+ 0
+ ],
+ [
+ "2014-06-08",
+ 0
+ ],
+ [
+ "2014-06-09",
+ 0
+ ],
+ [
+ "2014-06-10",
+ 2
+ ],
+ [
+ "2014-06-11",
+ 1
+ ],
+ [
+ "2014-06-12",
+ 1
+ ],
+ [
+ "2014-06-13",
+ 0
+ ],
+ [
+ "2014-06-14",
+ 0
+ ],
+ [
+ "2014-06-15",
+ 1
+ ],
+ [
+ "2014-06-16",
+ 1
+ ],
+ [
+ "2014-06-17",
+ 2
+ ],
+ [
+ "2014-06-18",
+ 2
+ ],
+ [
+ "2014-06-19",
+ 2
+ ],
+ [
+ "2014-06-20",
+ 3
+ ],
+ [
+ "2014-06-21",
+ 2
+ ],
+ [
+ "2014-06-22",
+ 2
+ ],
+ [
+ "2014-06-23",
+ 3
+ ],
+ [
+ "2014-06-24",
+ 2
+ ],
+ [
+ "2014-06-25",
+ 4
+ ],
+ [
+ "2014-06-26",
+ 2
+ ],
+ [
+ "2014-06-27",
+ 2
+ ],
+ [
+ "2014-06-28",
+ 2
+ ],
+ [
+ "2014-06-29",
+ 1
+ ],
+ [
+ "2014-06-30",
+ 5
+ ],
+ [
+ "2014-07-01",
+ 7
+ ],
+ [
+ "2014-07-02",
+ 3
+ ],
+ [
+ "2014-07-03",
+ 2
+ ],
+ [
+ "2014-07-04",
+ 3
+ ],
+ [
+ "2014-07-05",
+ 2
+ ],
+ [
+ "2014-07-06",
+ 1
+ ],
+ [
+ "2014-07-07",
+ 9
+ ],
+ [
+ "2014-07-08",
+ 3
+ ],
+ [
+ "2014-07-09",
+ 1
+ ],
+ [
+ "2014-07-10",
+ 3
+ ],
+ [
+ "2014-07-11",
+ 4
+ ],
+ [
+ "2014-07-12",
+ 2
+ ],
+ [
+ "2014-07-13",
+ 1
+ ],
+ [
+ "2014-07-14",
+ 4
+ ],
+ [
+ "2014-07-15",
+ 4
+ ],
+ [
+ "2014-07-16",
+ 6
+ ],
+ [
+ "2014-07-17",
+ 5
+ ],
+ [
+ "2014-07-18",
+ 2
+ ],
+ [
+ "2014-07-19",
+ 2
+ ],
+ [
+ "2014-07-20",
+ 2
+ ],
+ [
+ "2014-07-21",
+ 2
+ ],
+ [
+ "2014-07-22",
+ 3
+ ],
+ [
+ "2014-07-23",
+ 3
+ ],
+ [
+ "2014-07-24",
+ 5
+ ],
+ [
+ "2014-07-25",
+ 4
+ ],
+ [
+ "2014-07-26",
+ 3
+ ],
+ [
+ "2014-07-27",
+ 9
+ ],
+ [
+ "2014-07-28",
+ 11
+ ],
+ [
+ "2014-07-29",
+ 10
+ ],
+ [
+ "2014-07-30",
+ 4
+ ],
+ [
+ "2014-07-31",
+ 2
+ ],
+ [
+ "2014-08-01",
+ 5
+ ],
+ [
+ "2014-08-02",
+ 0
+ ],
+ [
+ "2014-08-03",
+ 5
+ ],
+ [
+ "2014-08-04",
+ 11
+ ],
+ [
+ "2014-08-05",
+ 10
+ ],
+ [
+ "2014-08-06",
+ 7
+ ],
+ [
+ "2014-08-07",
+ 6
+ ],
+ [
+ "2014-08-08",
+ 5
+ ],
+ [
+ "2014-08-09",
+ 1
+ ],
+ [
+ "2014-08-10",
+ 8
+ ],
+ [
+ "2014-08-11",
+ 6
+ ],
+ [
+ "2014-08-12",
+ 9
+ ],
+ [
+ "2014-08-13",
+ 7
+ ],
+ [
+ "2014-08-14",
+ 6
+ ],
+ [
+ "2014-08-15",
+ 7
+ ],
+ [
+ "2014-08-16",
+ 2
+ ],
+ [
+ "2014-08-17",
+ 8
+ ],
+ [
+ "2014-08-18",
+ 5
+ ],
+ [
+ "2014-08-19",
+ 4
+ ],
+ [
+ "2014-08-20",
+ 9
+ ],
+ [
+ "2014-08-21",
+ 8
+ ],
+ [
+ "2014-08-22",
+ 9
+ ],
+ [
+ "2014-08-23",
+ 3
+ ],
+ [
+ "2014-08-24",
+ 3
+ ],
+ [
+ "2014-08-25",
+ 5
+ ],
+ [
+ "2014-08-26",
+ 4
+ ],
+ [
+ "2014-08-27",
+ 5
+ ],
+ [
+ "2014-08-28",
+ 4
+ ],
+ [
+ "2014-08-29",
+ 1
+ ],
+ [
+ "2014-08-30",
+ 1
+ ],
+ [
+ "2014-08-31",
+ 9
+ ],
+ [
+ "2014-09-01",
+ 2
+ ],
+ [
+ "2014-09-02",
+ 4
+ ],
+ [
+ "2014-09-03",
+ 10
+ ],
+ [
+ "2014-09-04",
+ 9
+ ],
+ [
+ "2014-09-05",
+ 6
+ ],
+ [
+ "2014-09-06",
+ 5
+ ],
+ [
+ "2014-09-07",
+ 4
+ ],
+ [
+ "2014-09-08",
+ 7
+ ],
+ [
+ "2014-09-09",
+ 8
+ ],
+ [
+ "2014-09-10",
+ 10
+ ],
+ [
+ "2014-09-11",
+ 4
+ ],
+ [
+ "2014-09-12",
+ 11
+ ],
+ [
+ "2014-09-13",
+ 5
+ ],
+ [
+ "2014-09-14",
+ 6
+ ],
+ [
+ "2014-09-15",
+ 13
+ ],
+ [
+ "2014-09-16",
+ 9
+ ],
+ [
+ "2014-09-17",
+ 3
+ ],
+ [
+ "2014-09-18",
+ 8
+ ],
+ [
+ "2014-09-19",
+ 8
+ ],
+ [
+ "2014-09-20",
+ 7
+ ],
+ [
+ "2014-09-21",
+ 13
+ ],
+ [
+ "2014-09-22",
+ 15
+ ],
+ [
+ "2014-09-23",
+ 8
+ ],
+ [
+ "2014-09-24",
+ 14
+ ],
+ [
+ "2014-09-25",
+ 4
+ ],
+ [
+ "2014-09-26",
+ 3
+ ],
+ [
+ "2014-09-27",
+ 2
+ ],
+ [
+ "2014-09-28",
+ 2
+ ],
+ [
+ "2014-09-29",
+ 15
+ ],
+ [
+ "2014-09-30",
+ 14
+ ],
+ [
+ "2014-10-01",
+ 7
+ ],
+ [
+ "2014-10-02",
+ 10
+ ],
+ [
+ "2014-10-03",
+ 4
+ ],
+ [
+ "2014-10-04",
+ 1
+ ],
+ [
+ "2014-10-05",
+ 9
+ ],
+ [
+ "2014-10-06",
+ 7
+ ],
+ [
+ "2014-10-07",
+ 17
+ ],
+ [
+ "2014-10-08",
+ 10
+ ],
+ [
+ "2014-10-09",
+ 8
+ ],
+ [
+ "2014-10-10",
+ 5
+ ],
+ [
+ "2014-10-11",
+ 5
+ ],
+ [
+ "2014-10-12",
+ 6
+ ],
+ [
+ "2014-10-13",
+ 12
+ ],
+ [
+ "2014-10-14",
+ 18
+ ],
+ [
+ "2014-10-15",
+ 11
+ ],
+ [
+ "2014-10-16",
+ 8
+ ],
+ [
+ "2014-10-17",
+ 14
+ ],
+ [
+ "2014-10-18",
+ 6
+ ],
+ [
+ "2014-10-19",
+ 5
+ ],
+ [
+ "2014-10-20",
+ 13
+ ],
+ [
+ "2014-10-21",
+ 11
+ ],
+ [
+ "2014-10-22",
+ 12
+ ],
+ [
+ "2014-10-23",
+ 6
+ ],
+ [
+ "2014-10-24",
+ 8
+ ],
+ [
+ "2014-10-25",
+ 6
+ ],
+ [
+ "2014-10-26",
+ 6
+ ],
+ [
+ "2014-10-27",
+ 8
+ ],
+ [
+ "2014-10-28",
+ 12
+ ],
+ [
+ "2014-10-29",
+ 10
+ ],
+ [
+ "2014-10-30",
+ 11
+ ],
+ [
+ "2014-10-31",
+ 12
+ ],
+ [
+ "2014-11-01",
+ 1
+ ],
+ [
+ "2014-11-02",
+ 3
+ ],
+ [
+ "2014-11-03",
+ 10
+ ],
+ [
+ "2014-11-04",
+ 3
+ ],
+ [
+ "2014-11-05",
+ 6
+ ],
+ [
+ "2014-11-06",
+ 4
+ ],
+ [
+ "2014-11-07",
+ 10
+ ],
+ [
+ "2014-11-08",
+ 7
+ ],
+ [
+ "2014-11-09",
+ 5
+ ],
+ [
+ "2014-11-10",
+ 7
+ ],
+ [
+ "2014-11-11",
+ 4
+ ],
+ [
+ "2014-11-12",
+ 6
+ ],
+ [
+ "2014-11-13",
+ 10
+ ],
+ [
+ "2014-11-14",
+ 4
+ ],
+ [
+ "2014-11-15",
+ 3
+ ],
+ [
+ "2014-11-16",
+ 3
+ ],
+ [
+ "2014-11-17",
+ 10
+ ],
+ [
+ "2014-11-18",
+ 4
+ ],
+ [
+ "2014-11-19",
+ 4
+ ],
+ [
+ "2014-11-20",
+ 4
+ ],
+ [
+ "2014-11-21",
+ 1
+ ],
+ [
+ "2014-11-22",
+ 3
+ ],
+ [
+ "2014-11-23",
+ 4
+ ],
+ [
+ "2014-11-24",
+ 10
+ ],
+ [
+ "2014-11-25",
+ 2
+ ],
+ [
+ "2014-11-26",
+ 2
+ ],
+ [
+ "2014-11-27",
+ 6
+ ],
+ [
+ "2014-11-28",
+ 4
+ ],
+ [
+ "2014-11-29",
+ 0
+ ],
+ [
+ "2014-11-30",
+ 1
+ ],
+ [
+ "2014-12-01",
+ 8
+ ],
+ [
+ "2014-12-02",
+ 2
+ ],
+ [
+ "2014-12-03",
+ 5
+ ],
+ [
+ "2014-12-04",
+ 3
+ ],
+ [
+ "2014-12-05",
+ 4
+ ],
+ [
+ "2014-12-06",
+ 0
+ ],
+ [
+ "2014-12-07",
+ 7
+ ],
+ [
+ "2014-12-08",
+ 6
+ ],
+ [
+ "2014-12-09",
+ 5
+ ],
+ [
+ "2014-12-10",
+ 5
+ ],
+ [
+ "2014-12-11",
+ 6
+ ],
+ [
+ "2014-12-12",
+ 2
+ ],
+ [
+ "2014-12-13",
+ 2
+ ],
+ [
+ "2014-12-14",
+ 5
+ ],
+ [
+ "2014-12-15",
+ 7
+ ],
+ [
+ "2014-12-16",
+ 2
+ ],
+ [
+ "2014-12-17",
+ 2
+ ],
+ [
+ "2014-12-18",
+ 1
+ ],
+ [
+ "2014-12-19",
+ 1
+ ],
+ [
+ "2014-12-20",
+ 6
+ ],
+ [
+ "2014-12-21",
+ 0
+ ],
+ [
+ "2014-12-22",
+ 3
+ ],
+ [
+ "2014-12-23",
+ 1
+ ],
+ [
+ "2014-12-24",
+ 1
+ ],
+ [
+ "2014-12-25",
+ 2
+ ],
+ [
+ "2014-12-26",
+ 3
+ ],
+ [
+ "2014-12-27",
+ 2
+ ],
+ [
+ "2014-12-28",
+ 4
+ ],
+ [
+ "2014-12-29",
+ 8
+ ],
+ [
+ "2014-12-30",
+ 2
+ ],
+ [
+ "2014-12-31",
+ 2
+ ],
+ [
+ "2015-01-01",
+ 3
+ ],
+ [
+ "2015-01-02",
+ 2
+ ],
+ [
+ "2015-01-03",
+ 4
+ ],
+ [
+ "2015-01-04",
+ 0
+ ],
+ [
+ "2015-01-05",
+ 9
+ ],
+ [
+ "2015-01-06",
+ 6
+ ],
+ [
+ "2015-01-07",
+ 3
+ ],
+ [
+ "2015-01-08",
+ 3
+ ],
+ [
+ "2015-01-09",
+ 3
+ ],
+ [
+ "2015-01-10",
+ 1
+ ],
+ [
+ "2015-01-11",
+ 7
+ ],
+ [
+ "2015-01-12",
+ 8
+ ],
+ [
+ "2015-01-13",
+ 9
+ ],
+ [
+ "2015-01-14",
+ 5
+ ],
+ [
+ "2015-01-15",
+ 3
+ ],
+ [
+ "2015-01-16",
+ 2
+ ],
+ [
+ "2015-01-17",
+ 3
+ ],
+ [
+ "2015-01-18",
+ 3
+ ],
+ [
+ "2015-01-19",
+ 3
+ ],
+ [
+ "2015-01-20",
+ 9
+ ],
+ [
+ "2015-01-21",
+ 4
+ ],
+ [
+ "2015-01-22",
+ 7
+ ],
+ [
+ "2015-01-23",
+ 3
+ ],
+ [
+ "2015-01-24",
+ 2
+ ],
+ [
+ "2015-01-25",
+ 1
+ ],
+ [
+ "2015-01-26",
+ 6
+ ],
+ [
+ "2015-01-27",
+ 3
+ ],
+ [
+ "2015-01-28",
+ 6
+ ],
+ [
+ "2015-01-29",
+ 2
+ ],
+ [
+ "2015-01-30",
+ 4
+ ],
+ [
+ "2015-01-31",
+ 1
+ ],
+ [
+ "2015-02-01",
+ 3
+ ],
+ [
+ "2015-02-02",
+ 8
+ ],
+ [
+ "2015-02-03",
+ 6
+ ],
+ [
+ "2015-02-04",
+ 2
+ ],
+ [
+ "2015-02-05",
+ 5
+ ],
+ [
+ "2015-02-06",
+ 2
+ ],
+ [
+ "2015-02-07",
+ 2
+ ],
+ [
+ "2015-02-08",
+ 3
+ ],
+ [
+ "2015-02-09",
+ 0
+ ],
+ [
+ "2015-02-10",
+ 3
+ ],
+ [
+ "2015-02-11",
+ 4
+ ],
+ [
+ "2015-02-12",
+ 3
+ ],
+ [
+ "2015-02-13",
+ 3
+ ],
+ [
+ "2015-02-14",
+ 6
+ ],
+ [
+ "2015-02-15",
+ 1
+ ],
+ [
+ "2015-02-16",
+ 4
+ ],
+ [
+ "2015-02-17",
+ 4
+ ],
+ [
+ "2015-02-18",
+ 2
+ ],
+ [
+ "2015-02-19",
+ 1
+ ],
+ [
+ "2015-02-20",
+ 3
+ ],
+ [
+ "2015-02-21",
+ 0
+ ],
+ [
+ "2015-02-22",
+ 1
+ ],
+ [
+ "2015-02-23",
+ 2
+ ],
+ [
+ "2015-02-24",
+ 4
+ ],
+ [
+ "2015-02-25",
+ 2
+ ],
+ [
+ "2015-02-26",
+ 6
+ ],
+ [
+ "2015-02-27",
+ 2
+ ],
+ [
+ "2015-02-28",
+ 1
+ ],
+ [
+ "2015-03-01",
+ 3
+ ],
+ [
+ "2015-03-02",
+ 4
+ ],
+ [
+ "2015-03-03",
+ 3
+ ],
+ [
+ "2015-03-04",
+ 8
+ ]
+ ],
+ "highest_month": 278,
+ "highest_day_average": 8,
+ "highest_week_average": 8,
+ "post": {
+ "ID": 725,
+ "post_author": "67137",
+ "post_date": "2014-06-05 10:23:24",
+ "post_date_gmt": "2014-06-05 15:23:24",
+ "post_content": "On occasion my Calendar on Mavericks gets hosed when syncing with Google.  If I look in the console, I see errors like the following mentioning \"An error exists on principal\":\r\n<pre>6/5/14 10:05:00.337 AM Calendar[59555]: [com.apple.calendar.ui.log] [An error exists on principal: [iCloud]]\r\n6/5/14 10:05:00.338 AM Calendar[59555]: [com.apple.calendar.ui.log] [An error exists on principal: [Time Off]]\r\n6/5/14 10:05:00.340 AM Calendar[59555]: [com.apple.calendar.ui.log] [An error exists on principal: [Events]]\r\n6/5/14 10:05:00.341 AM Calendar[59555]: [com.apple.calendar.ui.log] [An error exists on principal: [Launch]]\r\n6/5/14 10:05:00.341 AM Calendar[59555]: [com.apple.calendar.ui.log] [An error exists on principal: [Conferences]]\r\n6/5/14 10:05:00.342 AM Calendar[59555]: [com.apple.calendar.ui.log] [An error exists on principal: [Some Team]]</pre>\r\nHitting Command-R in calendar results in it sitting on Updating for some time (minutes?) and then an exclamation point appearing next to the calendars in question.  I finally found a solution to fix it until the next time it happens.  I'm not sure what the actual cause is but this can get you back up &amp; running.\r\n<ol>\r\n\t<li>Close the Calendar app.</li>\r\n\t<li>Go into System Preferences.</li>\r\n\t<li>Click on Internet Accounts.</li>\r\n\t<li>Click on the Google account (if you have multiple you may have to do this for each).</li>\r\n\t<li>Uncheck \"Calendars\".</li>\r\n\t<li>Click Show All or close preferences.</li>\r\n\t<li>Open Terminal.app (Applications &gt; Utilities)</li>\r\n\t<li>type: killall -9 CalendarAgent</li>\r\n\t<li>type exit or close the window.</li>\r\n\t<li>Go back into System Preferences and turn Calendar back on for the Google Account(s).</li>\r\n\t<li>Start up Calendar and hit command-R - everything should refresh properly.</li>\r\n</ol>\r\nLet me know if you have questions!",
+ "post_title": "Mac OS X 10.9 Mavericks Calendar + Google Sync Problems",
+ "post_excerpt": "",
+ "post_status": "publish",
+ "comment_status": "open",
+ "ping_status": "open",
+ "post_password": "",
+ "post_name": "mac-os-x-10-9-mavericks-calendar-google-sync-problems",
+ "to_ping": "",
+ "pinged": "",
+ "post_modified": "2014-06-05 10:23:24",
+ "post_modified_gmt": "2014-06-05 15:23:24",
+ "post_content_filtered": "",
+ "post_parent": 0,
+ "guid": "http://astralbodi.es/?p=725",
+ "menu_order": 0,
+ "post_type": "post",
+ "post_mime_type": "",
+ "comment_count": "4",
+ "filter": "raw",
+ "permalink": "http://astralbodi.es/2014/06/05/mac-os-x-10-9-mavericks-calendar-google-sync-problems/"
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-referrers.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-referrers.json
new file mode 100644
index 000000000..d2dddf2de
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-referrers.json
@@ -0,0 +1,553 @@
+{
+ "date": "2014-11-06",
+ "days": {
+ "2014-11-06": {
+ "groups": [
+ {
+ "group": "Search Engines",
+ "name": "Search Engines",
+ "icon": "https://wordpress.com/i/stats/search-engine.png",
+ "total": 480,
+ "follow_data": null,
+ "results": [
+ {
+ "name": "Google Search",
+ "icon": "https://secure.gravatar.com/blavatar/6741a05f4bc6e5b65f504c4f3df388a1?s=48",
+ "views": 461,
+ "children": [
+ {
+ "name": "google.com",
+ "url": "http://www.google.com/",
+ "icon": "https://secure.gravatar.com/blavatar/ff90821feeb2b02a33a6f9fc8e5f3fcd?s=48",
+ "views": 176
+ },
+ {
+ "name": "google.com/search",
+ "url": "http://www.google.com/search",
+ "icon": null,
+ "views": 72
+ },
+ {
+ "name": "google.co.uk",
+ "url": "http://www.google.co.uk",
+ "icon": "https://secure.gravatar.com/blavatar/d5d4cf8ec8dc8fddc90b7024afa3ddb3?s=48",
+ "views": 29
+ },
+ {
+ "name": "google.co.in",
+ "url": "http://www.google.co.in",
+ "icon": "https://secure.gravatar.com/blavatar/b8b1615bdc37f756888332cc17e0a5bf?s=48",
+ "views": 18
+ },
+ {
+ "name": "google.ca",
+ "url": "http://www.google.ca",
+ "icon": "https://secure.gravatar.com/blavatar/3eac48a51cb5302e35fe68a819220647?s=48",
+ "views": 16
+ },
+ {
+ "name": "google.co.in/search",
+ "url": "http://www.google.co.in/search",
+ "icon": null,
+ "views": 15
+ },
+ {
+ "name": "google.fr",
+ "url": "http://www.google.fr",
+ "icon": "https://secure.gravatar.com/blavatar/f50e99a317404504fe68699742bd5814?s=48",
+ "views": 10
+ },
+ {
+ "name": "google.co.uk/search",
+ "url": "http://www.google.co.uk/search",
+ "icon": null,
+ "views": 10
+ },
+ {
+ "name": "google.es",
+ "url": "http://www.google.es",
+ "icon": "https://secure.gravatar.com/blavatar/7ec3dec14a88a3b50bab9a2b2d8e9e83?s=48",
+ "views": 10
+ },
+ {
+ "name": "google.it",
+ "url": "http://www.google.it",
+ "icon": "https://secure.gravatar.com/blavatar/dda15434615ed3debc02fef8bbea9236?s=48",
+ "views": 8
+ },
+ {
+ "name": "google.co.jp",
+ "url": "http://www.google.co.jp",
+ "icon": "https://secure.gravatar.com/blavatar/a28b8206a6562f6098688508d4665905?s=48",
+ "views": 6
+ }
+ ]
+ },
+ {
+ "name": "Bing",
+ "icon": "https://secure.gravatar.com/blavatar/112a7e096595d1c32c4ecdfd9e56b66c?s=48",
+ "views": 6,
+ "children": [
+ {
+ "name": "bing.com",
+ "url": "http://www.bing.com",
+ "icon": "https://secure.gravatar.com/blavatar/9cbc5ee4b61e0acb335d56e96c6b2586?s=48",
+ "views": 5
+ },
+ {
+ "name": "bing.com/cr?h=de8g1Y2DWzfXUvtXcC2IcDZyxDoXB_nRU1LMdIYgbeE&v=1&r=http%3A%2F%2Fautomattic.com%2F&IG=db7e274448164b20819b47ff4e6c69cf&CID=1658D39F37DA68C1226DD6A133DA6A0D&p=SERP%2C5133.1",
+ "url": "http://www.bing.com/cr?h=de8g1Y2DWzfXUvtXcC2IcDZyxDoXB_nRU1LMdIYgbeE&v=1&r=http%3A%2F%2Fautomattic.com%2F&IG=db7e274448164b20819b47ff4e6c69cf&CID=1658D39F37DA68C1226DD6A133DA6A0D&p=SERP%2C5133.1",
+ "icon": null,
+ "views": 1
+ }
+ ]
+ },
+ {
+ "name": "Google Mobile",
+ "icon": "https://secure.gravatar.com/blavatar/6c3cff486df5f19e5aacc916f4bab366?s=48",
+ "views": 4,
+ "children": [
+ {
+ "name": "google.com/m",
+ "url": "http://www.google.com/m",
+ "icon": null,
+ "views": 3
+ },
+ {
+ "name": "google.co.in/m",
+ "url": "http://www.google.co.in/m",
+ "icon": null,
+ "views": 1
+ }
+ ]
+ },
+ {
+ "name": "Yahoo Search",
+ "icon": "https://secure.gravatar.com/blavatar/5029a4a8e7da221ae517ddaa0dd5422b?s=48",
+ "views": 3,
+ "children": [
+ {
+ "name": "r.search.yahoo.com/_ylt=A0SO8znbiFtUDxEAQ6bBGOd_;_ylu=X3oDMTE0aWk0c25qBHNlYwNzcgRwb3MDOQRjb2xvA2dxMQR2dGlkA1RBVVMwNTBfMQ--/RV=2/RE=1415313756/RO=10/RU=http%3a%2f%2fautomattic.com%2fdmca-notice%2f/RK=0/RS=FPBw2GWPvFyNODDsl2y.a9QKVGQ-",
+ "url": "http://r.search.yahoo.com/_ylt=A0SO8znbiFtUDxEAQ6bBGOd_;_ylu=X3oDMTE0aWk0c25qBHNlYwNzcgRwb3MDOQRjb2xvA2dxMQR2dGlkA1RBVVMwNTBfMQ--/RV=2/RE=1415313756/RO=10/RU=http%3a%2f%2fautomattic.com%2fdmca-notice%2f/RK=0/RS=FPBw2GWPvFyNODDsl2y.a9QKVGQ-",
+ "icon": null,
+ "views": 2
+ },
+ {
+ "name": "search.yahoo.com",
+ "url": "http://search.yahoo.com",
+ "icon": "https://secure.gravatar.com/blavatar/3fb3c06e746f9d563d7a3ea387b7c74f?s=48",
+ "views": 1
+ }
+ ]
+ },
+ {
+ "name": "Baidu",
+ "icon": null,
+ "views": 2,
+ "children": [
+ {
+ "name": "m.baidu.com/from=282e/bd_page_type=1/ssid=0/uid=0/pu=sz%401320_480%2Cosname%40android%2Cta%40zbios_2_2.3_3_533/baiduid=DA869511F4FA2796F09AB1106814EC23/w=0_10_Newest.Free.Japanese.Tee.porn.videos%EF%BC%BFpaye7/t=zbios/l=3/tc?lid=11481103778344937834&order=7&vit=osres&tj=www_normal_7_0_10&m=8&srd=1&rr=2&cltj=cloud_title&phoneos=bd_search_android&dict=20&fm=wnor&sec=42727&di=6375fb7ed63d6728&bdenc=1&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IIxjPMjxZBDeanFvte4viZQRAWzvgNXyXEUH5umOQqBW",
+ "url": "http://m.baidu.com/from=282e/bd_page_type=1/ssid=0/uid=0/pu=sz%401320_480%2Cosname%40android%2Cta%40zbios_2_2.3_3_533/baiduid=DA869511F4FA2796F09AB1106814EC23/w=0_10_Newest.Free.Japanese.Tee.porn.videos%EF%BC%BFpaye7/t=zbios/l=3/tc?lid=11481103778344937834&order=7&vit=osres&tj=www_normal_7_0_10&m=8&srd=1&rr=2&cltj=cloud_title&phoneos=bd_search_android&dict=20&fm=wnor&sec=42727&di=6375fb7ed63d6728&bdenc=1&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IIxjPMjxZBDeanFvte4viZQRAWzvgNXyXEUH5umOQqBW",
+ "icon": null,
+ "views": 1
+ },
+ {
+ "name": "m5.baidu.com/from=1089a/bd_page_type=1/ssid=0/uid=coolpad7060/pu=usm%400%2Csz%401320_1001%2Cta%40iphone_2_4.1_3_534/baiduid=B73C28336A671201339ECA6A9806BC5F/w=0_10_xnxx.c/t=iphone/l=3/tc?lid=4839328262923482007&order=1&vit=osres&tj=www_normal_1_0_10&m=8&srd=1&cltj=cloud_title&dict=20&fm=wnor&sec=42729&di=f459593862ba8040&bdenc=1&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IIxjPMjxZBDeanFvte4viZQRAWCLaOWq",
+ "url": "http://m5.baidu.com/from=1089a/bd_page_type=1/ssid=0/uid=coolpad7060/pu=usm%400%2Csz%401320_1001%2Cta%40iphone_2_4.1_3_534/baiduid=B73C28336A671201339ECA6A9806BC5F/w=0_10_xnxx.c/t=iphone/l=3/tc?lid=4839328262923482007&order=1&vit=osres&tj=www_normal_1_0_10&m=8&srd=1&cltj=cloud_title&dict=20&fm=wnor&sec=42729&di=f459593862ba8040&bdenc=1&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IIxjPMjxZBDeanFvte4viZQRAWCLaOWq",
+ "icon": null,
+ "views": 1
+ }
+ ]
+ },
+ {
+ "name": "Yandex",
+ "url": "http://yandex.ru",
+ "icon": null,
+ "views": 2
+ },
+ {
+ "name": "duckduckgo.com",
+ "url": "https://duckduckgo.com/",
+ "icon": null,
+ "views": 2
+ }
+ ]
+ },
+ {
+ "group": "WordPress.com Reader",
+ "name": "WordPress.com Reader",
+ "url": "https://wordpress.com/read/",
+ "icon": "https://secure.gravatar.com/blavatar/236c008da9dc0edb4b3464ecebb3fc1d?s=48",
+ "total": 138,
+ "follow_data": null,
+ "results": {
+ "views": 138
+ }
+ },
+ {
+ "group": "en.wordpress.com",
+ "name": "en.wordpress.com",
+ "icon": "https://secure.gravatar.com/blavatar/d6777146f78461ee95d5aed3b81fb852?s=48",
+ "total": 130,
+ "follow_data": null,
+ "results": [
+ {
+ "name": "en.wordpress.com/tos/",
+ "url": "http://en.wordpress.com/tos/",
+ "views": 41
+ },
+ {
+ "name": "en.wordpress.com/about/",
+ "url": "http://en.wordpress.com/about/",
+ "views": 19
+ },
+ {
+ "name": "en.wordpress.com/complaints/",
+ "url": "http://en.wordpress.com/complaints/",
+ "views": 4
+ },
+ {
+ "name": "en.wordpress.com/features/",
+ "url": "http://en.wordpress.com/features/",
+ "views": 4
+ },
+ {
+ "name": "en.wordpress.com/typo/?subdomain=jadesexyx",
+ "url": "http://en.wordpress.com/typo/?subdomain=jadesexyx",
+ "views": 4
+ },
+ {
+ "name": "en.wordpress.com/typo/?subdomain=giustizieredellarete",
+ "url": "http://en.wordpress.com/typo/?subdomain=giustizieredellarete",
+ "views": 3
+ },
+ {
+ "name": "en.wordpress.com/typo/?subdomain=abchudasama",
+ "url": "http://en.wordpress.com/typo/?subdomain=abchudasama",
+ "views": 2
+ },
+ {
+ "name": "en.wordpress.com/typo/?subdomain=mp3",
+ "url": "http://en.wordpress.com/typo/?subdomain=mp3",
+ "views": 2
+ },
+ {
+ "name": "en.wordpress.com/typo/?subdomain=kried202",
+ "url": "http://en.wordpress.com/typo/?subdomain=kried202",
+ "views": 2
+ },
+ {
+ "name": "en.wordpress.com/typo/?subdomain=madameghamrauoi",
+ "url": "http://en.wordpress.com/typo/?subdomain=madameghamrauoi",
+ "views": 2
+ },
+ {
+ "name": "en.wordpress.com/typo/?subdomain=nephitestalentcenteq",
+ "url": "http://en.wordpress.com/typo/?subdomain=nephitestalentcenteq",
+ "views": 1
+ }
+ ]
+ },
+ {
+ "group": "WordPress Dashboard",
+ "name": "WordPress Dashboard",
+ "url": "https://wordpress.com/",
+ "icon": "https://secure.gravatar.com/blavatar/4cdb265b8260a6a032a1ed197e39b92d?s=48",
+ "total": 129,
+ "follow_data": null,
+ "results": {
+ "views": 129
+ }
+ },
+ {
+ "group": "en.gravatar.com",
+ "name": "en.gravatar.com",
+ "icon": "https://secure.gravatar.com/blavatar/90f2527e399855d3bc583b65f35821e7?s=48",
+ "total": 89,
+ "follow_data": null,
+ "results": [
+ {
+ "name": "en.gravatar.com",
+ "url": "http://en.gravatar.com/",
+ "views": 27
+ },
+ {
+ "name": "en.gravatar.com/support/what-is-gravatar/",
+ "url": "http://en.gravatar.com/support/what-is-gravatar/",
+ "views": 26
+ },
+ {
+ "name": "en.gravatar.com/profiles/no-such-user",
+ "url": "http://en.gravatar.com/profiles/no-such-user",
+ "views": 3
+ },
+ {
+ "name": "en.gravatar.com/depayoyevu",
+ "url": "http://en.gravatar.com/depayoyevu",
+ "views": 2
+ },
+ {
+ "name": "en.gravatar.com/mzellepika",
+ "url": "http://en.gravatar.com/mzellepika",
+ "views": 1
+ },
+ {
+ "name": "en.gravatar.com/bewofawegu",
+ "url": "http://en.gravatar.com/bewofawegu",
+ "views": 1
+ },
+ {
+ "name": "en.gravatar.com/adynamaryan",
+ "url": "http://en.gravatar.com/adynamaryan",
+ "views": 1
+ },
+ {
+ "name": "en.gravatar.com/arminabrahamyan",
+ "url": "http://en.gravatar.com/arminabrahamyan",
+ "views": 1
+ },
+ {
+ "name": "en.gravatar.com/jeqyeqema",
+ "url": "http://en.gravatar.com/jeqyeqema",
+ "views": 1
+ },
+ {
+ "name": "en.gravatar.com/momsextubea",
+ "url": "http://en.gravatar.com/momsextubea",
+ "views": 1
+ },
+ {
+ "name": "en.gravatar.com/xanthuis",
+ "url": "http://en.gravatar.com/xanthuis",
+ "views": 1
+ }
+ ]
+ },
+ {
+ "group": "vip.wordpress.com",
+ "name": "vip.wordpress.com",
+ "icon": "https://secure.gravatar.com/blavatar/c0a70310ea07fb03e415f74916b37b35?s=48",
+ "total": 66,
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_referrer",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "vip.wordpress.com",
+ "blog_url": "http://vip.wordpress.com",
+ "blog_id": 2235322,
+ "site_id": 2235322,
+ "blog_title": "WordPress.com VIP",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "results": [
+ {
+ "name": "vip.wordpress.com",
+ "url": "http://vip.wordpress.com/",
+ "views": 38
+ },
+ {
+ "name": "vip.wordpress.com/our-services/",
+ "url": "http://vip.wordpress.com/our-services/",
+ "views": 7
+ },
+ {
+ "name": "vip.wordpress.com/contact/",
+ "url": "http://vip.wordpress.com/contact/",
+ "views": 6
+ },
+ {
+ "name": "vip.wordpress.com/2014/11/06/code-for-the-people/",
+ "url": "http://vip.wordpress.com/2014/11/06/code-for-the-people/",
+ "views": 3
+ },
+ {
+ "name": "vip.wordpress.com/partners/",
+ "url": "http://vip.wordpress.com/partners/",
+ "views": 3
+ },
+ {
+ "name": "vip.wordpress.com/spotlight/",
+ "url": "http://vip.wordpress.com/spotlight/",
+ "views": 2
+ },
+ {
+ "name": "vip.wordpress.com/why-vip/",
+ "url": "http://vip.wordpress.com/why-vip/",
+ "views": 1
+ },
+ {
+ "name": "vip.wordpress.com/clients/",
+ "url": "http://vip.wordpress.com/clients/",
+ "views": 1
+ },
+ {
+ "name": "vip.wordpress.com/2014/09/03/big-media-enterprise-talks-wordpresstv/",
+ "url": "http://vip.wordpress.com/2014/09/03/big-media-enterprise-talks-wordpresstv/",
+ "views": 1
+ },
+ {
+ "name": "vip.wordpress.com/stats/",
+ "url": "http://vip.wordpress.com/stats/",
+ "views": 1
+ },
+ {
+ "name": "vip.wordpress.com/events/",
+ "url": "http://vip.wordpress.com/events/",
+ "views": 1
+ }
+ ]
+ },
+ {
+ "group": "ma.tt",
+ "name": "ma.tt",
+ "icon": "https://secure.gravatar.com/blavatar/733a27a6b983dd89d6dd64d0445a3e8e?s=48",
+ "total": 56,
+ "follow_data": null,
+ "results": [
+ {
+ "name": "ma.tt",
+ "url": "http://ma.tt/",
+ "views": 34
+ },
+ {
+ "name": "ma.tt/themes/",
+ "url": "http://ma.tt/themes/",
+ "views": 5
+ },
+ {
+ "name": "ma.tt/about/",
+ "url": "http://ma.tt/about/",
+ "views": 5
+ },
+ {
+ "name": "ma.tt/2009/07/not-lonely-at-all/?relatedposts_hit=1&relatedposts_origin=35223&relatedposts_position=1",
+ "url": "http://ma.tt/2009/07/not-lonely-at-all/?relatedposts_hit=1&relatedposts_origin=35223&relatedposts_position=1",
+ "views": 2
+ },
+ {
+ "name": "ma.tt/gallery/",
+ "url": "http://ma.tt/gallery/",
+ "views": 1
+ },
+ {
+ "name": "ma.tt/contact/",
+ "url": "http://ma.tt/contact/",
+ "views": 1
+ },
+ {
+ "name": "ma.tt/page/2/",
+ "url": "http://ma.tt/page/2/",
+ "views": 1
+ },
+ {
+ "name": "ma.tt/page/7/",
+ "url": "http://ma.tt/page/7/",
+ "views": 1
+ },
+ {
+ "name": "ma.tt/page/6/",
+ "url": "http://ma.tt/page/6/",
+ "views": 1
+ },
+ {
+ "name": "ma.tt/2014/09/five-for-the-future/",
+ "url": "http://ma.tt/2014/09/five-for-the-future/",
+ "views": 1
+ },
+ {
+ "name": "ma.tt/2014/11/texas-landslide/",
+ "url": "http://ma.tt/2014/11/texas-landslide/",
+ "views": 1
+ }
+ ]
+ },
+ {
+ "group": "flexjobs.com",
+ "name": "flexjobs.com",
+ "icon": null,
+ "total": 55,
+ "follow_data": null,
+ "results": [
+ {
+ "name": "flexjobs.com/blog/post/25-virtual-companies-that-thrive-on-remote-work/",
+ "url": "http://www.flexjobs.com/blog/post/25-virtual-companies-that-thrive-on-remote-work/",
+ "views": 52
+ },
+ {
+ "name": "flexjobs.com/HostedJob.aspx?id=132900",
+ "url": "http://www.flexjobs.com/HostedJob.aspx?id=132900",
+ "views": 1
+ },
+ {
+ "name": "flexjobs.com/HostedJob.aspx?id=132898",
+ "url": "http://www.flexjobs.com/HostedJob.aspx?id=132898",
+ "views": 1
+ },
+ {
+ "name": "flexjobs.com/HostedJob.aspx?id=87787",
+ "url": "http://www.flexjobs.com/HostedJob.aspx?id=87787",
+ "views": 1
+ }
+ ]
+ },
+ {
+ "group": "wordpress.tv",
+ "name": "wordpress.tv",
+ "icon": null,
+ "total": 46,
+ "follow_data": null,
+ "results": [
+ {
+ "name": "wordpress.tv",
+ "url": "http://wordpress.tv/",
+ "views": 39
+ },
+ {
+ "name": "wordpress.tv/2014/10/26/matt-mullenweg-state-of-the-word-2014-qa/",
+ "url": "http://wordpress.tv/2014/10/26/matt-mullenweg-state-of-the-word-2014-qa/",
+ "views": 3
+ },
+ {
+ "name": "wordpress.tv/2014/11/05/luke-wroblewski-from-the-front-lines-of-multi-device-web-design/",
+ "url": "http://wordpress.tv/2014/11/05/luke-wroblewski-from-the-front-lines-of-multi-device-web-design/",
+ "views": 1
+ },
+ {
+ "name": "wordpress.tv/2014/11/05/luca-sartoni-growth-tips-for-any-wordpress-site/",
+ "url": "http://wordpress.tv/2014/11/05/luca-sartoni-growth-tips-for-any-wordpress-site/",
+ "views": 1
+ },
+ {
+ "name": "wordpress.tv/2014/11/05/petya-raykovska-translators/",
+ "url": "http://wordpress.tv/2014/11/05/petya-raykovska-translators/",
+ "views": 1
+ },
+ {
+ "name": "wordpress.tv/2014/09/24/jonathan-daggerhart-introduction-to-wordpress-plugin-development/",
+ "url": "http://wordpress.tv/2014/09/24/jonathan-daggerhart-introduction-to-wordpress-plugin-development/",
+ "views": 1
+ }
+ ]
+ },
+ {
+ "group": "twitter.com",
+ "name": "Twitter",
+ "url": "http://twitter.com/",
+ "icon": "https://secure.gravatar.com/blavatar/7905d1c4e12c54933a44d19fcd5f9356?s=48",
+ "total": 34,
+ "follow_data": null,
+ "results": {
+ "views": 34
+ }
+ }
+ ],
+ "other_views": 938,
+ "total_views": 2161
+ }
+ },
+ "period": "day"
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-summary.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-summary.json
new file mode 100644
index 000000000..35198db0e
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-summary.json
@@ -0,0 +1 @@
+{"date":"2014-10-28","period":"day","views":56,"visitors":44,"likes":1,"reblogs":2,"comments":3,"followers":56}
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-tags.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-tags.json
new file mode 100644
index 000000000..b73186923
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-tags.json
@@ -0,0 +1,125 @@
+{
+ "date": "2014-12-16",
+ "tags": [
+ {
+ "tags": [
+ {
+ "type": "category",
+ "name": "Uncategorized",
+ "link": "http://astralbodi.es/category/uncategorized/"
+ }
+ ],
+ "views": 461
+ },
+ {
+ "tags": [
+ {
+ "type": "tag",
+ "name": "apple",
+ "link": "http://astralbodi.es/tag/apple/"
+ }
+ ],
+ "views": 151
+ },
+ {
+ "tags": [
+ {
+ "type": "tag",
+ "name": "ios",
+ "link": "http://astralbodi.es/tag/ios/"
+ }
+ ],
+ "views": 142
+ },
+ {
+ "tags": [
+ {
+ "type": "tag",
+ "name": "howto",
+ "link": "http://astralbodi.es/tag/howto/"
+ }
+ ],
+ "views": 126
+ },
+ {
+ "tags": [
+ {
+ "type": "tag",
+ "name": "macintosh",
+ "link": "http://astralbodi.es/tag/macintosh/"
+ }
+ ],
+ "views": 88
+ },
+ {
+ "tags": [
+ {
+ "type": "tag",
+ "name": "iphone",
+ "link": "http://astralbodi.es/tag/iphone/"
+ }
+ ],
+ "views": 80
+ },
+ {
+ "tags": [
+ {
+ "type": "tag",
+ "name": "core data",
+ "link": "http://astralbodi.es/tag/core-data/"
+ }
+ ],
+ "views": 63
+ },
+ {
+ "tags": [
+ {
+ "type": "tag",
+ "name": "xcode",
+ "link": "http://astralbodi.es/tag/xcode/"
+ }
+ ],
+ "views": 54
+ },
+ {
+ "tags": [
+ {
+ "type": "tag",
+ "name": "unit test",
+ "link": "http://astralbodi.es/tag/unit-test/"
+ },
+ {
+ "type": "tag",
+ "name": "XCTest",
+ "link": "http://astralbodi.es/tag/xctest/"
+ },
+ {
+ "type": "tag",
+ "name": "asynchronous",
+ "link": "http://astralbodi.es/tag/asynchronous/"
+ },
+ {
+ "type": "tag",
+ "name": "testing",
+ "link": "http://astralbodi.es/tag/testing/"
+ }
+ ],
+ "views": 43
+ },
+ {
+ "tags": [
+ {
+ "type": "tag",
+ "name": "networking",
+ "link": "http://astralbodi.es/tag/networking/"
+ },
+ {
+ "type": "tag",
+ "name": "unix",
+ "link": "http://astralbodi.es/tag/unix/"
+ }
+ ],
+ "views": 41
+ }
+ ]
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-top-posts.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-top-posts.json
new file mode 100644
index 000000000..81753bbbb
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-top-posts.json
@@ -0,0 +1,102 @@
+{
+ "date": "2014-11-06",
+ "days": {
+ "2014-11-06": {
+ "postviews": [
+ {
+ "id": 39806,
+ "href": "http://automattic.com/home/",
+ "date": "2011-08-30 21:47:38",
+ "title": "Home",
+ "views": 2420,
+ "type": "page",
+ "video_play": false
+ },
+ {
+ "id": 12,
+ "href": "http://automattic.com/work-with-us/",
+ "date": "2005-12-20 08:18:50",
+ "title": "Work With Us",
+ "views": 724,
+ "type": "page",
+ "video_play": false
+ },
+ {
+ "id": 13,
+ "href": "http://automattic.com/privacy/",
+ "date": "2006-03-24 20:26:35",
+ "title": "Privacy Policy",
+ "views": 683,
+ "type": "page",
+ "video_play": false
+ },
+ {
+ "id": 60,
+ "href": "http://automattic.com/about/",
+ "date": "2005-07-23 17:27:23",
+ "title": "About Us",
+ "views": 350,
+ "type": "page",
+ "video_play": false
+ },
+ {
+ "id": 7,
+ "href": "http://automattic.com/contact/",
+ "date": "2005-07-23 17:34:12",
+ "title": "Contact Us",
+ "views": 139,
+ "type": "page",
+ "video_play": false
+ },
+ {
+ "id": 39251,
+ "href": "http://automattic.com/work-with-us/happiness-engineer/",
+ "date": "2011-08-25 19:35:46",
+ "title": "Happiness Engineer",
+ "views": 136,
+ "type": "page",
+ "video_play": false
+ },
+ {
+ "id": 10,
+ "href": "http://automattic.com/news/",
+ "date": "2005-12-19 15:53:51",
+ "title": "News",
+ "views": 115,
+ "type": "page",
+ "video_play": false
+ },
+ {
+ "id": 5882,
+ "href": "http://automattic.com/wordpress-plugins/",
+ "date": "2010-06-11 19:28:11",
+ "title": "WordPress Plugins",
+ "views": 114,
+ "type": "page",
+ "video_play": false
+ },
+ {
+ "id": 118218,
+ "href": "http://automattic.com/dmca-notice/",
+ "date": "2013-05-02 00:14:00",
+ "title": "Digital Millennium Copyright Act (DMCA) Notice",
+ "views": 109,
+ "type": "page",
+ "video_play": false
+ },
+ {
+ "id": 39254,
+ "href": "http://automattic.com/work-with-us/growth-explorer/",
+ "date": "2011-08-25 19:37:27",
+ "title": "Growth Explorer",
+ "views": 56,
+ "type": "page",
+ "video_play": false
+ }
+ ],
+ "other_views": 535,
+ "total_views": 5381
+ }
+ },
+ "period": "day"
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-video-plays.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-video-plays.json
new file mode 100644
index 000000000..fba3173e1
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-video-plays.json
@@ -0,0 +1,11 @@
+{
+ "date": "2014-12-16",
+ "period": "day",
+ "days": {
+ "2014-12-16": {
+ "plays": [],
+ "other_plays": 0,
+ "total_plays": 0
+ }
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-visits.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-visits.json
new file mode 100644
index 000000000..0ae0d9cb3
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats-visits.json
@@ -0,0 +1,254 @@
+{
+ "date": "2014-11-06",
+ "unit": "day",
+ "fields": [
+ "period",
+ "views",
+ "visitors",
+ "likes",
+ "reblogs",
+ "comments"
+ ],
+ "data": [
+ [
+ "2014-10-08",
+ 7808,
+ 4331,
+ 0,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-09",
+ 7657,
+ 4258,
+ 4,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-10",
+ 6772,
+ 3912,
+ 2,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-11",
+ 5795,
+ 3407,
+ 3,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-12",
+ 5925,
+ 3497,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-13",
+ 9907,
+ 4321,
+ 3,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-14",
+ 10396,
+ 4328,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-15",
+ 8183,
+ 4374,
+ 2,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-16",
+ 8362,
+ 4723,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-17",
+ 7103,
+ 4078,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-18",
+ 5287,
+ 3210,
+ 0,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-19",
+ 5063,
+ 3047,
+ 2,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-20",
+ 6698,
+ 3863,
+ 3,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-21",
+ 7654,
+ 4353,
+ 0,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-22",
+ 6710,
+ 3949,
+ 2,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-23",
+ 7039,
+ 3927,
+ 0,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-24",
+ 6079,
+ 3475,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-25",
+ 5067,
+ 2966,
+ 2,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-26",
+ 6543,
+ 4045,
+ 2,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-27",
+ 8708,
+ 5301,
+ 2,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-28",
+ 8645,
+ 5407,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-29",
+ 8425,
+ 5139,
+ 0,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-30",
+ 8262,
+ 5078,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-10-31",
+ 7257,
+ 4549,
+ 2,
+ 0,
+ 0
+ ],
+ [
+ "2014-11-01",
+ 6703,
+ 4198,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-11-02",
+ 6982,
+ 4439,
+ 3,
+ 0,
+ 0
+ ],
+ [
+ "2014-11-03",
+ 7140,
+ 4047,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-11-04",
+ 6610,
+ 3692,
+ 3,
+ 0,
+ 0
+ ],
+ [
+ "2014-11-05",
+ 6411,
+ 3591,
+ 1,
+ 0,
+ 0
+ ],
+ [
+ "2014-11-06",
+ 5331,
+ 2948,
+ 1,
+ 0,
+ 0
+ ]
+ ]
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats.json
new file mode 100644
index 000000000..98ab89915
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-123456-stats.json
@@ -0,0 +1,187 @@
+{
+ "date": "2015-05-14",
+ "stats": {
+ "visitors_today": 33,
+ "visitors_yesterday": 48,
+ "visitors": 42893,
+ "views_today": 34,
+ "views_yesterday": 64,
+ "views_best_day": "2015-04-04",
+ "views_best_day_total": 3485,
+ "views": 56687,
+ "comments": 205,
+ "posts": 128,
+ "followers_blog": 183,
+ "followers_comments": 12,
+ "comments_per_month": 5,
+ "comments_most_active_recent_day": "2013-05-29 19:47:00",
+ "comments_most_active_time": "16:00",
+ "comments_spam": 153759,
+ "categories": 2,
+ "tags": 176,
+ "shares": 65,
+ "shares_facebook": 43,
+ "shares_twitter": 22,
+ "shares_google-plus-1": 0
+ },
+ "visits": {
+ "unit": "day",
+ "fields": [
+ "period",
+ "views",
+ "visitors"
+ ],
+ "data": [
+ [
+ "2015-04-15",
+ 107,
+ 86
+ ],
+ [
+ "2015-04-16",
+ 103,
+ 77
+ ],
+ [
+ "2015-04-17",
+ 105,
+ 83
+ ],
+ [
+ "2015-04-18",
+ 65,
+ 51
+ ],
+ [
+ "2015-04-19",
+ 47,
+ 44
+ ],
+ [
+ "2015-04-20",
+ 73,
+ 60
+ ],
+ [
+ "2015-04-21",
+ 114,
+ 90
+ ],
+ [
+ "2015-04-22",
+ 194,
+ 169
+ ],
+ [
+ "2015-04-23",
+ 135,
+ 125
+ ],
+ [
+ "2015-04-24",
+ 77,
+ 70
+ ],
+ [
+ "2015-04-25",
+ 36,
+ 32
+ ],
+ [
+ "2015-04-26",
+ 43,
+ 41
+ ],
+ [
+ "2015-04-27",
+ 111,
+ 99
+ ],
+ [
+ "2015-04-28",
+ 95,
+ 82
+ ],
+ [
+ "2015-04-29",
+ 84,
+ 63
+ ],
+ [
+ "2015-04-30",
+ 81,
+ 67
+ ],
+ [
+ "2015-05-01",
+ 44,
+ 41
+ ],
+ [
+ "2015-05-02",
+ 43,
+ 34
+ ],
+ [
+ "2015-05-03",
+ 40,
+ 38
+ ],
+ [
+ "2015-05-04",
+ 72,
+ 57
+ ],
+ [
+ "2015-05-05",
+ 111,
+ 93
+ ],
+ [
+ "2015-05-06",
+ 75,
+ 62
+ ],
+ [
+ "2015-05-07",
+ 62,
+ 60
+ ],
+ [
+ "2015-05-08",
+ 69,
+ 60
+ ],
+ [
+ "2015-05-09",
+ 40,
+ 31
+ ],
+ [
+ "2015-05-10",
+ 34,
+ 30
+ ],
+ [
+ "2015-05-11",
+ 88,
+ 77
+ ],
+ [
+ "2015-05-12",
+ 72,
+ 63
+ ],
+ [
+ "2015-05-13",
+ 64,
+ 48
+ ],
+ [
+ "2015-05-14",
+ 34,
+ 33
+ ]
+ ]
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-clicks.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-clicks.json
new file mode 100644
index 000000000..166be0fed
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-clicks.json
@@ -0,0 +1,65 @@
+{
+ "date": "2014-11-03",
+ "days": {
+ "2014-11-01": {
+ "clicks": [
+ {
+ "icon": null,
+ "url": "http://wp.com/",
+ "name": "wp.com",
+ "views": 3,
+ "children": null
+ },
+ {
+ "icon": null,
+ "url": null,
+ "name": "blog.wordpress.tv",
+ "views": 2,
+ "children": [
+ {
+ "url": "http://blog.wordpress.tv/2014/10/03/build-your-audience-recent-wordcamp-videos-from-experienced-content-creators/",
+ "name": "blog.wordpress.tv/2014/10/03/build-your-audience-recent-wordcamp-videos-from-experienced-content-creators/",
+ "views": 1
+ },
+ {
+ "url": "http://blog.wordpress.tv/2014/10/29/wordcamp-san-francisco-2014-state-of-the-word-keynote/",
+ "name": "blog.wordpress.tv/2014/10/29/wordcamp-san-francisco-2014-state-of-the-word-keynote/",
+ "views": 1
+ }
+ ]
+ },
+ {
+ "icon": "https://secure.gravatar.com/blavatar/c0a70310ea07fb03e415f74916b37b35?s=48",
+ "url": "http://vip.wordpress.com/2014/10/08/why-choose-wordpress-a-government-perspective-now-with-full-transcript/",
+ "name": "vip.wordpress.com/2014/10/08/why-choose-wordpress-a-government-perspective-now-with-full-transcript/",
+ "views": 1,
+ "children": null
+ },
+ {
+ "icon": null,
+ "url": "http://en.blog.wordpress.com/2014/10/15/blogging-201-fall-2014/",
+ "name": "en.blog.wordpress.com/2014/10/15/blogging-201-fall-2014/",
+ "views": 1,
+ "children": null
+ },
+ {
+ "icon": "https://secure.gravatar.com/blavatar/0ec2f14c9e007ba464c230b3ddd98384?s=48",
+ "url": "http://wordpress.org/",
+ "name": "wordpress.org",
+ "views": 1,
+ "children": null
+ },
+ {
+ "icon": "https://secure.gravatar.com/blavatar/2343ec78a04c6ea9d80806345d31fd78?s=48",
+ "url": "http://www.facebook.com/",
+ "name": "Facebook",
+ "views": 1,
+ "children": null
+ }
+ ],
+ "other_clicks": 0,
+ "total_clicks": 9
+ }
+ },
+ "period": "month"
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-followers.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-followers.json
new file mode 100644
index 000000000..69734c382
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-followers.json
@@ -0,0 +1,156 @@
+{
+ "page": 1,
+ "pages": 1132258,
+ "total": 7925800,
+ "total_email": 2930,
+ "total_wpcom": 7925800,
+ "subscribers": [
+ {
+ "avatar": "https://0.gravatar.com/avatar/624b89cb0c8b9136f9629dd7bcab0517?s=64&amp;d=https%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "ritu929",
+ "url": "http://ritu9blog.wordpress.com",
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_comments",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "ritu9blog.wordpress.com",
+ "blog_url": "http://ritu9blog.wordpress.com",
+ "blog_id": 80982396,
+ "site_id": 80982396,
+ "blog_title": "ritu929&#039;s Blog",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "date_subscribed": "2014-12-16T14:53:21+00:00"
+ },
+ {
+ "avatar": "https://1.gravatar.com/avatar/d9ece92eea64b1090108895fea6133c4?s=64&amp;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "sotogiovannysotogiovanny",
+ "url": "http://sotogiovanny.wordpress.com",
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_comments",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "sotogiovanny.wordpress.com",
+ "blog_url": "http://sotogiovanny.wordpress.com",
+ "blog_id": 80982334,
+ "site_id": 80982334,
+ "blog_title": "sotogiovanny",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "date_subscribed": "2014-12-16T14:53:02+00:00"
+ },
+ {
+ "avatar": "https://1.gravatar.com/avatar/7949ad6afe7d0a666427170569ef14c9?s=64&amp;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "zoe12296",
+ "url": "http://zoe12296.wordpress.com",
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_comments",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "zoe12296.wordpress.com",
+ "blog_url": "http://zoe12296.wordpress.com",
+ "blog_id": 80982352,
+ "site_id": 80982352,
+ "blog_title": "zoe12296",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "date_subscribed": "2014-12-16T14:52:57+00:00"
+ },
+ {
+ "avatar": "https://2.gravatar.com/avatar/2c572d6e19015b6db0d55bdf335caf53?s=64&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "oisin1min",
+ "url": "http://oisin18curran.wordpress.com",
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_comments",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "oisin18curran.wordpress.com",
+ "blog_url": "http://oisin18curran.wordpress.com",
+ "blog_id": 80982349,
+ "site_id": 80982349,
+ "blog_title": "oisin18curran",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "date_subscribed": "2014-12-16T14:52:52+00:00"
+ },
+ {
+ "avatar": "https://0.gravatar.com/avatar/f7a40fd8ac387756167d6d36c58213da?s=64&amp;d=https%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "linistle",
+ "url": "http://solitarystory.wordpress.com",
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_comments",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "solitarystory.wordpress.com",
+ "blog_url": "http://solitarystory.wordpress.com",
+ "blog_id": 80982340,
+ "site_id": 80982340,
+ "blog_title": "solitarystory",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "date_subscribed": "2014-12-16T14:52:49+00:00"
+ },
+ {
+ "avatar": "https://1.gravatar.com/avatar/1689bf5175c2aa9f2c13a0d36acc944d?s=64&amp;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "ambxblog",
+ "url": "http://ambxblog.wordpress.com",
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_comments",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "ambxblog.wordpress.com",
+ "blog_url": "http://ambxblog.wordpress.com",
+ "blog_id": 80982342,
+ "site_id": 80982342,
+ "blog_title": "ambxblog",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "date_subscribed": "2014-12-16T14:52:48+00:00"
+ },
+ {
+ "avatar": "https://2.gravatar.com/avatar/b98fab16a514e036f27a6371d5ee3324?s=64&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G",
+ "label": "graphene101010",
+ "url": "http://graphene101010.wordpress.com",
+ "follow_data": {
+ "params": {
+ "stat-source": "stats_comments",
+ "follow-text": "Follow",
+ "following-text": "Following",
+ "following-hover-text": "Unfollow",
+ "blog_domain": "graphene101010.wordpress.com",
+ "blog_url": "http://graphene101010.wordpress.com",
+ "blog_id": 80982314,
+ "site_id": 80982314,
+ "blog_title": "graphene101010",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "date_subscribed": "2014-12-16T14:52:47+00:00"
+ }
+ ]
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-top-posts.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-top-posts.json
new file mode 100644
index 000000000..9b33f044c
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-top-posts.json
@@ -0,0 +1,101 @@
+{
+ "date": "2014-11-04",
+ "days": {
+ "2014-11-04": {
+ "postviews": [
+ {
+ "id": 750,
+ "href": false,
+ "date": "2014-08-06 14:52:11",
+ "title": "Asynchronous unit testing Core Data with Xcode 6",
+ "views": 7,
+ "type": "post",
+ "video_play": false
+ },
+ {
+ "id": 200,
+ "href": "http://astralbodi.es/2012/02/01/resizing-a-uitextview-automatically-with-the-keyboard/",
+ "date": "2012-02-01 09:34:11",
+ "title": "Resizing a UITextView automatically with the keyboard",
+ "views": 4,
+ "type": "post",
+ "video_play": false
+ },
+ {
+ "id": 120,
+ "href": "http://astralbodi.es/2011/03/20/ios-basics-uinavigation-controller-back-button-text/",
+ "date": "2011-03-20 10:16:09",
+ "title": "iOS Basics - UINavigation Controller & Back Button Text",
+ "views": 4,
+ "type": "post",
+ "video_play": false
+ },
+ {
+ "id": 0,
+ "href": "http://astralbodi.es/",
+ "date": null,
+ "title": "Home page / Archives",
+ "views": 2,
+ "type": "post",
+ "video_play": false
+ },
+ {
+ "id": 111,
+ "href": "http://astralbodi.es/2011/02/04/mac-os-x-adding-a-loopback-alias/",
+ "date": "2011-02-04 10:13:33",
+ "title": "Mac OS X - Adding a loopback alias",
+ "views": 2,
+ "type": "post",
+ "video_play": false
+ },
+ {
+ "id": 802,
+ "href": "http://astralbodi.es/2014/10/30/stabby/",
+ "date": "2014-10-30 14:00:38",
+ "title": "Stabby",
+ "views": 2,
+ "type": "post",
+ "video_play": false
+ },
+ {
+ "id": 151,
+ "href": "http://astralbodi.es/2011/07/07/ios-pull-app-version-from-bundle-configuration/",
+ "date": "2011-07-07 08:46:42",
+ "title": "iOS - Pull App Version From Bundle Configuration",
+ "views": 1,
+ "type": "post",
+ "video_play": false
+ },
+ {
+ "id": 725,
+ "href": "http://astralbodi.es/2014/06/05/mac-os-x-10-9-mavericks-calendar-google-sync-problems/",
+ "date": "2014-06-05 10:23:24",
+ "title": "Mac OS X 10.9 Mavericks Calendar + Google Sync Problems",
+ "views": 1,
+ "type": "post",
+ "video_play": false
+ },
+ {
+ "id": 59,
+ "href": "http://astralbodi.es/2009/11/16/xcode-wtf-are-you-doing/",
+ "date": "2009-11-16 09:36:02",
+ "title": "Xcode WTF are you doing?!",
+ "views": 1,
+ "type": "post",
+ "video_play": false
+ },
+ {
+ "id": 149,
+ "href": "http://astralbodi.es/2011/07/05/time-warner-cable-power-snr-acceptable-values/",
+ "date": "2011-07-05 10:20:03",
+ "title": "Time Warner Cable Power / SNR Acceptable Values",
+ "views": 1,
+ "type": "post",
+ "video_play": false
+ }
+ ],
+ "total_views": 25
+ }
+ },
+ "period": "day"
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-video-plays.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-video-plays.json
new file mode 100644
index 000000000..6e8c251f4
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-1-sites-1234567890-stats-video-plays.json
@@ -0,0 +1,18 @@
+{
+ "date": "2014-12-16",
+ "period": "day",
+ "days": {
+ "2014-12-16": {
+ "plays": [
+ {
+ "post_id": 144,
+ "url": "http://maplebaconyummies.wordpress.com/wp-admin/media.php?action=edit&attachment_id=144",
+ "title": "Test Video",
+ "plays": 2
+ }
+ ],
+ "other_plays": 0,
+ "total_plays": 2
+ }
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-2-plans-features.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-2-plans-features.json
new file mode 100644
index 000000000..576eb51bd
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-2-plans-features.json
@@ -0,0 +1,203 @@
+{
+ "originalResponse": [
+ {
+ "product_slug": "free-blog",
+ "title": "WordPress.com Site",
+ "description": "Your own space to create posts and pages with basic customization.",
+ "icon": "",
+ "plans": {
+ "1": true,
+ "1003": true,
+ "1008": true
+ }
+ },
+ {
+ "product_slug": "ecommerce",
+ "title": "eCommerce",
+ "description": "Sell stuff right on your blog with Ecwid and Shopify.",
+ "icon": "",
+ "plans": {
+ "1008": true
+ }
+ },
+ {
+ "product_slug": "custom-domain",
+ "title": "Custom site address",
+ "description": "Make your site easier to find and easier to remember.",
+ "icon": "",
+ "not_part_of_free_trial": true,
+ "plans": {
+ "1003": true,
+ "1008": true
+ }
+ },
+ {
+ "product_slug": "space",
+ "title": "Space",
+ "description": "Increase your available storage space and add the ability to upload audio files.",
+ "icon": "",
+ "plans": {
+ "1": {
+ "title": "Media storage",
+ "description": "Upload up to 3GB of photos, videos, or music.",
+ "icon": ""
+ },
+ "1003": {
+ "title": "Expanded media storage",
+ "description": "Upload up to 13GB of photos, videos, or music.",
+ "icon": ""
+ },
+ "1008": {
+ "title": "Unlimited media storage",
+ "description": "You can upload unlimited photos, videos, or music.",
+ "icon": ""
+ }
+ }
+ },
+ {
+ "product_slug": "no-adverts\/no-adverts.php",
+ "title": "No ads",
+ "description": "WordPress.com ads will not display on your site.",
+ "icon": "",
+ "plans": {
+ "1003": true,
+ "1008": true
+ }
+ },
+ {
+ "product_slug": "custom-design",
+ "title": "Custom fonts, colors, & CSS",
+ "description": "Change your theme's font, colors, and CSS for a unique look",
+ "icon": "",
+ "plans": {
+ "1003": true,
+ "1008": true
+ }
+ },
+ {
+ "product_slug": "videopress",
+ "title": "Video storage & hosting",
+ "description": "Upload and host videos on your site without advertising.",
+ "icon": "",
+ "plans": {
+ "1003": true,
+ "1008": true
+ }
+ },
+ {
+ "product_slug": "premium-themes",
+ "title": "Unlimited Premium Themes",
+ "description": "Exclusive access to our best themes. Try many as you like.",
+ "icon": "",
+ "plans": {
+ "1008": true
+ }
+ },
+ {
+ "product_slug": "google-analytics",
+ "title": "Google Analytics",
+ "description": "Google Analytics is a free service that offers a complementary view of your traffic to our built-in Stats feature.",
+ "icon": "",
+ "plans": {
+ "1008": true
+ }
+ },
+ {
+ "product_slug": "akismet",
+ "title": "Spam protection",
+ "description": "Spam protection",
+ "icon": "",
+ "plans": {
+ "2002": "Akismet Basic",
+ "2000": "Akismet Plus",
+ "2001": "Akismet Unlimited"
+ }
+ },
+ {
+ "product_slug": "vaultpress-backups",
+ "title": "Database backups",
+ "description": "Database backups",
+ "icon": "",
+ "plans": {
+ "2000": "VaultPress Daily",
+ "2001": "VaultPress Real-time"
+ }
+ },
+ {
+ "product_slug": "vaultpress-backup-archive",
+ "title": "Backup archive",
+ "description": "Backup archive",
+ "icon": "",
+ "plans": {
+ "2000": "30 days",
+ "2001": "Full archive"
+ }
+ },
+ {
+ "product_slug": "vaultpress-automated-restores",
+ "title": "Automated Restores",
+ "description": "Automated Restores",
+ "icon": "",
+ "plans": {
+ "2000": true,
+ "2001": true
+ }
+ },
+ {
+ "product_slug": "vaultpress-security-scanning",
+ "title": "Security scanning",
+ "description": "Security scanning",
+ "icon": "",
+ "plans": {
+ "2001": true
+ }
+ },
+ {
+ "product_slug": "polldaddy",
+ "title": "Polls and Ratings",
+ "description": "Polls and Ratings",
+ "icon": "",
+ "plans": {
+ "2001": "PollDaddy Pro"
+ }
+ },
+ {
+ "product_slug": "support",
+ "title": "Support",
+ "description": "For those times when you can't find an answer on our Support site",
+ "icon": "",
+ "plans": {
+ "1": {
+ "title": "Community support",
+ "description": "Find answers to your questions in our community forum.",
+ "icon": ""
+ },
+ "1003": {
+ "title": "Priority support",
+ "description": "Ask our happiness engineers questions anytime you need.",
+ "icon": ""
+ },
+ "1008": {
+ "title": "Live chat support",
+ "description": "Chat live with our happiness engineers questions anytime you need.",
+ "icon": ""
+ },
+ "2002": {
+ "title": "Direct email",
+ "description": "The kind of support we offer for Jetpack Free.",
+ "icon": ""
+ },
+ "2000": {
+ "title": "Expert security support",
+ "description": "The kind of support we offer for Jetpack Premium.",
+ "icon": ""
+ },
+ "2001": {
+ "title": "Priority security support",
+ "description": "The kind of support we offer for Jetpack Business.",
+ "icon": ""
+ }
+ }
+ }
+ ]
+}
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-2-sites-123456-plans.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-2-sites-123456-plans.json
new file mode 100644
index 000000000..35d6e3590
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-2-sites-123456-plans.json
@@ -0,0 +1,191 @@
+{
+ "originalResponse":
+ [
+ {
+ "product_id": 1,
+ "product_name": "WordPress.com Free",
+ "prices": {
+ "USD": 0,
+ "AUD": 0,
+ "CAD": 0,
+ "EUR": 0,
+ "GBP": 0,
+ "JPY": 0
+ },
+ "product_name_short": "Free",
+ "product_slug": "free_plan",
+ "tagline": "Perfect for anyone creating a basic blog or site",
+ "description": "Get a free blog and be on your way to publishing your first post in less than five minutes.",
+ "icon": "https:\/\/s0.wordpress.com\/i\/store\/plan-free.png",
+ "icon_active": "https:\/\/s0.wordpress.com\/i\/store\/plan-free-active.png",
+ "capability": "manage_options",
+ "cost": 0,
+ "apple_sku": "",
+ "android_sku": "",
+ "bill_period": -1,
+ "product_type": "bundle",
+ "available": "yes",
+ "store": 0,
+ "features_highlight": [
+ {
+ "items": [
+ "free-blog",
+ "space",
+ "support"
+ ]
+ }
+ ],
+ "bill_period_label": "for life",
+ "price": "$0",
+ "formatted_price": "$0",
+ "raw_price": 0,
+ "raw_discount": 0,
+ "formatted_discount": "$0"
+ },
+ {
+ "product_id": 1003,
+ "product_name": "WordPress.com Premium",
+ "prices": {
+ "USD": 99,
+ "NZD": 139,
+ "AUD": 129,
+ "CAD": 129,
+ "JPY": 11800,
+ "EUR": 99,
+ "GBP": 85
+ },
+ "product_name_short": "Premium",
+ "product_slug": "value_bundle",
+ "tagline": "Perfect for bloggers, creatives, and other professionals",
+ "description": "Your own domain name, powerful customization options, and lots of space for audio and video.",
+ "icon": "https:\/\/s0.wordpress.com\/i\/store\/plan-premium.png",
+ "icon_active": "https:\/\/s0.wordpress.com\/i\/store\/plan-premium-active.png",
+ "capability": "manage_options",
+ "cost": 99,
+ "apple_sku": "",
+ "android_sku": "",
+ "bill_period": 365,
+ "product_type": "bundle",
+ "available": "yes",
+ "store": 0,
+ "features_highlight": [
+ {
+ "items": [
+ "custom-design",
+ "videopress",
+ "support",
+ "space",
+ "custom-domain",
+ "no-adverts\/no-adverts.php"
+ ]
+ },
+ {
+ "title": "Included with all plans",
+ "items": [
+ "free-blog"
+ ]
+ }
+ ],
+ "width": 500,
+ "height": 250,
+ "multi": 0,
+ "support_document": "bundles",
+ "bundle_product_ids": [
+ 9,
+ 12,
+ 45,
+ 15,
+ 5,
+ 16,
+ 6,
+ 46,
+ 54
+ ],
+ "bill_period_label": "per year",
+ "price": "$99",
+ "formatted_price": "$99",
+ "raw_price": 99,
+ "raw_discount": 0,
+ "formatted_discount": "$0",
+ "current_plan": true,
+ "bundle_subscription_id": "5683566",
+ "expiry": "2017-03-07",
+ "free_trial": false,
+ "user_facing_expiry": "2017-03-04",
+ "subscribed_date": "2016-03-07 08:56:13"
+ },
+ {
+ "product_id": 1008,
+ "product_name": "WordPress.com Business",
+ "prices": {
+ "USD": 299,
+ "NZD": 399,
+ "AUD": 399,
+ "CAD": 389,
+ "JPY": 35800,
+ "EUR": 299,
+ "GBP": 250
+ },
+ "product_name_short": "Business",
+ "product_slug": "business-bundle",
+ "tagline": "Perfect for power users, business websites and blogs",
+ "description": "Everything included with Premium, as well as live chat support, and unlimited access to our premium themes.",
+ "icon": "https:\/\/s0.wordpress.com\/i\/store\/plan-business.png",
+ "icon_active": "https:\/\/s0.wordpress.com\/i\/store\/plan-business-active.png",
+ "capability": "manage_options",
+ "cost": 199,
+ "apple_sku": "",
+ "android_sku": "",
+ "features_highlight": [
+ {
+ "items": [
+ "premium-themes",
+ "space",
+ "support"
+ ]
+ },
+ {
+ "title": "Includes WordPress.com Premium features:",
+ "items": [
+ "custom-design",
+ "videopress",
+ "no-adverts\/no-adverts.php",
+ "custom-domain"
+ ]
+ },
+ {
+ "title": "Included with all plans:",
+ "items": [
+ "free-blog"
+ ]
+ }
+ ],
+ "bill_period": 365,
+ "width": 500,
+ "height": 435,
+ "product_type": "bundle",
+ "available": "yes",
+ "bundle_product_ids": [
+ 12,
+ 45,
+ 15,
+ 5,
+ 48,
+ 50,
+ 49,
+ 16,
+ 6,
+ 46,
+ 54
+ ],
+ "orig_cost": 299,
+ "bill_period_label": "per year",
+ "price": "$199",
+ "formatted_price": "$199",
+ "raw_price": 199,
+ "raw_discount": 100,
+ "formatted_discount": "$100",
+ "can_start_trial": false
+ }
+ ]
+}
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-me.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-me.json
new file mode 100644
index 000000000..bb0369932
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-me.json
@@ -0,0 +1,18 @@
+{
+ "display_name":"taliwutt",
+ "username":"taliwutt",
+ "profile_URL":"http:\/\/en.gravatar.com\/taliwutt",
+ "email":"taliwut@gmail.com",
+ "verified":true,
+ "ID":55434822,
+ "token_site_id":false,
+ "primary_blog":57991476,
+ "avatar_URL":"http:\/\/0.gravatar.com\/avatar\/098a6277aeca89a789a1d3be00db59f8?s=96&d=identicon",
+ "meta":{
+ "links":{
+ "site":"https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/5836086",
+ "help":"https:\/\/public-api.wordpress.com\/rest\/v1\/me\/help",
+ "self":"https:\/\/public-api.wordpress.com\/rest\/v1\/me"
+ }
+ }
+}
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-sites-new.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-sites-new.json
new file mode 100644
index 000000000..196ec18c8
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-sites-new.json
@@ -0,0 +1,9 @@
+{
+ "success": true,
+ "blog_details": {
+ "url": "http:\/\/taliwutt88.wordpress.com\/",
+ "blogid": "63236571",
+ "blogname": "taliwutt88",
+ "xmlrpc": "https:\/\/taliwutt88.wordpress.com\/xmlrpc.php"
+ }
+}
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-sites-new_1.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-sites-new_1.json
new file mode 100644
index 000000000..7ea4fef09
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-sites-new_1.json
@@ -0,0 +1,3 @@
+{
+ "success": true
+}
diff --git a/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-users-new.json b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-users-new.json
new file mode 100644
index 000000000..7ea4fef09
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-public-api-wordpress-com-rest-v1-users-new.json
@@ -0,0 +1,3 @@
+{
+ "success": true
+}
diff --git a/WordPress/src/androidTest/assets/default-wp.deletePost.xml b/WordPress/src/androidTest/assets/default-wp.deletePost.xml
new file mode 100644
index 000000000..e83369471
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.deletePost.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-wp.getComments.json b/WordPress/src/androidTest/assets/default-wp.getComments.json
new file mode 100644
index 000000000..45b36278c
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getComments.json
@@ -0,0 +1,482 @@
+[
+ {
+ "comment_id":"146",
+ "status":"approve",
+ "author_url":"http://google.com",
+ "link":"https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/comment-page-1/#comment-146",
+ "parent":"0",
+ "type":"",
+ "post_id":"296",
+ "author_ip":"88.191.153.166",
+ "content":"Cool",
+ "author":"Renardo",
+ "author_email":"",
+ "date_created_gmt":"Jan 22, 2014 12:46:28 PM",
+ "user_id":"0",
+ "post_title":"The End of Unrecorded Life"
+ },
+ {
+ "comment_id":"145",
+ "status":"hold",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/20/pony-2/comment-page-1/#comment-145",
+ "parent":"139",
+ "type":"",
+ "post_id":"234",
+ "author_ip":"82.236.36.146",
+ "content":"Oki",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Jan 22, 2014 11:39:47 AM",
+ "user_id":"55434822",
+ "post_title":"Privé\u0026nbsp;: Pony"
+ },
+ {
+ "comment_id":"144",
+ "status":"hold",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/20/pony-2/comment-page-1/#comment-144",
+ "parent":"139",
+ "type":"",
+ "post_id":"234",
+ "author_ip":"82.236.36.146",
+ "content":"Ok!",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Jan 22, 2014 11:39:35 AM",
+ "user_id":"55434822",
+ "post_title":"Privé\u0026nbsp;: Pony"
+ },
+ {
+ "comment_id":"143",
+ "status":"hold",
+ "author_url":"http://biais.org",
+ "link":"https://taliwutblog.wordpress.com/2014/01/09/magnifique/comment-page-1/#comment-143",
+ "parent":"0",
+ "type":"",
+ "post_id":"277",
+ "author_ip":"82.236.36.146",
+ "content":"\u003ca href\u003d\"http://google.com\" rel\u003d\"nofollow\"\u003ego to google\u003c/a\u003e",
+ "author":"Maxime",
+ "author_email":"maxime@automattic.com",
+ "date_created_gmt":"Jan 9, 2014 5:55:32 PM",
+ "user_id":"50540106",
+ "post_title":"Magnifique!"
+ },
+ {
+ "comment_id":"142",
+ "status":"approve",
+ "author_url":"http://biais.org",
+ "link":"https://taliwutblog.wordpress.com/2014/01/09/magnifique/comment-page-1/#comment-142",
+ "parent":"0",
+ "type":"",
+ "post_id":"277",
+ "author_ip":"82.236.36.146",
+ "content":"\u003ca href\u003d\"woot.com\" rel\u003d\"nofollow\"\u003ego to woot\u003c/a\u003e",
+ "author":"Maxime",
+ "author_email":"maxime@automattic.com",
+ "date_created_gmt":"Jan 9, 2014 5:52:34 PM",
+ "user_id":"50540106",
+ "post_title":"Magnifique!"
+ },
+ {
+ "comment_id":"141",
+ "status":"approve",
+ "author_url":"http://biais.org",
+ "link":"https://taliwutblog.wordpress.com/2014/01/03/273/comment-page-1/#comment-141",
+ "parent":"0",
+ "type":"",
+ "post_id":"273",
+ "author_ip":"82.236.36.146",
+ "content":"\u003ca href\u003d\"woot.com\" rel\u003d\"nofollow\"\u003ego to woot\u003c/a\u003e",
+ "author":"Maxime",
+ "author_email":"maxime@automattic.com",
+ "date_created_gmt":"Jan 9, 2014 5:50:18 PM",
+ "user_id":"50540106",
+ "post_title":""
+ },
+ {
+ "comment_id":"139",
+ "status":"approve",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/20/pony-2/comment-page-1/#comment-139",
+ "parent":"0",
+ "type":"",
+ "post_id":"234",
+ "author_ip":"82.236.36.146",
+ "content":"ij",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 23, 2013 9:53:29 AM",
+ "user_id":"55434822",
+ "post_title":"Privé\u0026nbsp;: Pony"
+ },
+ {
+ "comment_id":"138",
+ "status":"approve",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/20/pony-2/comment-page-1/#comment-138",
+ "parent":"0",
+ "type":"",
+ "post_id":"234",
+ "author_ip":"82.236.36.146",
+ "content":"Test",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 23, 2013 9:31:31 AM",
+ "user_id":"55434822",
+ "post_title":"Privé\u0026nbsp;: Pony"
+ },
+ {
+ "comment_id":"137",
+ "status":"approve",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-137",
+ "parent":"135",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"Cool",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 20, 2013 11:18:03 AM",
+ "user_id":"55434822",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"136",
+ "status":"approve",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-136",
+ "parent":"134",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"OK!",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 20, 2013 7:42:29 AM",
+ "user_id":"55434822",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"135",
+ "status":"approve",
+ "author_url":"http://taliwuttalot1.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-135",
+ "parent":"0",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"g \u0026amp; h",
+ "author":"taliwuttalot",
+ "author_email":"",
+ "date_created_gmt":"Dec 19, 2013 12:01:06 PM",
+ "user_id":"58499323",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"134",
+ "status":"approve",
+ "author_url":"http://taliwuttalot1.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-134",
+ "parent":"0",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"e \u0026amp; f",
+ "author":"taliwuttalot",
+ "author_email":"taliwut+alot@gmail.com",
+ "date_created_gmt":"Dec 19, 2013 12:00:59 PM",
+ "user_id":"58499323",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"133",
+ "status":"approve",
+ "author_url":"http://taliwuttalot1.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-133",
+ "parent":"0",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"c \u0026amp; d",
+ "author":"taliwuttalot",
+ "author_email":"taliwut+alot@gmail.com",
+ "date_created_gmt":"Dec 19, 2013 11:55:53 AM",
+ "user_id":"58499323",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"132",
+ "status":"hold",
+ "author_url":"http://taliwuttalot1.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-132",
+ "parent":"0",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"a \u0026amp; b",
+ "author":"taliwuttalot",
+ "author_email":"",
+ "date_created_gmt":"Dec 19, 2013 11:55:44 AM",
+ "user_id":"58499323",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"131",
+ "status":"approve",
+ "author_url":"http://taliwuttalot1.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-131",
+ "parent":"0",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"Toi \u0026amp; Moi",
+ "author":"taliwuttalot",
+ "author_email":"taliwut+alot@gmail.com",
+ "date_created_gmt":"Dec 19, 2013 11:48:02 AM",
+ "user_id":"58499323",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"130",
+ "status":"approve",
+ "author_url":"http://taliwuttalot1.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/03/226/comment-page-1/#comment-130",
+ "parent":"0",
+ "type":"",
+ "post_id":"226",
+ "author_ip":"82.236.36.146",
+ "content":"\u0026amp;",
+ "author":"taliwuttalot",
+ "author_email":"taliwut+alot@gmail.com",
+ "date_created_gmt":"Dec 19, 2013 11:47:16 AM",
+ "user_id":"58499323",
+ "post_title":""
+ },
+ {
+ "comment_id":"129",
+ "status":"approve",
+ "author_url":"http://taliwuttalot1.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/03/226/comment-page-1/#comment-129",
+ "parent":"0",
+ "type":"",
+ "post_id":"226",
+ "author_ip":"82.236.36.146",
+ "content":"\u0026amp;\u0026amp; éé",
+ "author":"taliwuttalot",
+ "author_email":"taliwut+alot@gmail.com",
+ "date_created_gmt":"Dec 19, 2013 11:45:36 AM",
+ "user_id":"58499323",
+ "post_title":""
+ },
+ {
+ "comment_id":"128",
+ "status":"approve",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-128",
+ "parent":"127",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"Pouet",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 18, 2013 4:39:17 PM",
+ "user_id":"55434822",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"127",
+ "status":"approve",
+ "author_url":"http://taliwuttalot1.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-127",
+ "parent":"126",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"Hoy",
+ "author":"taliwuttalot",
+ "author_email":"taliwut+alot@gmail.com",
+ "date_created_gmt":"Dec 18, 2013 4:38:41 PM",
+ "user_id":"58499323",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"126",
+ "status":"approve",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-126",
+ "parent":"124",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"Nice",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 18, 2013 4:38:22 PM",
+ "user_id":"55434822",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"125",
+ "status":"approve",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-125",
+ "parent":"124",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"J\u0027aime \u0026amp; j\u0027adore",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 18, 2013 4:27:09 PM",
+ "user_id":"55434822",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"124",
+ "status":"approve",
+ "author_url":"http://taliwuttalot1.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-124",
+ "parent":"0",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"A reblogué ceci sur \u003ca href\u003d\"http://taliwuttalot1.wordpress.com/2013/12/18/cat/\" rel\u003d\"nofollow\"\u003etaliwuttalot1\u003c/a\u003eet a ajout\u0026eacute;:\nAnother",
+ "author":"taliwuttalot",
+ "author_email":"taliwut+alot@gmail.com",
+ "date_created_gmt":"Dec 18, 2013 3:58:09 PM",
+ "user_id":"58499323",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"123",
+ "status":"approve",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-123",
+ "parent":"0",
+ "type":"",
+ "post_id":"228",
+ "author_ip":"82.236.36.146",
+ "content":"\u003cp\u003eA reblogué ceci sur \u003ca href\u003d\"http://ilovecutecats.wordpress.com/2013/12/18/cat/\" rel\u003d\"nofollow\"\u003eI Love Cute Cats\u003c/a\u003eet a ajout\u0026eacute;:\u003c/p\u003e\n\u003cp\u003eCute cat\u003c/p\u003e",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 18, 2013 3:57:49 PM",
+ "user_id":"55434822",
+ "post_title":"Cat"
+ },
+ {
+ "comment_id":"120",
+ "status":"approve",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/10/10/hey-13/comment-page-1/#comment-120",
+ "parent":"89",
+ "type":"",
+ "post_id":"162",
+ "author_ip":"82.236.36.146",
+ "content":"k",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 5, 2013 4:14:39 PM",
+ "user_id":"55434822",
+ "post_title":"Hey 13"
+ },
+ {
+ "comment_id":"119",
+ "status":"hold",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/11/04/daily-prompt-placebo-effect/comment-page-1/#comment-119",
+ "parent":"118",
+ "type":"",
+ "post_id":"212",
+ "author_ip":"82.236.36.146",
+ "content":"oi",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 5, 2013 12:18:26 PM",
+ "user_id":"55434822",
+ "post_title":"Daily Prompt: Placebo Effect"
+ },
+ {
+ "comment_id":"118",
+ "status":"approve",
+ "author_url":"http://apzld",
+ "link":"https://taliwutblog.wordpress.com/2013/11/04/daily-prompt-placebo-effect/comment-page-1/#comment-118",
+ "parent":"0",
+ "type":"",
+ "post_id":"212",
+ "author_ip":"82.236.36.146",
+ "content":"great bike",
+ "author":"azdald",
+ "author_email":"",
+ "date_created_gmt":"Dec 5, 2013 12:15:47 PM",
+ "user_id":"0",
+ "post_title":"Daily Prompt: Placebo Effect"
+ },
+ {
+ "comment_id":"117",
+ "status":"hold",
+ "author_url":"http://zeopfk",
+ "link":"https://taliwutblog.wordpress.com/2013/11/04/hghj/comment-page-1/#comment-117",
+ "parent":"0",
+ "type":"",
+ "post_id":"214",
+ "author_ip":"82.236.36.146",
+ "content":"Very nice mug",
+ "author":"mugman",
+ "author_email":"",
+ "date_created_gmt":"Dec 5, 2013 12:13:53 PM",
+ "user_id":"0",
+ "post_title":"Hghj"
+ },
+ {
+ "comment_id":"116",
+ "status":"hold",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/11/06/test/comment-page-1/#comment-116",
+ "parent":"114",
+ "type":"",
+ "post_id":"216",
+ "author_ip":"82.236.36.146",
+ "content":"Test",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 5, 2013 11:18:00 AM",
+ "user_id":"55434822",
+ "post_title":"Test"
+ },
+ {
+ "comment_id":"115",
+ "status":"hold",
+ "author_url":"http://taliwutblog.wordpress.com",
+ "link":"https://taliwutblog.wordpress.com/2013/11/06/test/comment-page-1/#comment-115",
+ "parent":"114",
+ "type":"",
+ "post_id":"216",
+ "author_ip":"82.236.36.146",
+ "content":"???",
+ "author":"taliwutt",
+ "author_email":"taliwut@gmail.com",
+ "date_created_gmt":"Dec 5, 2013 11:17:29 AM",
+ "user_id":"55434822",
+ "post_title":"Test"
+ },
+ {
+ "comment_id":"114",
+ "status":"approve",
+ "author_url":"http://zeopfk",
+ "link":"https://taliwutblog.wordpress.com/2013/11/06/test/comment-page-1/#comment-114",
+ "parent":"0",
+ "type":"",
+ "post_id":"216",
+ "author_ip":"82.236.36.146",
+ "content":"Ah bah oui...",
+ "author":"zepofkezpf",
+ "author_email":"azdazd@frrfrfzefe.fr",
+ "date_created_gmt":"Dec 5, 2013 11:13:37 AM",
+ "user_id":"0",
+ "post_title":"Test"
+ }
+] \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-wp.getComments.xml b/WordPress/src/androidTest/assets/default-wp.getComments.xml
new file mode 100644
index 000000000..e0cac51e5
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getComments.xml
@@ -0,0 +1,2654 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140210T13:46:27</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>165</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>ouh ouh</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/cute-pony/comment-page-1/#comment-165</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>313</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cute pony</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>ARST</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>arst@srt.ts</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140210T13:45:53</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>164</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>cute</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/another-pony/comment-page-1/#comment-164</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>319</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Another Pony</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>ARST</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>arst@srt.ts</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140210T13:44:51</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>163</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>haha</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/03/your-keyboard-you-ill-stick-with-colemak-2/comment-page-1/#comment-163</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>324</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Your Keyboard &amp;amp; You. I&amp;rsquo;ll Stick With Colemak</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>ARST</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>arst@srt.ts</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140210T13:42:22</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>160</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>hold</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>ioesnrt</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/05/bookreview-bridget-jones-mad-about-the-boy-4/comment-page-1/#comment-160</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>330</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>#BookReview Bridget Jones: Mad About the Boy</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>ARST</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>arst@srt.ts</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140205T09:24:28</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>154</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>152</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>&lt;a href=&quot;google.fr&quot; rel=&quot;nofollow&quot;&gt;test&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/30/the-new-ios-and-android-apps-have-arrived/comment-page-/#comment-154</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>303</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>The New iOS and Android Apps Have Arrived!</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140131T10:31:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>151</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>super</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/30/the-new-ios-and-android-apps-have-arrived/comment-page-1/#comment-151</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>303</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>The New iOS and Android Apps Have Arrived!</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>qws</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>qws@sqws.tp</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140131T10:30:10</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>150</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>cool</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/30/the-new-ios-and-android-apps-have-arrived/comment-page-1/#comment-150</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>303</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>The New iOS and Android Apps Have Arrived!</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>qws</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>qws@sqws.tp</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T12:46:28</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>146</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>Cool</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/comment-page-1/#comment-146</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>296</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>The End of Unrecorded Life</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>Renardo</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://google.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>88.191.153.166</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T11:39:35</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>144</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>139</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>hold</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>Ok!</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/20/pony-2/comment-page-1/#comment-144</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>234</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Privé&amp;nbsp;: Pony</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140109T17:55:32</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>50540106</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>143</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>&lt;a href=&quot;http://google.com&quot; rel=&quot;nofollow&quot;&gt;go to google&lt;/a&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/01/09/magnifique/comment-page-1/#comment-143</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>277</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Magnifique!</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>Maxime</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://biais.org</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>maxime@automattic.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131223T09:53:29</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>139</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>ij</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/20/pony-2/comment-page-1/#comment-139</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>234</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Privé&amp;nbsp;: Pony</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131223T09:31:31</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>138</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>Test</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/20/pony-2/comment-page-1/#comment-138</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>234</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Privé&amp;nbsp;: Pony</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131220T11:18:03</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>137</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>135</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>hold</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>Cool</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-137</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131220T07:42:29</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>136</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>134</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>hold</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>OK!</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-136</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131219T12:01:06</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>58499323</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>135</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>hold</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>g &amp;amp; h</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-135</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwuttalot</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwuttalot1.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131219T12:00:59</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>58499323</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>134</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>e &amp;amp; f</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-134</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwuttalot</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwuttalot1.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut+alot@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131219T11:55:53</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>58499323</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>133</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>c &amp;amp; d</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-133</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwuttalot</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwuttalot1.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut+alot@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131219T11:55:44</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>58499323</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>132</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>hold</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>a &amp;amp; b</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-132</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwuttalot</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwuttalot1.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131219T11:48:02</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>58499323</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>131</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>Toi &amp;amp; Moi</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-131</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwuttalot</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwuttalot1.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut+alot@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131219T11:47:16</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>58499323</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>130</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>&amp;amp;</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/03/226/comment-page-1/#comment-130</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>226</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwuttalot</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwuttalot1.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut+alot@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131218T16:39:17</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>128</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>127</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>Pouet</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-128</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131218T16:38:41</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>58499323</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>127</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>126</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>Hoy</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-127</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwuttalot</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwuttalot1.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut+alot@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131218T16:38:22</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>126</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>124</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>Nice</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-126</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131218T16:27:09</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>125</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>124</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>J'aime &amp;amp; j'adore</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-125</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131218T15:58:09</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>58499323</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>124</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>A reblogué ceci sur &lt;a href=&quot;http://taliwuttalot1.wordpress.com/2013/12/18/cat/&quot; rel=&quot;nofollow&quot;&gt;taliwuttalot1&lt;/a&gt;et a ajout&amp;eacute;:
+ Another</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-124</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwuttalot</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwuttalot1.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut+alot@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131218T15:57:49</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>123</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>&lt;p&gt;A reblogué ceci sur &lt;a href=&quot;http://ilovecutecats.wordpress.com/2013/12/18/cat/&quot; rel=&quot;nofollow&quot;&gt;I Love Cute Cats&lt;/a&gt;et a ajout&amp;eacute;:&lt;/p&gt; &lt;p&gt;Cute cat&lt;/p&gt;</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/12/17/cat/comment-page-1/#comment-123</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>228</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Cat</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131205T16:14:39</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>120</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>89</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>k</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/10/10/hey-13/comment-page-1/#comment-120</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>162</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Hey 13</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131205T12:18:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>119</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>118</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>hold</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>oi</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/11/04/daily-prompt-placebo-effect/comment-page-1/#comment-119</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>212</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Daily Prompt: Placebo Effect</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131205T12:15:47</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>118</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>approve</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>great bike</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/11/04/daily-prompt-placebo-effect/comment-page-1/#comment-118</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>212</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Daily Prompt: Placebo Effect</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>azdald</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://apzld</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131205T12:13:53</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>comment_id</name>
+ <value>
+ <string>117</string>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <string>0</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>hold</string>
+ </value>
+ </member>
+ <member>
+ <name>content</name>
+ <value>
+ <string>Very nice mug</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2013/11/04/hghj/comment-page-1/#comment-117</string>
+ </value>
+ </member>
+ <member>
+ <name>post_id</name>
+ <value>
+ <string>214</string>
+ </value>
+ </member>
+ <member>
+ <name>post_title</name>
+ <value>
+ <string>Hghj</string>
+ </value>
+ </member>
+ <member>
+ <name>author</name>
+ <value>
+ <string>mugman</string>
+ </value>
+ </member>
+ <member>
+ <name>author_url</name>
+ <value>
+ <string>http://zeopfk</string>
+ </value>
+ </member>
+ <member>
+ <name>author_email</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>author_ip</name>
+ <value>
+ <string>82.236.36.146</string>
+ </value>
+ </member>
+ <member>
+ <name>type</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-wp.getMediaLibrary.xml b/WordPress/src/androidTest/assets/default-wp.getMediaLibrary.xml
new file mode 100644
index 000000000..13769ba47
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getMediaLibrary.xml
@@ -0,0 +1,2791 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>318</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T11:51:09</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>319</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/02/wpid-urbanherovantbarreeltje.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-Urbanherovantbarreeltje.JPG</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>2000</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>1497</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2014/02/wpid-urbanherovantbarreeltje.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/02/wpid-urbanherovantbarreeltje.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>315</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T10:20:26</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>316</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/02/wpid-pony1.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-pony.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>1280</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>945</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2014/02/wpid-pony1.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/02/wpid-pony1.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>312</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140203T09:49:13</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>313</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/02/wpid-pony.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-pony.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>1280</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>945</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2014/02/wpid-pony.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/02/wpid-pony.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>304</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140130T19:02:53</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>303</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/01/android26-ios39-promo.png</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>android26-ios39-promo</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>1200</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>800</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2014/01/android26-ios39-promo.png</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/01/android26-ios39-promo.png?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>289</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140122T10:32:04</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>287</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/01/wpid-love-island-1920c3971080-wallpapers-jpg.jpeg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-Love-Island-1920×1080-wallpapers.jpg.jpeg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>990</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>557</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2014/01/wpid-love-island-1920c3971080-wallpapers-jpg.jpeg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/01/wpid-love-island-1920c3971080-wallpapers-jpg.jpeg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>276</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140107T16:31:16</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/01/wpid-storageemulated0download9117-animated_gif-derpy_hooves-mailbox-my_little_pony_friendship_is_magic-tagme.gif</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-storageemulated0Download9117-animated_gif-derpy_hooves-mailbox-my_little_pony_friendship_is_magic-tagme.gif.gif</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>500</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>500</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2014/01/wpid-storageemulated0download9117-animated_gif-derpy_hooves-mailbox-my_little_pony_friendship_is_magic-tagme.gif</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2014/01/wpid-storageemulated0download9117-animated_gif-derpy_hooves-mailbox-my_little_pony_friendship_is_magic-tagme.gif?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>253</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131227T10:56:00</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>254</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-wp-1388141726961.jpeg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string>Mop</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>2000</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>1480</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/12/wpid-wp-1388141726961.jpeg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>250</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131223T15:03:40</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony14.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-pony.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>1280</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>945</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/12/wpid-pony14.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony14.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>249</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131223T15:03:25</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony13.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-pony.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>1280</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>945</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/12/wpid-pony13.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony13.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>248</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131223T14:58:57</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony12.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-pony.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>1280</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>945</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/12/wpid-pony12.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony12.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>247</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131223T14:55:59</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony11.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-pony.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>1280</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>945</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/12/wpid-pony11.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony11.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>246</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131223T14:27:32</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony10.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-pony.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>1280</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>945</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/12/wpid-pony10.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/wpid-pony10.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>223</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131203T21:12:07</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/20131203-221158.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>20131203-221158.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>1200</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>1600</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/12/20131203-221158.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <double>2.8</double>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>1270249457</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>latitude</name>
+ <value>
+ <double>48.865166666667</double>
+ </value>
+ </member>
+ <member>
+ <name>longitude</name>
+ <value>
+ <double>2.3748333333333</double>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/12/20131203-221158.jpg?w=112</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>213</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131104T10:22:14</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>214</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/11/wpid-wp-1383559215850.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>wpid-wp-1383559215850.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>640</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>480</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/11/wpid-wp-1383559215850.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/11/wpid-wp-1383559215850.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>203</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131010T14:27:42</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>179</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/10/20131010-162740.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>20131010-162740.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>2048</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>1536</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/10/20131010-162740.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/10/20131010-162740.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>200</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131010T14:24:54</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>175</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/10/20131010-162454.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>20131010-162454.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>224</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>300</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/10/20131010-162454.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <double>2.4</double>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>1381422290</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <string>4.28</string>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <string>250</string>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <string>0.066666666666667</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/10/20131010-162454.jpg?w=112</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>199</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131010T14:24:46</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>175</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/10/20131010-162446.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>20131010-162446.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>150</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>112</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/10/20131010-162446.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/10/20131010-162446.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>attachment_id</name>
+ <value>
+ <string>188</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20131010T13:42:18</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>0</int>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/10/20131010-154156.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>20131010-154156.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>width</name>
+ <value>
+ <int>2592</int>
+ </value>
+ </member>
+ <member>
+ <name>height</name>
+ <value>
+ <int>1936</int>
+ </value>
+ </member>
+ <member>
+ <name>file</name>
+ <value>
+ <string>/home/wpcom/public_html/wp-content/blogs.dir/ebf/57991476/files/2013/10/20131010-154156.jpg</string>
+ </value>
+ </member>
+ <member>
+ <name>sizes</name>
+ <value>
+ <array>
+ <data>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <double>2.4</double>
+ </value>
+ </member>
+ <member>
+ <name>credit</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>camera</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>caption</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>created_timestamp</name>
+ <value>
+ <int>1360088720</int>
+ </value>
+ </member>
+ <member>
+ <name>copyright</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>focal_length</name>
+ <value>
+ <string>4.28</string>
+ </value>
+ </member>
+ <member>
+ <name>iso</name>
+ <value>
+ <string>800</string>
+ </value>
+ </member>
+ <member>
+ <name>shutter_speed</name>
+ <value>
+ <string>0.066666666666667</string>
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>latitude</name>
+ <value>
+ <double>48.843</double>
+ </value>
+ </member>
+ <member>
+ <name>longitude</name>
+ <value>
+ <double>2.3053333333333</double>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>thumbnail</name>
+ <value>
+ <string>http://taliwutblog.files.wordpress.com/2013/10/20131010-154156.jpg?w=150</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-wp.getOptions.json b/WordPress/src/androidTest/assets/default-wp.getOptions.json
new file mode 100644
index 000000000..674890c41
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getOptions.json
@@ -0,0 +1,32 @@
+{
+ "admin_url": {
+ "desc": "L&rsquo;adresse web de la zone d&rsquo;administration",
+ "readonly": true,
+ "value": "https://tataliwut.wordpress.com/wp-admin/"
+ },
+ "blog_public": {
+ "desc": "Acc\u00e8s aux renseignements confidentiels",
+ "readonly": true,
+ "value": "1"
+ },
+ "home_url": {
+ "desc": "Adresse web du site (URL)",
+ "readonly": true,
+ "value": "http://tataliwut.wordpress.com"
+ },
+ "login_url": {
+ "desc": "Adresse de connexion (URL)",
+ "readonly": true,
+ "value": "https://tataliwut.wordpress.com/wp-login.php"
+ },
+ "post_thumbnail": {
+ "desc": "Miniature d&rsquo;article",
+ "readonly": true,
+ "value": true
+ },
+ "software_version": {
+ "desc": "Software Version",
+ "readonly": true,
+ "value": "3.9-alpha"
+ }
+}
diff --git a/WordPress/src/androidTest/assets/default-wp.getOptions.xml b/WordPress/src/androidTest/assets/default-wp.getOptions.xml
new file mode 100644
index 000000000..254b6d5e6
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getOptions.xml
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <struct>
+ <member>
+ <name>home_url</name>
+ <value>
+ <struct>
+ <member>
+ <name>desc</name>
+ <value>
+ <string>Adresse web du site (URL)</string>
+ </value>
+ </member>
+ <member>
+ <name>readonly</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>http://tataliwut.wordpress.com</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>post_thumbnail</name>
+ <value>
+ <struct>
+ <member>
+ <name>desc</name>
+ <value>
+ <string>Miniature d&amp;rsquo;article</string>
+ </value>
+ </member>
+ <member>
+ <name>readonly</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>software_version</name>
+ <value>
+ <struct>
+ <member>
+ <name>desc</name>
+ <value>
+ <string>Software Version</string>
+ </value>
+ </member>
+ <member>
+ <name>readonly</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>3.8.1</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>login_url</name>
+ <value>
+ <struct>
+ <member>
+ <name>desc</name>
+ <value>
+ <string>Adresse de connexion (URL)</string>
+ </value>
+ </member>
+ <member>
+ <name>readonly</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>https://tataliwut.wordpress.com/wp-login.php</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>admin_url</name>
+ <value>
+ <struct>
+ <member>
+ <name>desc</name>
+ <value>
+ <string>L&amp;rsquo;adresse web de la zone d&amp;rsquo;administration</string>
+ </value>
+ </member>
+ <member>
+ <name>readonly</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>https://tataliwut.wordpress.com/wp-admin/</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ <member>
+ <name>blog_public</name>
+ <value>
+ <struct>
+ <member>
+ <name>desc</name>
+ <value>
+ <string>Accès aux renseignements confidentiels</string>
+ </value>
+ </member>
+ <member>
+ <name>readonly</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-wp.getPostFormats.json b/WordPress/src/androidTest/assets/default-wp.getPostFormats.json
new file mode 100644
index 000000000..97329b917
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getPostFormats.json
@@ -0,0 +1 @@
+{"audio":"Son","standard":"Par défaut","status":"État","gallery":"Galerie","quote":"Citation","link":"Lien","image":"Image","chat":"Discussion","aside":"En passant","video":"Vidéo"}
diff --git a/WordPress/src/androidTest/assets/default-wp.getPostFormats.xml b/WordPress/src/androidTest/assets/default-wp.getPostFormats.xml
new file mode 100644
index 000000000..d20ae61af
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getPostFormats.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <struct>
+ <member>
+ <name>standard</name>
+ <value>
+ <string>Par défaut</string>
+ </value>
+ </member>
+ <member>
+ <name>aside</name>
+ <value>
+ <string>En passant</string>
+ </value>
+ </member>
+ <member>
+ <name>chat</name>
+ <value>
+ <string>Discussion</string>
+ </value>
+ </member>
+ <member>
+ <name>gallery</name>
+ <value>
+ <string>Galerie</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>Lien</string>
+ </value>
+ </member>
+ <member>
+ <name>image</name>
+ <value>
+ <string>Image</string>
+ </value>
+ </member>
+ <member>
+ <name>quote</name>
+ <value>
+ <string>Citation</string>
+ </value>
+ </member>
+ <member>
+ <name>status</name>
+ <value>
+ <string>Statut</string>
+ </value>
+ </member>
+ <member>
+ <name>video</name>
+ <value>
+ <string>Vidéo</string>
+ </value>
+ </member>
+ <member>
+ <name>audio</name>
+ <value>
+ <string>Son</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-wp.getProfile.json b/WordPress/src/androidTest/assets/default-wp.getProfile.json
new file mode 100644
index 000000000..9382d7632
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getProfile.json
@@ -0,0 +1 @@
+{"display_name":"taliwutt","first_name":"","username":"taliwutt","bio":"","nickname":"taliwutt","email":"taliwut@gmail.com","registered":"Sep 17, 2013 11:13:54 AM","roles":["administrator"],"last_name":"","nicename":"taliwutt","user_id":"55434822","url":"http://taliwutblog.wordpress.com"}
diff --git a/WordPress/src/androidTest/assets/default-wp.getProfile.xml b/WordPress/src/androidTest/assets/default-wp.getProfile.xml
new file mode 100644
index 000000000..a3e178909
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getProfile.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <struct>
+ <member>
+ <name>user_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>username</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>first_name</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>last_name</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>registered</name>
+ <value>
+ <dateTime.iso8601>20130917T11:13:54</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>bio</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>email</name>
+ <value>
+ <string>taliwut@gmail.com</string>
+ </value>
+ </member>
+ <member>
+ <name>nickname</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>nicename</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>url</name>
+ <value>
+ <string>http://taliwutblog.wordpress.com</string>
+ </value>
+ </member>
+ <member>
+ <name>display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>roles</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>administrator</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/default-wp.getUsersBlogs.json b/WordPress/src/androidTest/assets/default-wp.getUsersBlogs.json
new file mode 100644
index 000000000..6ef68d55b
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getUsersBlogs.json
@@ -0,0 +1,20 @@
+[{"blogName":"taliwutblog","xmlrpc":"https://taliwutblog.wordpress.com/xmlrpc.php",
+ "blogid":"57991476",
+ "isAdmin":true,
+ "url":"https://taliwutblog.wordpress.com/"
+ },
+ {
+ "blogName":"Empty blog stays empty",
+ "xmlrpc":"https://tataliwut.wordpress.com/xmlrpc.php",
+ "blogid":"59073674",
+ "isAdmin":true,
+ "url":"https://tataliwut.wordpress.com/"
+ },
+ {
+ "blogName":"I Love Cute Cats",
+ "xmlrpc":"https://ilovecutecats.wordpress.com/xmlrpc.php",
+ "blogid":"61784930",
+ "isAdmin":true,
+ "url":"https://ilovecutecats.wordpress.com/"
+ }
+]
diff --git a/WordPress/src/androidTest/assets/default-wp.getUsersBlogs.xml b/WordPress/src/androidTest/assets/default-wp.getUsersBlogs.xml
new file mode 100644
index 000000000..350ca6ce1
--- /dev/null
+++ b/WordPress/src/androidTest/assets/default-wp.getUsersBlogs.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>isAdmin</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>url</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/</string>
+ </value>
+ </member>
+ <member>
+ <name>blogid</name>
+ <value>
+ <string>57991476</string>
+ </value>
+ </member>
+ <member>
+ <name>blogName</name>
+ <value>
+ <string>taliwut &amp;amp; blog</string>
+ </value>
+ </member>
+ <member>
+ <name>xmlrpc</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/xmlrpc.php</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>isAdmin</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>url</name>
+ <value>
+ <string>https://tataliwut.wordpress.com/</string>
+ </value>
+ </member>
+ <member>
+ <name>blogid</name>
+ <value>
+ <string>59073674</string>
+ </value>
+ </member>
+ <member>
+ <name>blogName</name>
+ <value>
+ <string>Empty blog stays empty</string>
+ </value>
+ </member>
+ <member>
+ <name>xmlrpc</name>
+ <value>
+ <string>https://tataliwut.wordpress.com/xmlrpc.php</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ <value>
+ <struct>
+ <member>
+ <name>isAdmin</name>
+ <value>
+ <boolean>1</boolean>
+ </value>
+ </member>
+ <member>
+ <name>url</name>
+ <value>
+ <string>https://ilovecutecats.wordpress.com/</string>
+ </value>
+ </member>
+ <member>
+ <name>blogid</name>
+ <value>
+ <string>61784930</string>
+ </value>
+ </member>
+ <member>
+ <name>blogName</name>
+ <value>
+ <string>I Love Cute Cats</string>
+ </value>
+ </member>
+ <member>
+ <name>xmlrpc</name>
+ <value>
+ <string>https://ilovecutecats.wordpress.com/xmlrpc.php</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/email-exists-public-api-wordpress-com-rest-v1-users-new.json b/WordPress/src/androidTest/assets/email-exists-public-api-wordpress-com-rest-v1-users-new.json
new file mode 100644
index 000000000..3bcd20ab8
--- /dev/null
+++ b/WordPress/src/androidTest/assets/email-exists-public-api-wordpress-com-rest-v1-users-new.json
@@ -0,0 +1,4 @@
+{
+ "error": "email_exists",
+ "message": "Invalid email input"
+}
diff --git a/WordPress/src/androidTest/assets/empty-wp.getProfile.json b/WordPress/src/androidTest/assets/empty-wp.getProfile.json
new file mode 100644
index 000000000..0637a088a
--- /dev/null
+++ b/WordPress/src/androidTest/assets/empty-wp.getProfile.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/empty_tables.sql b/WordPress/src/androidTest/assets/empty_tables.sql
new file mode 100644
index 000000000..7f7ec34b3
--- /dev/null
+++ b/WordPress/src/androidTest/assets/empty_tables.sql
@@ -0,0 +1,16 @@
+PRAGMA foreign_keys=OFF;
+BEGIN TRANSACTION;
+CREATE TABLE android_metadata (locale TEXT);
+INSERT INTO "android_metadata" VALUES('fr_FR');
+CREATE TABLE accounts (id integer primary key autoincrement, url text, blogName text, username text, password text, imagePlacement text, centerThumbnail boolean, fullSizeImage boolean, maxImageWidth text, maxImageWidthId integer, lastCommentId integer, runService boolean, blogId integer, location boolean default false, dotcom_username text, dotcom_password text, api_key text, api_blogid text, dotcomFlag boolean default false, wpVersion text, httpuser text, httppassword text, postFormats text default '', isScaledImage boolean default false, scaledImgWidth integer default 1024, homeURL text default '', blog_options text default '', isAdmin boolean default false);
+
+CREATE TABLE posts (id integer primary key autoincrement, blogID text, postid text, title text default '', dateCreated date, date_created_gmt date, categories text default '', custom_fields text default '', description text default '', link text default '', mt_allow_comments boolean, mt_allow_pings boolean, mt_excerpt text default '', mt_keywords text default '', mt_text_more text default '', permaLink text default '', post_status text default '', userid integer default 0, wp_author_display_name text default '', wp_author_id text default '', wp_password text default '', wp_post_format text default '', wp_slug text default '', mediaPaths text default '', latitude real, longitude real, localDraft boolean default 0, uploaded boolean default 0, isPage boolean default 0, wp_page_parent_id text, wp_page_parent_title text, isLocalChange boolean default 0);
+CREATE TABLE comments (blogID text, postID text, iCommentID integer, author text, comment text, commentDate text, commentDateFormatted text, status text, url text, email text, postTitle text);
+CREATE TABLE cats (id integer primary key autoincrement, blog_id text, wp_id integer, category_name text not null, parent_id integer default 0);
+CREATE TABLE quickpress_shortcuts (id integer primary key autoincrement, accountId text, name text);
+CREATE TABLE media (id integer primary key autoincrement, postID integer not null, filePath text default '', fileName text default '', title text default '', description text default '', caption text default '', horizontalAlignment integer default 0, width integer default 0, height integer default 0, mimeType text default '', featured boolean default false, isVideo boolean default false, isFeaturedInPost boolean default false, fileURL text default '', thumbnailURL text default '', mediaId text default '', blogId text default '', date_created_gmt date, uploadState default '');
+CREATE TABLE themes (_id integer primary key autoincrement, themeId text, name text, description text, screenshotURL text, trendingRank integer default 0, popularityRank integer default 0, launchDate date, previewURL text, blogId text, isCurrent boolean default false, isPremium boolean default false, features text);
+CREATE TABLE notes (id integer primary key, note_id text, message text, type text, raw_note_data text, timestamp integer, placeholder boolean);
+DELETE FROM sqlite_sequence;
+INSERT INTO "sqlite_sequence" VALUES('accounts',3);
+COMMIT;
diff --git a/WordPress/src/androidTest/assets/health-check/health-check-xplat-testcases.json b/WordPress/src/androidTest/assets/health-check/health-check-xplat-testcases.json
new file mode 100644
index 000000000..49cb953e8
--- /dev/null
+++ b/WordPress/src/androidTest/assets/health-check/health-check-xplat-testcases.json
@@ -0,0 +1,229 @@
+{
+ "testcases": [
+ {
+ "comment": "testing empty url",
+ "realm": "URL_CANONICALIZATION",
+ "setup": {
+ "input": {
+ "siteUrl": ""
+ },
+ "output": {
+ "error": {
+ "type": "SITE_URL_CANNOT_BE_EMPTY",
+ "message": "Check that the site URL entered is valid"
+ }
+ }
+ }
+ },
+ {
+ "comment": "testing whitespace url",
+ "realm": "URL_CANONICALIZATION",
+ "setup": {
+ "input": {
+ "siteUrl": " "
+ },
+ "output": {
+ "error": {
+ "type": "SITE_URL_CANNOT_BE_EMPTY",
+ "message": "Check that the site URL entered is valid"
+ }
+ }
+ }
+ },
+ {
+ "comment": "testing null url",
+ "realm": "URL_CANONICALIZATION",
+ "setup": {
+ "input": {
+ "siteUrl": null
+ },
+ "output": {
+ "error": {
+ "type": "SITE_URL_CANNOT_BE_EMPTY",
+ "message": "Check that the site URL entered is valid"
+ }
+ }
+ }
+ },
+ {
+ "comment": "testing padding whitespace",
+ "realm": "URL_CANONICALIZATION",
+ "setup": {
+ "input": {
+ "siteUrl": " \t http://wordpress.com \t "
+ },
+ "output": {
+ "siteUrl": "http://wordpress.com"
+ }
+ }
+ },
+ {
+ "comment": "testing xmlrpc.php missing",
+ "realm": "XMLPRC_DISCOVERY",
+ "setup": {
+ "input": {
+ "serverMock": [
+ {
+ "request": {
+ "method": "GET",
+ "path": "/"
+ },
+ "response": {
+ "statusCode": 404
+ }
+ },
+ {
+ "request": {
+ "method": "GET",
+ "path": "/xmlrpc.php"
+ },
+ "response": {
+ "statusCode": 404
+ }
+ },
+ {
+ "request": {
+ "method": "POST",
+ "path": "/"
+ },
+ "response": {
+ "statusCode": 404
+ }
+ },
+ {
+ "request": {
+ "method": "POST",
+ "path": "/xmlrpc.php"
+ },
+ "response": {
+ "statusCode": 404
+ }
+ }
+ ]
+ },
+ "output": {
+ "error": {
+ "type": "XMLRPC_MISSING",
+ "message": "Couldn't connect to the WordPress site"
+ }
+ }
+ }
+ },
+ {
+ "comment": "testing xmlrpc.php found",
+ "realm": "XMLPRC_DISCOVERY",
+ "setup": {
+ "input": {
+ "serverMock": [
+ {
+ "request": {
+ "method": "POST",
+ "path": "/xmlrpc.php"
+ },
+ "response": {
+ "statusCode": 200,
+ "body": "asset:listMethodsResponse.xml"
+ }
+ }
+ ]
+ },
+ "output": {
+ "xmlrpcEndpoint": "http://mockserver/xmlrpc.php"
+ }
+ }
+ },
+ {
+ "comment": "testing xmlrpc.php discovered after redirect",
+ "realm": "XMLPRC_DISCOVERY",
+ "setup": {
+ "input": {
+ "siteUrl": "http://mockserver/wp",
+ "serverMock": [
+ {
+ "request": {
+ "method": "GET",
+ "path": "/wp"
+ },
+ "response": {
+ "statusCode": 301,
+ "headers": {
+ "Location": "/wpnew/"
+ },
+ "body": "Page has moved!"
+ }
+ },
+ {
+ "request": {
+ "method": "POST",
+ "path": "/wp"
+ },
+ "response": {
+ "statusCode": 307,
+ "headers": {
+ "Location": "/wpnew/"
+ },
+ "body": "Page has moved! POST to new address!"
+ }
+ },
+ {
+ "request": {
+ "method": "POST",
+ "path": "/wp/xmlrpc.php"
+ },
+ "response": {
+ "statusCode": 307,
+ "headers": {
+ "Location": "/wpnew/xmlrpc.php"
+ },
+ "body": "Page has moved! POST to new address!"
+ }
+ },
+ {
+ "request": {
+ "method": "GET",
+ "path": "/wpnew/"
+ },
+ "response": {
+ "statusCode": 200,
+ "body": "asset:index_with_redirect.html"
+ }
+ },
+ {
+ "request": {
+ "method": "GET",
+ "path": "/wpnew/xmlrpc.php?rsd"
+ },
+ "response": {
+ "statusCode": 200,
+ "body": "asset:rsd_with_redirect.xml"
+ }
+ },
+ {
+ "request": {
+ "method": "GET",
+ "path": "/wpnew/xmlrpc.php"
+ },
+ "response": {
+ "statusCode": 405,
+ "body": "XML-RPC server accepts POST requests only."
+ }
+ },
+ {
+ "request": {
+ "method": "POST",
+ "path": "/wpnew/xmlrpc.php"
+ },
+ "response": {
+ "statusCode": 200,
+ "body": "asset:listMethodsResponse.xml"
+ }
+ }
+ ]
+ },
+ "output": {
+ "xmlrpcEndpoint": "http://mockserver/wpnew/xmlrpc.php"
+ }
+ }
+ }
+ ]
+}
diff --git a/WordPress/src/androidTest/assets/health-check/index.html b/WordPress/src/androidTest/assets/health-check/index.html
new file mode 100644
index 000000000..e4c7f314b
--- /dev/null
+++ b/WordPress/src/androidTest/assets/health-check/index.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html lang="en-US" class="no-js">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width">
+ <link rel="profile" href="http://gmpg.org/xfn/11">
+ <link rel="pingback" href="http://mockserver/xmlrpc.php">
+ <!--[if lt IE 9]>
+ <script src="http://mockserver/wp-content/themes/twentyfifteen/js/html5.js"></script>
+ <![endif]-->
+ <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
+ <title>wplogin &#8211; Just another WordPress site</title>
+ <meta name='robots' content='noindex,follow' />
+ <link rel="alternate" type="application/rss+xml" title="wplogin &raquo; Feed" href="http://mockserver/feed/" />
+ <link rel="alternate" type="application/rss+xml" title="wplogin &raquo; Comments Feed" href="http://mockserver/comments/feed/" />
+ <script type="text/javascript">
+ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"https:\/\/mockserver\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.4.2"}};
+ !function(a,b,c){function d(a){var c,d=b.createElement("canvas"),e=d.getContext&&d.getContext("2d"),f=String.fromCharCode;return e&&e.fillText?(e.textBaseline="top",e.font="600 32px Arial","flag"===a?(e.fillText(f(55356,56806,55356,56826),0,0),d.toDataURL().length>3e3):"diversity"===a?(e.fillText(f(55356,57221),0,0),c=e.getImageData(16,16,1,1).data.toString(),e.fillText(f(55356,57221,55356,57343),0,0),c!==e.getImageData(16,16,1,1).data.toString()):("simple"===a?e.fillText(f(55357,56835),0,0):e.fillText(f(55356,57135),0,0),0!==e.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g;c.supports={simple:d("simple"),flag:d("flag"),unicode8:d("unicode8"),diversity:d("diversity")},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&&c.supports.flag&&c.supports.unicode8&&c.supports.diversity||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
+ </script>
+ <style type="text/css">
+ img.wp-smiley,
+ img.emoji {
+ display: inline !important;
+ border: none !important;
+ box-shadow: none !important;
+ height: 1em !important;
+ width: 1em !important;
+ margin: 0 .07em !important;
+ vertical-align: -0.1em !important;
+ background: none !important;
+ padding: 0 !important;
+ }
+ </style>
+ <link rel='stylesheet' id='twentyfifteen-fonts-css' href='https://fonts.googleapis.com/css?family=Noto+Sans%3A400italic%2C700italic%2C400%2C700%7CNoto+Serif%3A400italic%2C700italic%2C400%2C700%7CInconsolata%3A400%2C700&#038;subset=latin%2Clatin-ext' type='text/css' media='all' />
+ <link rel='stylesheet' id='genericons-css' href='http://mockserver/wp-content/themes/twentyfifteen/genericons/genericons.css?ver=3.2' type='text/css' media='all' />
+ <link rel='stylesheet' id='twentyfifteen-style-css' href='http://mockserver/wp-content/themes/twentyfifteen/style.css?ver=4.4.2' type='text/css' media='all' />
+ <!--[if lt IE 9]>
+ <link rel='stylesheet' id='twentyfifteen-ie-css' href='http://mockserver/wp-content/themes/twentyfifteen/css/ie.css?ver=20141010' type='text/css' media='all' />
+ <![endif]-->
+ <!--[if lt IE 8]>
+ <link rel='stylesheet' id='twentyfifteen-ie7-css' href='http://mockserver/wp-content/themes/twentyfifteen/css/ie7.css?ver=20141010' type='text/css' media='all' />
+ <![endif]-->
+ <script type='text/javascript' src='http://mockserver/wp-includes/js/jquery/jquery.js?ver=1.11.3'></script>
+ <script type='text/javascript' src='http://mockserver/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1'></script>
+ <link rel='https://api.w.org/' href='http://mockserver/wp-json/' />
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://mockserver/xmlrpc.php?rsd" />
+ <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://mockserver/wp-includes/wlwmanifest.xml" />
+ <meta name="generator" content="WordPress 4.4.2" />
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
+ <script type='text/javascript' src='http://mockserver/wp-includes/js/tw-sack.min.js?ver=1.6.1'></script>
+</head>
+
+<body class="home blog">
+<div id="page" class="hfeed site">
+ <a class="skip-link screen-reader-text" href="#content">Skip to content</a>
+
+ <div id="sidebar" class="sidebar">
+ <header id="masthead" class="site-header" role="banner">
+ <div class="site-branding">
+ <h1 class="site-title"><a href="http://mockserver/" rel="home">wplogin</a></h1>
+ <p class="site-description">Just another WordPress site</p>
+ <button class="secondary-toggle">Menu and widgets</button>
+ </div><!-- .site-branding -->
+ </header><!-- .site-header -->
+
+ <div id="secondary" class="secondary">
+
+
+
+ <div id="widget-area" class="widget-area" role="complementary">
+ <aside id="search-2" class="widget widget_search"><form role="search" method="get" class="search-form" action="http://mockserver/">
+ <label>
+ <span class="screen-reader-text">Search for:</span>
+ <input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" title="Search for:" />
+ </label>
+ <input type="submit" class="search-submit screen-reader-text" value="Search" />
+ </form></aside> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h2 class="widget-title">Recent Posts</h2> <ul>
+ <li>
+ <a href="http://mockserver/2016/03/03/hello-world/">Hello world!</a>
+ </li>
+ </ul>
+ </aside> <aside id="recent-comments-2" class="widget widget_recent_comments"><h2 class="widget-title">Recent Comments</h2><ul id="recentcomments"><li class="recentcomments"><span class="comment-author-link"><a href='https://wordpress.org/' rel='external nofollow' class='url'>Mr WordPress</a></span> on <a href="http://mockserver/2016/03/03/hello-world/#comment-1">Hello world!</a></li></ul></aside><aside id="archives-2" class="widget widget_archive"><h2 class="widget-title">Archives</h2> <ul>
+ <li><a href='http://mockserver/2016/03/'>March 2016</a></li>
+ </ul>
+ </aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2> <ul>
+ <li class="cat-item cat-item-1"><a href="http://mockserver/category/uncategorized/" >Uncategorized</a>
+ </li>
+ </ul>
+ </aside><aside id="meta-2" class="widget widget_meta"><h2 class="widget-title">Meta</h2> <ul>
+ <li><a href="http://mockserver/wp-login.php">Log in</a></li>
+ <li><a href="http://mockserver/feed/">Entries <abbr title="Really Simple Syndication">RSS</abbr></a></li>
+ <li><a href="http://mockserver/comments/feed/">Comments <abbr title="Really Simple Syndication">RSS</abbr></a></li>
+ <li><a href="https://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.org</a></li> </ul>
+ </aside> </div><!-- .widget-area -->
+
+ </div><!-- .secondary -->
+
+ </div><!-- .sidebar -->
+
+ <div id="content" class="site-content">
+
+ <div id="primary" class="content-area">
+ <main id="main" class="site-main" role="main">
+
+
+
+
+ <article id="post-1" class="post-1 post type-post status-publish format-standard hentry category-uncategorized">
+
+ <header class="entry-header">
+ <h2 class="entry-title"><a href="http://mockserver/2016/03/03/hello-world/" rel="bookmark">Hello world!</a></h2> </header><!-- .entry-header -->
+
+ <div class="entry-content">
+ <p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!</p>
+ </div><!-- .entry-content -->
+
+
+ <footer class="entry-footer">
+ <span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="http://mockserver/2016/03/03/hello-world/" rel="bookmark"><time class="entry-date published updated" datetime="2016-03-03T10:07:52+00:00">March 3, 2016</time></a></span><span class="comments-link"><a href="http://mockserver/2016/03/03/hello-world/#comments">1 Comment<span class="screen-reader-text"> on Hello world!</span></a></span> </footer><!-- .entry-footer -->
+
+ </article><!-- #post-## -->
+
+ </main><!-- .site-main -->
+ </div><!-- .content-area -->
+
+
+ </div><!-- .site-content -->
+
+ <footer id="colophon" class="site-footer" role="contentinfo">
+ <div class="site-info">
+ <a href="https://wordpress.org/">Proudly powered by WordPress</a>
+ </div><!-- .site-info -->
+ </footer><!-- .site-footer -->
+
+</div><!-- .site -->
+
+<script type='text/javascript' src='http://mockserver/wp-content/themes/twentyfifteen/js/skip-link-focus-fix.js?ver=20141010'></script>
+<script type='text/javascript'>
+/* <![CDATA[ */
+var screenReaderText = {"expand":"<span class=\"screen-reader-text\">expand child menu<\/span>","collapse":"<span class=\"screen-reader-text\">collapse child menu<\/span>"};
+/* ]]> */
+</script>
+<script type='text/javascript' src='http://mockserver/wp-content/themes/twentyfifteen/js/functions.js?ver=20150330'></script>
+<script type='text/javascript' src='http://mockserver/wp-includes/js/wp-embed.min.js?ver=4.4.2'></script>
+<script type="text/javascript">
+/* <![CDATA[ */
+jQuery(document).ready( function($) {
+ $("ul.menu").not(":has(li)").closest('div').prev('h3.widget-title').hide();
+});
+/* ]]> */
+</script>
+</body>
+</html>
diff --git a/WordPress/src/androidTest/assets/health-check/index_with_redirect.html b/WordPress/src/androidTest/assets/health-check/index_with_redirect.html
new file mode 100644
index 000000000..7c5ea729e
--- /dev/null
+++ b/WordPress/src/androidTest/assets/health-check/index_with_redirect.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html lang="en-US" class="no-js">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width">
+ <link rel="profile" href="http://gmpg.org/xfn/11">
+ <link rel="pingback" href="http://mockserver/wpnew/xmlrpc.php">
+ <!--[if lt IE 9]>
+ <script src="http://mockserver/wpnew/wp-content/themes/twentyfifteen/js/html5.js"></script>
+ <![endif]-->
+ <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
+ <title>wplogin &#8211; Just another WordPress site</title>
+ <meta name='robots' content='noindex,follow' />
+ <link rel="alternate" type="application/rss+xml" title="wplogin &raquo; Feed" href="http://mockserver/wpnew/feed/" />
+ <link rel="alternate" type="application/rss+xml" title="wplogin &raquo; Comments Feed" href="http://mockserver/wpnew/comments/feed/" />
+ <script type="text/javascript">
+ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"https:\/\/mockserver/api\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.4.2"}};
+ !function(a,b,c){function d(a){var c,d=b.createElement("canvas"),e=d.getContext&&d.getContext("2d"),f=String.fromCharCode;return e&&e.fillText?(e.textBaseline="top",e.font="600 32px Arial","flag"===a?(e.fillText(f(55356,56806,55356,56826),0,0),d.toDataURL().length>3e3):"diversity"===a?(e.fillText(f(55356,57221),0,0),c=e.getImageData(16,16,1,1).data.toString(),e.fillText(f(55356,57221,55356,57343),0,0),c!==e.getImageData(16,16,1,1).data.toString()):("simple"===a?e.fillText(f(55357,56835),0,0):e.fillText(f(55356,57135),0,0),0!==e.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g;c.supports={simple:d("simple"),flag:d("flag"),unicode8:d("unicode8"),diversity:d("diversity")},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&&c.supports.flag&&c.supports.unicode8&&c.supports.diversity||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
+ </script>
+ <style type="text/css">
+ img.wp-smiley,
+ img.emoji {
+ display: inline !important;
+ border: none !important;
+ box-shadow: none !important;
+ height: 1em !important;
+ width: 1em !important;
+ margin: 0 .07em !important;
+ vertical-align: -0.1em !important;
+ background: none !important;
+ padding: 0 !important;
+ }
+ </style>
+ <link rel='stylesheet' id='twentyfifteen-fonts-css' href='https://fonts.googleapis.com/css?family=Noto+Sans%3A400italic%2C700italic%2C400%2C700%7CNoto+Serif%3A400italic%2C700italic%2C400%2C700%7CInconsolata%3A400%2C700&#038;subset=latin%2Clatin-ext' type='text/css' media='all' />
+ <link rel='stylesheet' id='genericons-css' href='http://mockserver/wpnew/wp-content/themes/twentyfifteen/genericons/genericons.css?ver=3.2' type='text/css' media='all' />
+ <link rel='stylesheet' id='twentyfifteen-style-css' href='http://mockserver/wpnew/wp-content/themes/twentyfifteen/style.css?ver=4.4.2' type='text/css' media='all' />
+ <!--[if lt IE 9]>
+ <link rel='stylesheet' id='twentyfifteen-ie-css' href='http://mockserver/wpnew/wp-content/themes/twentyfifteen/css/ie.css?ver=20141010' type='text/css' media='all' />
+ <![endif]-->
+ <!--[if lt IE 8]>
+ <link rel='stylesheet' id='twentyfifteen-ie7-css' href='http://mockserver/wpnew/wp-content/themes/twentyfifteen/css/ie7.css?ver=20141010' type='text/css' media='all' />
+ <![endif]-->
+ <script type='text/javascript' src='http://mockserver/wpnew/wp-includes/js/jquery/jquery.js?ver=1.11.3'></script>
+ <script type='text/javascript' src='http://mockserver/wpnew/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1'></script>
+ <link rel='https://api.w.org/' href='http://mockserver/wpnew/wp-json/' />
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://mockserver/wpnew/xmlrpc.php?rsd" />
+ <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://mockserver/wpnew/wp-includes/wlwmanifest.xml" />
+ <meta name="generator" content="WordPress 4.4.2" />
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
+ <script type='text/javascript' src='http://mockserver/wpnew/wp-includes/js/tw-sack.min.js?ver=1.6.1'></script>
+</head>
+
+<body class="home blog">
+<div id="page" class="hfeed site">
+ <a class="skip-link screen-reader-text" href="#content">Skip to content</a>
+
+ <div id="sidebar" class="sidebar">
+ <header id="masthead" class="site-header" role="banner">
+ <div class="site-branding">
+ <h1 class="site-title"><a href="http://mockserver/wpnew/" rel="home">wplogin</a></h1>
+ <p class="site-description">Just another WordPress site</p>
+ <button class="secondary-toggle">Menu and widgets</button>
+ </div><!-- .site-branding -->
+ </header><!-- .site-header -->
+
+ <div id="secondary" class="secondary">
+
+
+
+ <div id="widget-area" class="widget-area" role="complementary">
+ <aside id="search-2" class="widget widget_search"><form role="search" method="get" class="search-form" action="http://mockserver/wpnew/">
+ <label>
+ <span class="screen-reader-text">Search for:</span>
+ <input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" title="Search for:" />
+ </label>
+ <input type="submit" class="search-submit screen-reader-text" value="Search" />
+ </form></aside> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h2 class="widget-title">Recent Posts</h2> <ul>
+ <li>
+ <a href="http://mockserver/wpnew/2016/03/03/hello-world/">Hello world!</a>
+ </li>
+ </ul>
+ </aside> <aside id="recent-comments-2" class="widget widget_recent_comments"><h2 class="widget-title">Recent Comments</h2><ul id="recentcomments"><li class="recentcomments"><span class="comment-author-link"><a href='https://wordpress.org/' rel='external nofollow' class='url'>Mr WordPress</a></span> on <a href="http://mockserver/wpnew/2016/03/03/hello-world/#comment-1">Hello world!</a></li></ul></aside><aside id="archives-2" class="widget widget_archive"><h2 class="widget-title">Archives</h2> <ul>
+ <li><a href='http://mockserver/wpnew/2016/03/'>March 2016</a></li>
+ </ul>
+ </aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2> <ul>
+ <li class="cat-item cat-item-1"><a href="http://mockserver/wpnew/category/uncategorized/" >Uncategorized</a>
+ </li>
+ </ul>
+ </aside><aside id="meta-2" class="widget widget_meta"><h2 class="widget-title">Meta</h2> <ul>
+ <li><a href="http://mockserver/wpnew/wp-login.php">Log in</a></li>
+ <li><a href="http://mockserver/wpnew/feed/">Entries <abbr title="Really Simple Syndication">RSS</abbr></a></li>
+ <li><a href="http://mockserver/wpnew/comments/feed/">Comments <abbr title="Really Simple Syndication">RSS</abbr></a></li>
+ <li><a href="https://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.org</a></li> </ul>
+ </aside> </div><!-- .widget-area -->
+
+ </div><!-- .secondary -->
+
+ </div><!-- .sidebar -->
+
+ <div id="content" class="site-content">
+
+ <div id="primary" class="content-area">
+ <main id="main" class="site-main" role="main">
+
+
+
+
+ <article id="post-1" class="post-1 post type-post status-publish format-standard hentry category-uncategorized">
+
+ <header class="entry-header">
+ <h2 class="entry-title"><a href="http://mockserver/wpnew/2016/03/03/hello-world/" rel="bookmark">Hello world!</a></h2> </header><!-- .entry-header -->
+
+ <div class="entry-content">
+ <p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!</p>
+ </div><!-- .entry-content -->
+
+
+ <footer class="entry-footer">
+ <span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="http://mockserver/wpnew/2016/03/03/hello-world/" rel="bookmark"><time class="entry-date published updated" datetime="2016-03-03T10:07:52+00:00">March 3, 2016</time></a></span><span class="comments-link"><a href="http://mockserver/wpnew/2016/03/03/hello-world/#comments">1 Comment<span class="screen-reader-text"> on Hello world!</span></a></span> </footer><!-- .entry-footer -->
+
+ </article><!-- #post-## -->
+
+ </main><!-- .site-main -->
+ </div><!-- .content-area -->
+
+
+ </div><!-- .site-content -->
+
+ <footer id="colophon" class="site-footer" role="contentinfo">
+ <div class="site-info">
+ <a href="https://wordpress.org/">Proudly powered by WordPress</a>
+ </div><!-- .site-info -->
+ </footer><!-- .site-footer -->
+
+</div><!-- .site -->
+
+<script type='text/javascript' src='http://mockserver/wpnew/wp-content/themes/twentyfifteen/js/skip-link-focus-fix.js?ver=20141010'></script>
+<script type='text/javascript'>
+/* <![CDATA[ */
+var screenReaderText = {"expand":"<span class=\"screen-reader-text\">expand child menu<\/span>","collapse":"<span class=\"screen-reader-text\">collapse child menu<\/span>"};
+/* ]]> */
+</script>
+<script type='text/javascript' src='http://mockserver/wpnew/wp-content/themes/twentyfifteen/js/functions.js?ver=20150330'></script>
+<script type='text/javascript' src='http://mockserver/wpnew/wp-includes/js/wp-embed.min.js?ver=4.4.2'></script>
+<script type="text/javascript">
+/* <![CDATA[ */
+jQuery(document).ready( function($) {
+ $("ul.menu").not(":has(li)").closest('div').prev('h3.widget-title').hide();
+});
+/* ]]> */
+</script>
+</body>
+</html>
diff --git a/WordPress/src/androidTest/assets/health-check/listMethodsResponse.xml b/WordPress/src/androidTest/assets/health-check/listMethodsResponse.xml
new file mode 100644
index 000000000..d7b363def
--- /dev/null
+++ b/WordPress/src/androidTest/assets/health-check/listMethodsResponse.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <array><data>
+ <value><string>system.multicall</string></value>
+ <value><string>system.listMethods</string></value>
+ <value><string>system.getCapabilities</string></value>
+ <value><string>demo.addTwoNumbers</string></value>
+ <value><string>demo.sayHello</string></value>
+ <value><string>pingback.extensions.getPingbacks</string></value>
+ <value><string>pingback.ping</string></value>
+ <value><string>mt.publishPost</string></value>
+ <value><string>mt.getTrackbackPings</string></value>
+ <value><string>mt.supportedTextFilters</string></value>
+ <value><string>mt.supportedMethods</string></value>
+ <value><string>mt.setPostCategories</string></value>
+ <value><string>mt.getPostCategories</string></value>
+ <value><string>mt.getRecentPostTitles</string></value>
+ <value><string>mt.getCategoryList</string></value>
+ <value><string>metaWeblog.getUsersBlogs</string></value>
+ <value><string>metaWeblog.deletePost</string></value>
+ <value><string>metaWeblog.newMediaObject</string></value>
+ <value><string>metaWeblog.getCategories</string></value>
+ <value><string>metaWeblog.getRecentPosts</string></value>
+ <value><string>metaWeblog.getPost</string></value>
+ <value><string>metaWeblog.editPost</string></value>
+ <value><string>metaWeblog.newPost</string></value>
+ <value><string>blogger.deletePost</string></value>
+ <value><string>blogger.editPost</string></value>
+ <value><string>blogger.newPost</string></value>
+ <value><string>blogger.getRecentPosts</string></value>
+ <value><string>blogger.getPost</string></value>
+ <value><string>blogger.getUserInfo</string></value>
+ <value><string>blogger.getUsersBlogs</string></value>
+ <value><string>wp.restoreRevision</string></value>
+ <value><string>wp.getRevisions</string></value>
+ <value><string>wp.getPostTypes</string></value>
+ <value><string>wp.getPostType</string></value>
+ <value><string>wp.getPostFormats</string></value>
+ <value><string>wp.getMediaLibrary</string></value>
+ <value><string>wp.getMediaItem</string></value>
+ <value><string>wp.getCommentStatusList</string></value>
+ <value><string>wp.newComment</string></value>
+ <value><string>wp.editComment</string></value>
+ <value><string>wp.deleteComment</string></value>
+ <value><string>wp.getComments</string></value>
+ <value><string>wp.getComment</string></value>
+ <value><string>wp.setOptions</string></value>
+ <value><string>wp.getOptions</string></value>
+ <value><string>wp.getPageTemplates</string></value>
+ <value><string>wp.getPageStatusList</string></value>
+ <value><string>wp.getPostStatusList</string></value>
+ <value><string>wp.getCommentCount</string></value>
+ <value><string>wp.deleteFile</string></value>
+ <value><string>wp.uploadFile</string></value>
+ <value><string>wp.suggestCategories</string></value>
+ <value><string>wp.deleteCategory</string></value>
+ <value><string>wp.newCategory</string></value>
+ <value><string>wp.getTags</string></value>
+ <value><string>wp.getCategories</string></value>
+ <value><string>wp.getAuthors</string></value>
+ <value><string>wp.getPageList</string></value>
+ <value><string>wp.editPage</string></value>
+ <value><string>wp.deletePage</string></value>
+ <value><string>wp.newPage</string></value>
+ <value><string>wp.getPages</string></value>
+ <value><string>wp.getPage</string></value>
+ <value><string>wp.editProfile</string></value>
+ <value><string>wp.getProfile</string></value>
+ <value><string>wp.getUsers</string></value>
+ <value><string>wp.getUser</string></value>
+ <value><string>wp.getTaxonomies</string></value>
+ <value><string>wp.getTaxonomy</string></value>
+ <value><string>wp.getTerms</string></value>
+ <value><string>wp.getTerm</string></value>
+ <value><string>wp.deleteTerm</string></value>
+ <value><string>wp.editTerm</string></value>
+ <value><string>wp.newTerm</string></value>
+ <value><string>wp.getPosts</string></value>
+ <value><string>wp.getPost</string></value>
+ <value><string>wp.deletePost</string></value>
+ <value><string>wp.editPost</string></value>
+ <value><string>wp.newPost</string></value>
+ <value><string>wp.getUsersBlogs</string></value>
+ </data></array>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/health-check/rsd.xml b/WordPress/src/androidTest/assets/health-check/rsd.xml
new file mode 100644
index 000000000..3ce327393
--- /dev/null
+++ b/WordPress/src/androidTest/assets/health-check/rsd.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?><rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
+ <service>
+ <engineName>WordPress</engineName>
+ <engineLink>https://wordpress.org/</engineLink>
+ <homePageLink>http://mockserver</homePageLink>
+ <apis>
+ <api name="WordPress" blogID="1" preferred="true" apiLink="http://mockserver/xmlrpc.php" />
+ <api name="Movable Type" blogID="1" preferred="false" apiLink="http://mockserver/xmlrpc.php" />
+ <api name="MetaWeblog" blogID="1" preferred="false" apiLink="http://mockserver/xmlrpc.php" />
+ <api name="Blogger" blogID="1" preferred="false" apiLink="http://mockserver/xmlrpc.php" />
+ <api name="WP-API" blogID="1" preferred="false" apiLink="http://mockserver/wp-json/" />
+ </apis>
+ </service>
+</rsd>
diff --git a/WordPress/src/androidTest/assets/health-check/rsd_with_redirect.xml b/WordPress/src/androidTest/assets/health-check/rsd_with_redirect.xml
new file mode 100644
index 000000000..4de183be4
--- /dev/null
+++ b/WordPress/src/androidTest/assets/health-check/rsd_with_redirect.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?><rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
+ <service>
+ <engineName>WordPress</engineName>
+ <engineLink>https://wordpress.org/</engineLink>
+ <homePageLink>http://mockserver</homePageLink>
+ <apis>
+ <api name="WordPress" blogID="1" preferred="true" apiLink="http://mockserver/wpnew/xmlrpc.php" />
+ <api name="Movable Type" blogID="1" preferred="false" apiLink="http://mockserver/wpnew/xmlrpc.php" />
+ <api name="MetaWeblog" blogID="1" preferred="false" apiLink="http://mockserver/wpnew/xmlrpc.php" />
+ <api name="Blogger" blogID="1" preferred="false" apiLink="http://mockserver/wpnew/xmlrpc.php" />
+ <api name="WP-API" blogID="1" preferred="false" apiLink="http://mockserver/wpnew/wp-json/" />
+ </apis>
+ </service>
+</rsd>
diff --git a/WordPress/src/androidTest/assets/incorrect-password-wp.getOptions.xml b/WordPress/src/androidTest/assets/incorrect-password-wp.getOptions.xml
new file mode 100644
index 000000000..2f0d7a4a3
--- /dev/null
+++ b/WordPress/src/androidTest/assets/incorrect-password-wp.getOptions.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <fault>
+ <value>
+ <struct>
+ <member>
+ <name>faultCode</name>
+ <value>
+ <int>403</int>
+ </value>
+ </member>
+ <member>
+ <name>faultString</name>
+ <value>
+ <string>Incorrect username or password.</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </fault>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/invalid-double-xmlrpc-wp.getMediaLibrary.xml b/WordPress/src/androidTest/assets/invalid-double-xmlrpc-wp.getMediaLibrary.xml
new file mode 100644
index 000000000..ecc0d968d
--- /dev/null
+++ b/WordPress/src/androidTest/assets/invalid-double-xmlrpc-wp.getMediaLibrary.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>metadata</name>
+ <value>
+ <struct>
+ <member>
+ <name>image_meta</name>
+ <value>
+ <struct>
+ <member>
+ <name>aperture</name>
+ <value>
+ <double>2,8</double>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/invalid-integer-xmlrpc-wp.getMediaLibrary.xml b/WordPress/src/androidTest/assets/invalid-integer-xmlrpc-wp.getMediaLibrary.xml
new file mode 100644
index 000000000..ce9fca8be
--- /dev/null
+++ b/WordPress/src/androidTest/assets/invalid-integer-xmlrpc-wp.getMediaLibrary.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>parent</name>
+ <value>
+ <int>arst</int>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/malformed-getusersblog-wp.getUsersBlogs.xml b/WordPress/src/androidTest/assets/malformed-getusersblog-wp.getUsersBlogs.xml
new file mode 100644
index 000000000..36a2aa24d
--- /dev/null
+++ b/WordPress/src/androidTest/assets/malformed-getusersblog-wp.getUsersBlogs.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ I'm a malformed xml file :( \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/malformed-null-postid-metaWeblog.getRecentPosts.xml b/WordPress/src/androidTest/assets/malformed-null-postid-metaWeblog.getRecentPosts.xml
new file mode 100644
index 000000000..dbfdea49c
--- /dev/null
+++ b/WordPress/src/androidTest/assets/malformed-null-postid-metaWeblog.getRecentPosts.xml
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>dateCreated</name>
+ <value>
+ <dateTime.iso8601>20140211T16:04:00</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>userid</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>postid</name>
+ <value>
+ <string>333333</string>
+ </value>
+ </member>
+ <member>
+ <name>description</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>title</name>
+ <value>
+ <string>null postid</string>
+ </value>
+ </member>
+ <member>
+ <name>link</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/11/enft/</string>
+ </value>
+ </member>
+ <member>
+ <name>permaLink</name>
+ <value>
+ <string>https://taliwutblog.wordpress.com/2014/02/11/enft/</string>
+ </value>
+ </member>
+ <member>
+ <name>categories</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <string>Uncategorized</string>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>mt_excerpt</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_text_more</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_more_text</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_comments</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_allow_pings</name>
+ <value>
+ <int>1</int>
+ </value>
+ </member>
+ <member>
+ <name>mt_keywords</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_slug</name>
+ <value>
+ <string>enft</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_password</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ <member>
+ <name>wp_author_id</name>
+ <value>
+ <string>55434822</string>
+ </value>
+ </member>
+ <member>
+ <name>wp_author_display_name</name>
+ <value>
+ <string>taliwutt</string>
+ </value>
+ </member>
+ <member>
+ <name>date_created_gmt</name>
+ <value>
+ <dateTime.iso8601>20140211T16:04:00</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>post_status</name>
+ <value>
+ <string>publish</string>
+ </value>
+ </member>
+ <member>
+ <name>custom_fields</name>
+ <value>
+ <array>
+ <data>
+ <value>
+ <struct>
+ <member>
+ <name>id</name>
+ <value>
+ <string>1411</string>
+ </value>
+ </member>
+ <member>
+ <name>key</name>
+ <value>
+ <string>jabber_published</string>
+ </value>
+ </member>
+ <member>
+ <name>value</name>
+ <value>
+ <string>1392048234</string>
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_format</name>
+ <value>
+ <string>standard</string>
+ </value>
+ </member>
+ <member>
+ <name>date_modified</name>
+ <value>
+ <dateTime.iso8601>20140210T16:04:31</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>date_modified_gmt</name>
+ <value>
+ <dateTime.iso8601>20140210T16:04:31</dateTime.iso8601>
+ </value>
+ </member>
+ <member>
+ <name>wp_post_thumbnail</name>
+ <value>
+ <string />
+ </value>
+ </member>
+ </struct>
+ </value>
+ </data>
+ </array>
+ </value>
+ </param>
+ </params>
+</methodResponse> \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/malformed-software-version-wp.getOptions.json b/WordPress/src/androidTest/assets/malformed-software-version-wp.getOptions.json
new file mode 100644
index 000000000..d7a6cae10
--- /dev/null
+++ b/WordPress/src/androidTest/assets/malformed-software-version-wp.getOptions.json
@@ -0,0 +1,31 @@
+{
+ "admin_url": {
+ "desc": "L&rsquo;adresse web de la zone d&rsquo;administration",
+ "readonly": true,
+ "value": "https://tataliwut.wordpress.com/wp-admin/"
+ },
+ "blog_public": {
+ "desc": "Acc\u00e8s aux renseignements confidentiels",
+ "readonly": true,
+ "value": "1"
+ },
+ "home_url": {
+ "desc": "Adresse web du site (URL)",
+ "readonly": true,
+ "value": "http://tataliwut.wordpress.com"
+ },
+ "login_url": {
+ "desc": "Adresse de connexion (URL)",
+ "readonly": true,
+ "value": "https://tataliwut.wordpress.com/wp-login.php"
+ },
+ "post_thumbnail": {
+ "desc": "Miniature d&rsquo;article",
+ "readonly": true,
+ "value": true
+ },
+ "software_version": {
+ "desc": "Software Version",
+ "readonly": true
+ }
+}
diff --git a/WordPress/src/androidTest/assets/malformed-software-version-wp.getProfile.json b/WordPress/src/androidTest/assets/malformed-software-version-wp.getProfile.json
new file mode 100644
index 000000000..9382d7632
--- /dev/null
+++ b/WordPress/src/androidTest/assets/malformed-software-version-wp.getProfile.json
@@ -0,0 +1 @@
+{"display_name":"taliwutt","first_name":"","username":"taliwutt","bio":"","nickname":"taliwutt","email":"taliwut@gmail.com","registered":"Sep 17, 2013 11:13:54 AM","roles":["administrator"],"last_name":"","nicename":"taliwutt","user_id":"55434822","url":"http://taliwutblog.wordpress.com"}
diff --git a/WordPress/src/androidTest/assets/malformed_category_parent_id.sql b/WordPress/src/androidTest/assets/malformed_category_parent_id.sql
new file mode 100644
index 000000000..aefb9ddaf
--- /dev/null
+++ b/WordPress/src/androidTest/assets/malformed_category_parent_id.sql
@@ -0,0 +1,13 @@
+PRAGMA foreign_keys=OFF;
+BEGIN TRANSACTION;
+CREATE TABLE android_metadata (locale TEXT);
+INSERT INTO "android_metadata" VALUES('en_US');
+CREATE TABLE accounts (id integer primary key autoincrement, url text, blogName text, username text, password text, imagePlacement text, centerThumbnail boolean, fullSizeImage boolean, maxImageWidth text, maxImageWidthId integer, lastCommentId integer, runService boolean, blogId integer, location boolean default false, dotcom_username text, dotcom_password text, api_key text, api_blogid text, dotcomFlag boolean default false, wpVersion text, httpuser text, httppassword text, postFormats text default '', isScaledImage boolean default false, scaledImgWidth integer default 1024, homeURL text default '', blog_options text default '');
+CREATE TABLE eula (id integer primary key autoincrement, read integer not null, interval text, statsdate integer, sound boolean default false, vibrate boolean default false, light boolean default false, tagline text, tagline_flag boolean default false, uuid text, last_blog_id text);
+CREATE TABLE posts (id integer primary key autoincrement, blogID text, postid text, title text default '', dateCreated date, date_created_gmt date, categories text default '', custom_fields text default '', description text default '', link text default '', mt_allow_comments boolean, mt_allow_pings boolean, mt_excerpt text default '', mt_keywords text default '', mt_text_more text default '', permaLink text default '', post_status text default '', userid integer default 0, wp_author_display_name text default '', wp_author_id text default '', wp_password text default '', wp_post_format text default '', wp_slug text default '', mediaPaths text default '', latitude real, longitude real, localDraft boolean default 0, uploaded boolean default 0, isPage boolean default 0, wp_page_parent_id text, wp_page_parent_title text, isLocalChange boolean default 0);
+CREATE TABLE comments (blogID text, postID text, iCommentID integer, author text, comment text, commentDate text, commentDateFormatted text, status text, url text, email text, postTitle text);
+CREATE TABLE cats (id integer primary key autoincrement, blog_id text, wp_id integer, category_name text not null, parent_id integer default 0);
+INSERT INTO cats VALUES(73,'1',78,'Test category - malformed parent', 999);
+CREATE TABLE quickpress_shortcuts (id integer primary key autoincrement, accountId text, name text);
+CREATE TABLE media (id integer primary key autoincrement, postID integer not null, filePath text default '', fileName text default '', title text default '', description text default '', caption text default '', horizontalAlignment integer default 0, width integer default 0, height integer default 0, mimeType text default '', featured boolean default false, isVideo boolean default false, isFeaturedInPost boolean default false);
+COMMIT;
diff --git a/WordPress/src/androidTest/assets/one_category.sql b/WordPress/src/androidTest/assets/one_category.sql
new file mode 100644
index 000000000..fa5becb95
--- /dev/null
+++ b/WordPress/src/androidTest/assets/one_category.sql
@@ -0,0 +1,13 @@
+PRAGMA foreign_keys=OFF;
+BEGIN TRANSACTION;
+CREATE TABLE android_metadata (locale TEXT);
+INSERT INTO "android_metadata" VALUES('en_US');
+CREATE TABLE accounts (id integer primary key autoincrement, url text, blogName text, username text, password text, imagePlacement text, centerThumbnail boolean, fullSizeImage boolean, maxImageWidth text, maxImageWidthId integer, lastCommentId integer, runService boolean, blogId integer, location boolean default false, dotcom_username text, dotcom_password text, api_key text, api_blogid text, dotcomFlag boolean default false, wpVersion text, httpuser text, httppassword text, postFormats text default '', isScaledImage boolean default false, scaledImgWidth integer default 1024, homeURL text default '', blog_options text default '');
+CREATE TABLE eula (id integer primary key autoincrement, read integer not null, interval text, statsdate integer, sound boolean default false, vibrate boolean default false, light boolean default false, tagline text, tagline_flag boolean default false, uuid text, last_blog_id text);
+CREATE TABLE posts (id integer primary key autoincrement, blogID text, postid text, title text default '', dateCreated date, date_created_gmt date, categories text default '', custom_fields text default '', description text default '', link text default '', mt_allow_comments boolean, mt_allow_pings boolean, mt_excerpt text default '', mt_keywords text default '', mt_text_more text default '', permaLink text default '', post_status text default '', userid integer default 0, wp_author_display_name text default '', wp_author_id text default '', wp_password text default '', wp_post_format text default '', wp_slug text default '', mediaPaths text default '', latitude real, longitude real, localDraft boolean default 0, uploaded boolean default 0, isPage boolean default 0, wp_page_parent_id text, wp_page_parent_title text, isLocalChange boolean default 0);
+CREATE TABLE comments (blogID text, postID text, iCommentID integer, author text, comment text, commentDate text, commentDateFormatted text, status text, url text, email text, postTitle text);
+CREATE TABLE cats (id integer primary key autoincrement, blog_id text, wp_id integer, category_name text not null, parent_id integer default 0);
+INSERT INTO cats VALUES(1,'1',1,'test category', 0);
+CREATE TABLE quickpress_shortcuts (id integer primary key autoincrement, accountId text, name text);
+CREATE TABLE media (id integer primary key autoincrement, postID integer not null, filePath text default '', fileName text default '', title text default '', description text default '', caption text default '', horizontalAlignment integer default 0, width integer default 0, height integer default 0, mimeType text default '', featured boolean default false, isVideo boolean default false, isFeaturedInPost boolean default false);
+COMMIT;
diff --git a/WordPress/src/androidTest/assets/password-invalid-public-api-wordpress-com-rest-v1-devices-new.json b/WordPress/src/androidTest/assets/password-invalid-public-api-wordpress-com-rest-v1-devices-new.json
new file mode 100644
index 000000000..2c63c0851
--- /dev/null
+++ b/WordPress/src/androidTest/assets/password-invalid-public-api-wordpress-com-rest-v1-devices-new.json
@@ -0,0 +1,2 @@
+{
+}
diff --git a/WordPress/src/androidTest/assets/password-invalid-public-api-wordpress-com-rest-v1-users-new.json b/WordPress/src/androidTest/assets/password-invalid-public-api-wordpress-com-rest-v1-users-new.json
new file mode 100644
index 000000000..a9810936d
--- /dev/null
+++ b/WordPress/src/androidTest/assets/password-invalid-public-api-wordpress-com-rest-v1-users-new.json
@@ -0,0 +1,4 @@
+{
+ "error": "password_invalid",
+ "message": "Invalid password"
+}
diff --git a/WordPress/src/androidTest/assets/rest-v1-notifications-num_note_items=20.json b/WordPress/src/androidTest/assets/rest-v1-notifications-num_note_items=20.json
new file mode 100644
index 000000000..d006da2c4
--- /dev/null
+++ b/WordPress/src/androidTest/assets/rest-v1-notifications-num_note_items=20.json
@@ -0,0 +1,3453 @@
+{
+ "notes": [{
+ "id": "1004352684",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/google.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">Renardo<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2014\/01\/22\/the-end-of-unrecorded-life\/#comment-146\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">22 jan, 12 &#104; 46<\/a><\/em>",
+ "header_text": "Renardo",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2014\/01\/22\/the-end-of-unrecorded-life\/#comment-146",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/146": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Cool<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2014\/01\/22\/the-end-of-unrecorded-life\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">The End of Unrecorded Life<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/146",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 146,
+ "post_id": 296,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/146",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 146,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/146",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 146,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/146",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 146,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " Renardo vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"The End of Unrecorded Life\"<\/span>",
+ "text": " Renardo vous a r\u00e9pondu sur \"The End of Unrecorded Life\""
+ },
+ "timestamp": "1390394788",
+ "meta": {
+ "ids": {
+ "self": 1004352684,
+ "site": 57991476,
+ "post": 296,
+ "comment": 146,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/1004352684",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/296",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/146",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "985853533",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/mashime.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">Maxime<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2014\/01\/09\/magnifique\/#comment-143\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">09 jan, 17 &#104; 55<\/a><\/em>",
+ "header_text": "Maxime",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2014\/01\/09\/magnifique\/#comment-143",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/143": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/50540106": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "mashime.wordpress.com",
+ "blog_url": "http:\/\/mashime.wordpress.com",
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "blog_title": "mashime",
+ "is_following": true
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p><a href=\"http:\/\/google.com\" rel=\"nofollow\" target=\"_blank\">go to google<\/a><\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2014\/01\/09\/magnifique\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Magnifique!<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/143",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "Approuver et r\u00e9pondre",
+ "comment_id": 143,
+ "post_id": 277,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "approve-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/143",
+ "rest_body": {
+ "status": "approved"
+ },
+ "ajax_arg": "approve",
+ "title_text": "Approuver ce commentaire.",
+ "text": "Approuver",
+ "comment_id": 143,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/143",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 143,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/143",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 143,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-pending\"><\/span> Maxime vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Magnifique!\"<\/span>",
+ "text": " Maxime vous a r\u00e9pondu sur \"Magnifique!\""
+ },
+ "timestamp": "1389290132",
+ "meta": {
+ "ids": {
+ "self": 985853533,
+ "site": 57991476,
+ "post": 277,
+ "comment": 143,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/985853533",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/277",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/143",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "pending",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "985850114",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/mashime.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">Maxime<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2014\/01\/09\/magnifique\/#comment-142\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">09 jan, 17 &#104; 52<\/a><\/em>",
+ "header_text": "Maxime",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2014\/01\/09\/magnifique\/#comment-142",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/142": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/50540106": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "mashime.wordpress.com",
+ "blog_url": "http:\/\/mashime.wordpress.com",
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "blog_title": "mashime",
+ "is_following": true
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p><a href=\"woot.com\" rel=\"nofollow\" target=\"_blank\">go to woot<\/a><\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2014\/01\/09\/magnifique\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Magnifique!<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/142",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 142,
+ "post_id": 277,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/142",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 142,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/142",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 142,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/142",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 142,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " Maxime vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Magnifique!\"<\/span>",
+ "text": " Maxime vous a r\u00e9pondu sur \"Magnifique!\""
+ },
+ "timestamp": "1389289954",
+ "meta": {
+ "ids": {
+ "self": 985850114,
+ "site": 57991476,
+ "post": 277,
+ "comment": 142,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/985850114",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/277",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/142",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "985847451",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/mashime.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">Maxime<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2014\/01\/03\/273\/#comment-141\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">09 jan, 17 &#104; 50<\/a><\/em>",
+ "header_text": "Maxime",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2014\/01\/03\/273\/#comment-141",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/141": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/50540106": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "mashime.wordpress.com",
+ "blog_url": "http:\/\/mashime.wordpress.com",
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "blog_title": "mashime",
+ "is_following": true
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p><a href=\"woot.com\" rel=\"nofollow\" target=\"_blank\">go to woot<\/a><\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2014\/01\/03\/273\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Article sans titre<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/141",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 141,
+ "post_id": 273,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/141",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 141,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/141",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 141,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/141",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 141,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " Maxime vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Article sans titre\"<\/span>",
+ "text": " Maxime vous a r\u00e9pondu sur \"Article sans titre\""
+ },
+ "timestamp": "1389289818",
+ "meta": {
+ "ids": {
+ "self": 985847451,
+ "site": 57991476,
+ "post": 273,
+ "comment": 141,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/985847451",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/273",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/141",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "975758156",
+ "type": "like",
+ "unread": "0",
+ "body": {
+ "template": "single-line-list",
+ "header": "Cette personne aime <a href='http:\/\/taliwutblog.wordpress.com\/2014\/01\/02\/romeo\/' target='_blank' notes-data-click='like_note_post'>votre article<\/a> :",
+ "header_text": "Cette personne aime votre article :",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2014\/01\/02\/romeo\/",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/261": false
+ },
+ "items": [{
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "icon_width": 32,
+ "icon_height": 32,
+ "header": "<a href=\"http:\/\/mashime.wordpress.com\" class=\"wpn-user-blog-link\" target=\"_blank\" notes-data-click=\"like_note_likers_blog\">Maxime<\/a>",
+ "header_text": "Maxime",
+ "header_link": "http:\/\/mashime.wordpress.com",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/50540106": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_liked_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "mashime.wordpress.com",
+ "blog_url": "http:\/\/mashime.wordpress.com",
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "blog_title": "mashime",
+ "is_following": true
+ },
+ "type": "follow"
+ }
+ }],
+ "footer": "",
+ "footer_text": "",
+ "footer_link": "http:\/\/taliwutblog.wordpress.com\/2014\/01\/02\/romeo\/#wpl-likebox"
+ },
+ "subject": {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s1.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-like.png",
+ "html": "Maxime aime votre article <span class=\"wpn-subject-title\">\"Romeo\"<\/span>",
+ "text": "Maxime aime votre article \"Romeo\""
+ },
+ "timestamp": "1388680702",
+ "meta": {
+ "ids": {
+ "self": 975758156,
+ "site": 57991476,
+ "post": 261,
+ "likers": ["50540106"]
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/975758156",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/261",
+ "likes": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/261\/likes\/"
+ }
+ }
+ }, {
+ "id": "975752469",
+ "type": "like",
+ "unread": "0",
+ "body": {
+ "template": "single-line-list",
+ "header": "Cette personne aime <a href='http:\/\/taliwutblog.wordpress.com\/2014\/01\/02\/unicorn\/' target='_blank' notes-data-click='like_note_post'>votre article<\/a> :",
+ "header_text": "Cette personne aime votre article :",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2014\/01\/02\/unicorn\/",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/263": false
+ },
+ "items": [{
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "icon_width": 32,
+ "icon_height": 32,
+ "header": "<a href=\"http:\/\/mashime.wordpress.com\" class=\"wpn-user-blog-link\" target=\"_blank\" notes-data-click=\"like_note_likers_blog\">Maxime<\/a>",
+ "header_text": "Maxime",
+ "header_link": "http:\/\/mashime.wordpress.com",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/50540106": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_liked_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "mashime.wordpress.com",
+ "blog_url": "http:\/\/mashime.wordpress.com",
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "blog_title": "mashime",
+ "is_following": true
+ },
+ "type": "follow"
+ }
+ }],
+ "footer": "",
+ "footer_text": "",
+ "footer_link": "http:\/\/taliwutblog.wordpress.com\/2014\/01\/02\/unicorn\/#wpl-likebox"
+ },
+ "subject": {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s1.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-like.png",
+ "html": "Maxime et une autre personne aiment votre article <span class=\"wpn-subject-title\">\"Unicorn\"<\/span>",
+ "text": "Maxime et une autre personne aiment votre article \"Unicorn\""
+ },
+ "timestamp": "1388680407",
+ "meta": {
+ "ids": {
+ "self": 975752469,
+ "site": 57991476,
+ "post": 263,
+ "likers": ["50540106"]
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/975752469",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/263",
+ "likes": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/263\/likes\/"
+ }
+ }
+ }, {
+ "id": "959824618",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttalot1.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttalot<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-135\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">19 d\u00e9c, 12 &#104; 01<\/a><\/em>",
+ "header_text": "taliwuttalot",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-135",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/135": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58499323": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>g &amp; h<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Cat<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/135",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 135,
+ "post_id": 228,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/135",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 135,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/135",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 135,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/135",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 135,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-replied\"><\/span> taliwuttalot vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Cat\"<\/span>",
+ "text": " taliwuttalot vous a r\u00e9pondu sur \"Cat\""
+ },
+ "timestamp": "1387454466",
+ "meta": {
+ "ids": {
+ "self": 959824618,
+ "site": 57991476,
+ "post": 228,
+ "comment": 135,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/959824618",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/228",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/135",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": true
+ }
+ }, {
+ "id": "959824497",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttalot1.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttalot<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-134\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">19 d\u00e9c, 12 &#104; 00<\/a><\/em>",
+ "header_text": "taliwuttalot",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-134",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/134": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58499323": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>e &amp; f<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Cat<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/134",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 134,
+ "post_id": 228,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/134",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 134,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/134",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 134,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/134",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 134,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-replied\"><\/span> taliwuttalot vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Cat\"<\/span>",
+ "text": " taliwuttalot vous a r\u00e9pondu sur \"Cat\""
+ },
+ "timestamp": "1387454459",
+ "meta": {
+ "ids": {
+ "self": 959824497,
+ "site": 57991476,
+ "post": 228,
+ "comment": 134,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/959824497",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/228",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/134",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": true
+ }
+ }, {
+ "id": "959820013",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttalot1.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttalot<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-133\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">19 d\u00e9c, 11 &#104; 55<\/a><\/em>",
+ "header_text": "taliwuttalot",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-133",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/133": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58499323": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>c &amp; d<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Cat<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/133",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 133,
+ "post_id": 228,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/133",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 133,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/133",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 133,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/133",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 133,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " taliwuttalot vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Cat\"<\/span>",
+ "text": " taliwuttalot vous a r\u00e9pondu sur \"Cat\""
+ },
+ "timestamp": "1387454153",
+ "meta": {
+ "ids": {
+ "self": 959820013,
+ "site": 57991476,
+ "post": 228,
+ "comment": 133,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/959820013",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/228",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/133",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "959819893",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttalot1.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttalot<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-132\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">19 d\u00e9c, 11 &#104; 55<\/a><\/em>",
+ "header_text": "taliwuttalot",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-132",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/132": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58499323": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>a &amp; b<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Cat<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/132",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "Approuver et r\u00e9pondre",
+ "comment_id": 132,
+ "post_id": 228,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "approve-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/132",
+ "rest_body": {
+ "status": "approved"
+ },
+ "ajax_arg": "approve",
+ "title_text": "Approuver ce commentaire.",
+ "text": "Approuver",
+ "comment_id": 132,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/132",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 132,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/132",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 132,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-pending\"><\/span> taliwuttalot vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Cat\"<\/span>",
+ "text": " taliwuttalot vous a r\u00e9pondu sur \"Cat\""
+ },
+ "timestamp": "1387454145",
+ "meta": {
+ "ids": {
+ "self": 959819893,
+ "site": 57991476,
+ "post": 228,
+ "comment": 132,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/959819893",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/228",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/132",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "pending",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "959813370",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttalot1.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttalot<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-131\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">19 d\u00e9c, 11 &#104; 48<\/a><\/em>",
+ "header_text": "taliwuttalot",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-131",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/131": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58499323": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>Toi &amp; Moi<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Cat<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/131",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 131,
+ "post_id": 228,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/131",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 131,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/131",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 131,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/131",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 131,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " taliwuttalot vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Cat\"<\/span>",
+ "text": " taliwuttalot vous a r\u00e9pondu sur \"Cat\""
+ },
+ "timestamp": "1387453682",
+ "meta": {
+ "ids": {
+ "self": 959813370,
+ "site": 57991476,
+ "post": 228,
+ "comment": 131,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/959813370",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/228",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/131",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "959812730",
+ "type": "comment",
+ "unread": "1",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttalot1.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttalot<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/03\/226\/#comment-130\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">19 d\u00e9c, 11 &#104; 47<\/a><\/em>",
+ "header_text": "taliwuttalot",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/03\/226\/#comment-130",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/130": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58499323": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>&amp;<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/03\/226\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Article sans titre<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/130",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 130,
+ "post_id": 226,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/130",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 130,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/130",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 130,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/130",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 130,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " taliwuttalot vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Article sans titre\"<\/span>",
+ "text": " taliwuttalot vous a r\u00e9pondu sur \"Article sans titre\""
+ },
+ "timestamp": "1387453636",
+ "meta": {
+ "ids": {
+ "self": 959812730,
+ "site": 57991476,
+ "post": 226,
+ "comment": 130,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/959812730",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/226",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/130",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "959811251",
+ "type": "comment",
+ "unread": "1",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttalot1.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttalot<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/03\/226\/#comment-129\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">19 d\u00e9c, 11 &#104; 45<\/a><\/em>",
+ "header_text": "taliwuttalot",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/03\/226\/#comment-129",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/129": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58499323": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>&amp;&amp; \u00e9\u00e9<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/03\/226\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Article sans titre<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/129",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 129,
+ "post_id": 226,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/129",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 129,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/129",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 129,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/129",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 129,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " taliwuttalot vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Article sans titre\"<\/span>",
+ "text": " taliwuttalot vous a r\u00e9pondu sur \"Article sans titre\""
+ },
+ "timestamp": "1387453537",
+ "meta": {
+ "ids": {
+ "self": 959811251,
+ "site": 57991476,
+ "post": 226,
+ "comment": 129,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/959811251",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/226",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/129",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "958818021",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "header": "En r\u00e9ponse \u00e0 <a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-126\" target=\"_blank\" notes-data-click=\"comment_note_comment_parent\">votre commentaire<\/a>",
+ "html": "Nice",
+ "header_text": "En r\u00e9ponse \u00e0 votre commentaire",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-126",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/126": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/55434822": false
+ }
+ }, {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttalot1.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttalot<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-127\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">18 d\u00e9c, 16 &#104; 38<\/a><\/em>",
+ "header_text": "taliwuttalot",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#comment-127",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/127": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58499323": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>Hoy<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Cat<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/127",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 127,
+ "post_id": 228,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/127",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 127,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/127",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 127,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/127",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 127,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-replied\"><\/span> taliwuttalot vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Cat\"<\/span>",
+ "text": " taliwuttalot vous a r\u00e9pondu sur \"Cat\""
+ },
+ "timestamp": "1387384721",
+ "meta": {
+ "ids": {
+ "self": 958818021,
+ "site": 57991476,
+ "post": 228,
+ "comment": 127,
+ "comment_parent": 126
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/958818021",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/228",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/127",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/126"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": true
+ }
+ }, {
+ "id": "958770112",
+ "type": "reblog",
+ "unread": "0",
+ "body": {
+ "template": "single-line-list",
+ "header": "These people reblogged <a href='http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/' target='_blank' notes-data-click='reblog_note_post'>your post<\/a>:",
+ "header_text": "These people reblogged your post:",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 32,
+ "icon_height": 32,
+ "header": "<a href=\"http:\/\/taliwuttalot1.wordpress.com\" class=\"wpn-user-blog-link\" target=\"_blank\" notes-data-click=\"reblog_note_rebloggers_blog\">taliwuttalot<\/a>",
+ "action": {
+ "params": {
+ "stat-source": "note_reblog_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ }
+ }, {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/098a6277aeca89a789a1d3be00db59f8?s=256&d=identicon&r=G",
+ "icon_width": 32,
+ "icon_height": 32,
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\" class=\"wpn-user-blog-link\" target=\"_blank\" notes-data-click=\"reblog_note_rebloggers_blog\">taliwutt<\/a>",
+ "action": false
+ }],
+ "footer": "<p>2 reblogs actuellement. Bravo !<\/p>",
+ "footer_text": "2 reblogs actuellement. Bravo !",
+ "footer_link": "http:\/\/taliwutblog.wordpress.com\/2013\/12\/17\/cat\/#wpl-likebox"
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s1.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-reblog.png",
+ "html": "taliwuttalot et taliwutt ont reblogu\u00e9 votre article <span class=\"wpn-subject-title\">\"Cat\"<\/span>",
+ "text": "taliwuttalot et taliwutt ont reblogu\u00e9 votre article \"Cat\""
+ },
+ "timestamp": "1387382290",
+ "meta": {
+ "ids": {
+ "self": 958770112,
+ "site": 57991476,
+ "post": 228,
+ "rebloggers": [55434822, 58499323]
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/958770112",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/228"
+ }
+ }
+ }, {
+ "id": "958722652",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "header": "En r\u00e9ponse \u00e0 <a href=\"http:\/\/taliwuttalot1.wordpress.com\/2013\/11\/29\/renard\/#comment-1\" target=\"_blank\" notes-data-click=\"comment_note_comment_parent\">votre commentaire<\/a>",
+ "html": "J'adore les renards",
+ "header_text": "En r\u00e9ponse \u00e0 votre commentaire",
+ "header_link": "http:\/\/taliwuttalot1.wordpress.com\/2013\/11\/29\/renard\/#comment-1",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/61100702\/comments\/1": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/55434822": false
+ }
+ }, {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttalot1.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttalot<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwuttalot1.wordpress.com\/2013\/11\/29\/renard\/#comment-2\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">18 d\u00e9c, 15 &#104; 17<\/a><\/em>",
+ "header_text": "taliwuttalot",
+ "header_link": "http:\/\/taliwuttalot1.wordpress.com\/2013\/11\/29\/renard\/#comment-2",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/61100702\/comments\/2": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58499323": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "taliwuttalot1.wordpress.com",
+ "blog_url": "http:\/\/taliwuttalot1.wordpress.com",
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "blog_title": "taliwuttalot1",
+ "is_following": false
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>Je n&rsquo;aime pas les poneys.<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwuttalot1.wordpress.com\/2013\/11\/29\/renard\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Renard<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/61100702\/comments\/2",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 2,
+ "post_id": 2,
+ "blog_id": 61100702,
+ "site_id": 61100702,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/35454b2c01cf2670fab815e1c91eafa8?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " taliwuttalot vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Renard\"<\/span>",
+ "text": " taliwuttalot vous a r\u00e9pondu sur \"Renard\""
+ },
+ "timestamp": "1387379829",
+ "meta": {
+ "ids": {
+ "self": 958722652,
+ "site": 61100702,
+ "post": 2,
+ "comment": 2,
+ "comment_parent": 1
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/958722652",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/61100702",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/61100702\/posts\/2",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/61100702\/comments\/2",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/61100702\/comments\/1"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "958477392",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/mashime.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">Maxime<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/mashime.wordpress.com\/2013\/12\/09\/hello\/#comment-9\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">18 d\u00e9c, 11 &#104; 02<\/a><\/em>",
+ "header_text": "Maxime",
+ "header_link": "http:\/\/mashime.wordpress.com\/2013\/12\/09\/hello\/#comment-9",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824\/comments\/9": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/50540106": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "mashime.wordpress.com",
+ "blog_url": "http:\/\/mashime.wordpress.com",
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "blog_title": "mashime",
+ "is_following": true
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>Thank you!<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/mashime.wordpress.com\/2013\/12\/09\/hello\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">hello<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/52673824\/comments\/9",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 9,
+ "post_id": 12,
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-replied\"><\/span> Maxime commented on <span class=\"wpn-subject-title\">\"hello\"<\/span>",
+ "text": " Maxime commented on \"hello\""
+ },
+ "timestamp": "1387364578",
+ "meta": {
+ "ids": {
+ "self": 958477392,
+ "site": 52673824,
+ "post": 12,
+ "comment": 9,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/958477392",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824\/posts\/12",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824\/comments\/9",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": true
+ }
+ }, {
+ "id": "957454508",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "header": "En r\u00e9ponse \u00e0 <a href=\"http:\/\/mashime.wordpress.com\/2013\/09\/25\/tyh\/#comment-6\" target=\"_blank\" notes-data-click=\"comment_note_comment_parent\">votre commentaire<\/a>",
+ "html": "Reblogged this on taliwutblog and commented: \nCute cat!",
+ "header_text": "En r\u00e9ponse \u00e0 votre commentaire",
+ "header_link": "http:\/\/mashime.wordpress.com\/2013\/09\/25\/tyh\/#comment-6",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824\/comments\/6": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/55434822": false
+ }
+ }, {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/mashime.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">Maxime<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/mashime.wordpress.com\/2013\/09\/25\/tyh\/#comment-7\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">17 d\u00e9c, 15 &#104; 29<\/a><\/em>",
+ "header_text": "Maxime",
+ "header_link": "http:\/\/mashime.wordpress.com\/2013\/09\/25\/tyh\/#comment-7",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824\/comments\/7": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/50540106": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_commented_post",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "mashime.wordpress.com",
+ "blog_url": "http:\/\/mashime.wordpress.com",
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "blog_title": "mashime",
+ "is_following": true
+ },
+ "type": "follow"
+ },
+ "html": "<div class=\"wpn-comment\"><p>thanks!<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/mashime.wordpress.com\/2013\/09\/25\/tyh\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Cat<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/52673824\/comments\/7",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 7,
+ "post_id": 8,
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " Maxime vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Cat\"<\/span>",
+ "text": " Maxime vous a r\u00e9pondu sur \"Cat\""
+ },
+ "timestamp": "1387294144",
+ "meta": {
+ "ids": {
+ "self": 957454508,
+ "site": 52673824,
+ "post": 8,
+ "comment": 7,
+ "comment_parent": 6
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/957454508",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824\/posts\/8",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824\/comments\/7",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824\/comments\/6"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "955039955",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/1.gravatar.com\/avatar\/499913033b0478a2f6018fe925efcef6?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/taliwuttnoblog.wordpress.com\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">taliwuttnoblog<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/17\/hello\/#comment-121\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">15 d\u00e9c, 18 &#104; 45<\/a><\/em>",
+ "header_text": "taliwuttnoblog",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/10\/17\/hello\/#comment-121",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/121": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/58252902": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Hey!<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/17\/hello\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Hello<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/121",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "Approuver et r\u00e9pondre",
+ "comment_id": 121,
+ "post_id": 209,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "approve-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/121",
+ "rest_body": {
+ "status": "approved"
+ },
+ "ajax_arg": "approve",
+ "title_text": "Approuver ce commentaire.",
+ "text": "Approuver",
+ "comment_id": 121,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/121",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 121,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/121",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 121,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/499913033b0478a2f6018fe925efcef6?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-pending\"><\/span> taliwuttnoblog vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Hello\"<\/span>",
+ "text": " taliwuttnoblog vous a r\u00e9pondu sur \"Hello\""
+ },
+ "timestamp": "1387133152",
+ "meta": {
+ "ids": {
+ "self": 955039955,
+ "site": 57991476,
+ "post": 209,
+ "comment": 121,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/955039955",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/209",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/121",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "pending",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "845858845",
+ "type": "follow",
+ "unread": "0",
+ "body": {
+ "template": "single-line-list",
+ "header": "Ces personnes suivent <a href='http:\/\/taliwutblog.wordpress.com' title='taliwutblog (http:\/\/taliwutblog.wordpress.com)' target='_blank' notes-data-click='follow_note_blog'>votre blog<\/a>\u00a0:",
+ "header_text": "Ces personnes suivent votre blog\u00a0:",
+ "header_link": "http:\/\/taliwutblog.wordpress.com",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476": false
+ },
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/f799c5ce011617592ec5aec631aa3a49?s=256&d=identicon",
+ "icon_width": 32,
+ "icon_height": 32,
+ "header": "<a href=\"http:\/\/tanydigraphicresources.wordpress.com\" class=\"wpn-user-blog-link\" target=\"_blank\" notes-data-click=\"follow_note_followers_blog\">tanydi<\/a>",
+ "header_text": "tanydi",
+ "header_link": "http:\/\/tanydigraphicresources.wordpress.com",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/26783616": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/41747324": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_followed",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "tanydigraphicresources.wordpress.com",
+ "blog_url": "http:\/\/tanydigraphicresources.wordpress.com",
+ "blog_id": 41747324,
+ "site_id": 41747324,
+ "blog_title": "TanyDi Graphic Resources",
+ "is_following": false
+ },
+ "type": "follow"
+ }
+ }, {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/397f1451ec81cf663d1f0c7ecd63f855?s=256&d=identicon",
+ "icon_width": 32,
+ "icon_height": 32,
+ "header": "<a href=\"http:\/\/imagesprovence.com\" class=\"wpn-user-blog-link\" target=\"_blank\" notes-data-click=\"follow_note_followers_blog\">imagesprovence<\/a>",
+ "header_text": "imagesprovence",
+ "header_link": "http:\/\/imagesprovence.com",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/17042859": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/16431677": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_followed",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "imagesprovence.wordpress.com",
+ "blog_url": "http:\/\/imagesprovence.wordpress.com",
+ "blog_id": 16431677,
+ "site_id": 16431677,
+ "blog_title": "Images Provence \u00ae",
+ "is_following": false
+ },
+ "type": "follow"
+ }
+ }, {
+ "icon": "https:\/\/1.gravatar.com\/avatar\/d4eb59f69d63e5ca6d54ae410b256bb0?s=256&d=identicon",
+ "icon_width": 32,
+ "icon_height": 32,
+ "header": "<a href=\"http:\/\/mashime.wordpress.com\" class=\"wpn-user-blog-link\" target=\"_blank\" notes-data-click=\"follow_note_followers_blog\">Maxime<\/a>",
+ "header_text": "Maxime",
+ "header_link": "http:\/\/mashime.wordpress.com",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/users\/50540106": false,
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/52673824": false
+ },
+ "action": {
+ "params": {
+ "stat-source": "note_followed",
+ "follow-text": "Suivre",
+ "following-text": "Abonn\u00e9",
+ "following-hover-text": "Ne plus suivre",
+ "blog_domain": "mashime.wordpress.com",
+ "blog_url": "http:\/\/mashime.wordpress.com",
+ "blog_id": 52673824,
+ "site_id": 52673824,
+ "blog_title": "mashime",
+ "is_following": true
+ },
+ "type": "follow"
+ }
+ }],
+ "footer": "<p><a href='https:\/\/fr.wordpress.com\/my-stats\/?blog=57991476&#038;blog_subscribers' target=\"_blank\" notes-data-click=\"follow_note_view_all\" alt='Followers of 'taliwutblog''>View all followers<\/a><\/p>",
+ "footer_text": "View all followers",
+ "footer_link": "https:\/\/fr.wordpress.com\/my-stats\/?blog=57991476&#038;blog_subscribers"
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/f799c5ce011617592ec5aec631aa3a49?s=256&d=identicon",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-follow.png",
+ "html": "tanydi et imagesprovence et une autre personne suivent votre blog <span class=\"wpn-subject-title\">\"taliwutblog\"<\/span>",
+ "text": "tanydi et imagesprovence et une autre personne suivent votre blog \"taliwutblog\""
+ },
+ "timestamp": "1386345092",
+ "meta": {
+ "ids": {
+ "self": 845858845,
+ "site": 57991476,
+ "follows": [26783616, 17042859, 50540106]
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/845858845",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "follows": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/follows\/"
+ }
+ }
+ }, {
+ "id": "941311229",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/apzld\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">azdald<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/04\/daily-prompt-placebo-effect\/#comment-118\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">05 d\u00e9c, 12 &#104; 15<\/a><\/em>",
+ "header_text": "azdald",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/11\/04\/daily-prompt-placebo-effect\/#comment-118",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/118": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>great bike<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/04\/daily-prompt-placebo-effect\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Daily Prompt: Placebo Effect<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/118",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 118,
+ "post_id": 212,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/118",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 118,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/118",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 118,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/118",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 118,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-replied\"><\/span> azdald vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Daily Prompt: Placebo Effect\"<\/span>",
+ "text": " azdald vous a r\u00e9pondu sur \"Daily Prompt: Placebo Effect\""
+ },
+ "timestamp": "1386245747",
+ "meta": {
+ "ids": {
+ "self": 941311229,
+ "site": 57991476,
+ "post": 212,
+ "comment": 118,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/941311229",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/212",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/118",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": true
+ }
+ }, {
+ "id": "941309501",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/zeopfk\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">mugman<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/04\/hghj\/#comment-117\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">05 d\u00e9c, 12 &#104; 13<\/a><\/em>",
+ "header_text": "mugman",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/11\/04\/hghj\/#comment-117",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/117": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Very nice mug<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/04\/hghj\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Hghj<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/117",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "Approuver et r\u00e9pondre",
+ "comment_id": 117,
+ "post_id": 214,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "approve-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/117",
+ "rest_body": {
+ "status": "approved"
+ },
+ "ajax_arg": "approve",
+ "title_text": "Approuver ce commentaire.",
+ "text": "Approuver",
+ "comment_id": 117,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/117",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 117,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/117",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 117,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-pending\"><\/span> mugman vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Hghj\"<\/span>",
+ "text": " mugman vous a r\u00e9pondu sur \"Hghj\""
+ },
+ "timestamp": "1386245633",
+ "meta": {
+ "ids": {
+ "self": 941309501,
+ "site": 57991476,
+ "post": 214,
+ "comment": 117,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/941309501",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/214",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/117",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "pending",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "941251355",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/f0b8ec52e6e70277a02c8d8fb9eb162c?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/zeopfk\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">zepofkezpf<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/06\/test\/#comment-114\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">05 d\u00e9c, 11 &#104; 13<\/a><\/em>",
+ "header_text": "zepofkezpf",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/11\/06\/test\/#comment-114",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/114": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Ah bah oui&#8230;<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/06\/test\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Test<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/114",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 114,
+ "post_id": 216,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/114",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 114,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/114",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 114,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/114",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 114,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/f0b8ec52e6e70277a02c8d8fb9eb162c?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-replied\"><\/span> zepofkezpf vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Test\"<\/span>",
+ "text": " zepofkezpf vous a r\u00e9pondu sur \"Test\""
+ },
+ "timestamp": "1386242017",
+ "meta": {
+ "ids": {
+ "self": 941251355,
+ "site": 57991476,
+ "post": 216,
+ "comment": 114,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/941251355",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/216",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/114",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": true
+ }
+ }, {
+ "id": "939132508",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0bebf79ebcd87d7110e071a45c27960c?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span>zeoifjzeiofjnardo<\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/29\/test-19\/#comment-107\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">03 d\u00e9c, 21 &#104; 17<\/a><\/em>",
+ "header_text": "zeoifjzeiofjnardo",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/11\/29\/test-19\/#comment-107",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/107": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Magnifique<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/29\/test-19\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Test 19<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/107",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 107,
+ "post_id": 218,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/107",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 107,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/107",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 107,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/107",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 107,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0bebf79ebcd87d7110e071a45c27960c?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-replied\"><\/span> zeoifjzeiofjnardo vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Test 19\"<\/span>",
+ "text": " zeoifjzeiofjnardo vous a r\u00e9pondu sur \"Test 19\""
+ },
+ "timestamp": "1386105472",
+ "meta": {
+ "ids": {
+ "self": 939132508,
+ "site": 57991476,
+ "post": 218,
+ "comment": 107,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/939132508",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/218",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/107",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": true
+ }
+ }, {
+ "id": "917062451",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span>Renardo<\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/17\/hello\/#comment-106\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">17 nov, 10 &#104; 41<\/a><\/em>",
+ "header_text": "Renardo",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/10\/17\/hello\/#comment-106",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/106": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Oh yeah!<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/17\/hello\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Hello<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/106",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "Approuver et r\u00e9pondre",
+ "comment_id": 106,
+ "post_id": 209,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "approve-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/106",
+ "rest_body": {
+ "status": "approved"
+ },
+ "ajax_arg": "approve",
+ "title_text": "Approuver ce commentaire.",
+ "text": "Approuver",
+ "comment_id": 106,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/106",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 106,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/106",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 106,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-pending\"><\/span> Renardo vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Hello\"<\/span>",
+ "text": " Renardo vous a r\u00e9pondu sur \"Hello\""
+ },
+ "timestamp": "1384684890",
+ "meta": {
+ "ids": {
+ "self": 917062451,
+ "site": 57991476,
+ "post": 209,
+ "comment": 106,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/917062451",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/209",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/106",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "pending",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "899480284",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/mop\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">Mop<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/04\/hghj\/#comment-95\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">04 nov, 13 &#104; 16<\/a><\/em>",
+ "header_text": "Mop",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/11\/04\/hghj\/#comment-95",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/95": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Test 2<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/11\/04\/hghj\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Hghj<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/95",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 95,
+ "post_id": 214,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/95",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 95,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/95",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 95,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/95",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 95,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " Mop vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Hghj\"<\/span>",
+ "text": " Mop vous a r\u00e9pondu sur \"Hghj\""
+ },
+ "timestamp": "1383571018",
+ "meta": {
+ "ids": {
+ "self": 899480284,
+ "site": 57991476,
+ "post": 214,
+ "comment": 95,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/899480284",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/214",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/95",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "899478891",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span><a href=\"http:\/\/mop\" target=\"_blank\" notes-data-click=\"comment_note_commenters_blog\">Mop<\/a><\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/17\/hello\/#comment-92\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">04 nov, 13 &#104; 15<\/a><\/em>",
+ "header_text": "Mop",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/10\/17\/hello\/#comment-92",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/92": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Hola<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/17\/hello\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Hello<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/92",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "Approuver et r\u00e9pondre",
+ "comment_id": 92,
+ "post_id": 209,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "approve-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/92",
+ "rest_body": {
+ "status": "approved"
+ },
+ "ajax_arg": "approve",
+ "title_text": "Approuver ce commentaire.",
+ "text": "Approuver",
+ "comment_id": 92,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/92",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 92,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/92",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 92,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-pending\"><\/span> Mop vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Hello\"<\/span>",
+ "text": " Mop vous a r\u00e9pondu sur \"Hello\""
+ },
+ "timestamp": "1383570928",
+ "meta": {
+ "ids": {
+ "self": 899478891,
+ "site": 57991476,
+ "post": 209,
+ "comment": 92,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/899478891",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/209",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/92",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "pending",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "899321949",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span>Joe<\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/11\/jhjkk\/#comment-91\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">04 nov, 10 &#104; 16<\/a><\/em>",
+ "header_text": "Joe",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/10\/11\/jhjkk\/#comment-91",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/91": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>magnifique<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/11\/jhjkk\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Jhjkk<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/91",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 91,
+ "post_id": 207,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/91",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 91,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/91",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 91,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/91",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 91,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " Joe vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Jhjkk\"<\/span>",
+ "text": " Joe vous a r\u00e9pondu sur \"Jhjkk\""
+ },
+ "timestamp": "1383560162",
+ "meta": {
+ "ids": {
+ "self": 899321949,
+ "site": 57991476,
+ "post": 207,
+ "comment": 91,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/899321949",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/207",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/91",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "867149786",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span>Mop<\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-17\/#comment-90\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">11 oct, 09 &#104; 35<\/a><\/em>",
+ "header_text": "Mop",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-17\/#comment-90",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/90": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Kikoo<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-17\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Hey 17<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/90",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 90,
+ "post_id": 170,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/90",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 90,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/90",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 90,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/90",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 90,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " Mop vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Hey 17\"<\/span>",
+ "text": " Mop vous a r\u00e9pondu sur \"Hey 17\""
+ },
+ "timestamp": "1381484109",
+ "meta": {
+ "ids": {
+ "self": 867149786,
+ "site": 57991476,
+ "post": 170,
+ "comment": 90,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/867149786",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/170",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/90",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "867148474",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span>Mop<\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-13\/#comment-89\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">11 oct, 09 &#104; 33<\/a><\/em>",
+ "header_text": "Mop",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-13\/#comment-89",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/89": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>Fine ?<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-13\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Hey 13<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/89",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 89,
+ "post_id": 162,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/89",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 89,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/89",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 89,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/89",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 89,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": "<span class=\"wpn-subject-status wpn-subject-status-replied\"><\/span> Mop vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Hey 13\"<\/span>",
+ "text": " Mop vous a r\u00e9pondu sur \"Hey 13\""
+ },
+ "timestamp": "1381484026",
+ "meta": {
+ "ids": {
+ "self": 867148474,
+ "site": 57991476,
+ "post": 162,
+ "comment": 89,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/867148474",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/162",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/89",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": true
+ }
+ }, {
+ "id": "867148106",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span>Mop<\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-13\/#comment-88\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">11 oct, 09 &#104; 33<\/a><\/em>",
+ "header_text": "Mop",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-13\/#comment-88",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/88": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>How is it going ?<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-13\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Hey 13<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/88",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 88,
+ "post_id": 162,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/88",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 88,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/88",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 88,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/88",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 88,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " Mop vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Hey 13\"<\/span>",
+ "text": " Mop vous a r\u00e9pondu sur \"Hey 13\""
+ },
+ "timestamp": "1381484001",
+ "meta": {
+ "ids": {
+ "self": 867148106,
+ "site": 57991476,
+ "post": 162,
+ "comment": 88,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/867148106",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/162",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/88",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "867147723",
+ "type": "comment",
+ "unread": "0",
+ "body": {
+ "template": "multi-line-list",
+ "items": [{
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "icon_width": 48,
+ "icon_height": 48,
+ "header": "<span>Mop<\/span> <em class=\"wpn-comment-date\"><a target=\"_blank\" href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-13\/#comment-87\" target=\"_blank\" notes-data-click=\"comment_note_new_comment\">11 oct, 09 &#104; 32<\/a><\/em>",
+ "header_text": "Mop",
+ "header_link": "http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-13\/#comment-87",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/87": false
+ },
+ "html": "<div class=\"wpn-comment\"><p>What&rsquo;s up ?<\/p>\n<\/div>"
+ }],
+ "header": "<a href=\"http:\/\/taliwutblog.wordpress.com\/2013\/10\/10\/hey-13\/\" target=\"_blank\" notes-data-click=\"comment_note_orig_post\">Hey 13<\/a>",
+ "actions": [{
+ "type": "replyto-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/87",
+ "rest_body": [],
+ "button_title_text": "R\u00e9pondre \u00e0 ce commentaire.",
+ "button_text": "R\u00e9ponse",
+ "reply_header_text": "R\u00e9pondre au commentaire",
+ "submit_button_text": "R\u00e9ponse",
+ "comment_id": 87,
+ "post_id": 162,
+ "blog_id": 57991476,
+ "site_id": 57991476,
+ "user_id": "55434822",
+ "approve_parent": 1
+ }
+ }, {
+ "type": "unapprove-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/87",
+ "rest_body": {
+ "status": "unapproved"
+ },
+ "title_text": "D\u00e9sapprouver ce commentaire.",
+ "text": "Unapprove",
+ "comment_id": 87,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "spam-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/87",
+ "rest_body": {
+ "status": "spam"
+ },
+ "ajax_arg": "spam",
+ "title_text": "Marquer ce commentaire comme ind\u00e9sirable.",
+ "text": "Ind\u00e9sirable",
+ "comment_id": 87,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }, {
+ "type": "trash-comment",
+ "params": {
+ "rest_path": "\/sites\/57991476\/comments\/87",
+ "rest_body": {
+ "status": "trash"
+ },
+ "title_text": "Mettre ce commentaire \u00e0 la corbeille.",
+ "text": "Corbeille",
+ "comment_id": 87,
+ "blog_id": 57991476,
+ "site_id": 57991476
+ }
+ }]
+ },
+ "subject": {
+ "icon": "https:\/\/0.gravatar.com\/avatar\/0403628896534a3d9037ffa0902de870?s=256&d=identicon&r=G",
+ "noticon": "https:\/\/s2.wp.com\/wp-content\/mu-plugins\/notes\/images\/noticon-comment.png",
+ "html": " Mop vous a r\u00e9pondu sur <span class=\"wpn-subject-title\">\"Hey 13\"<\/span>",
+ "text": " Mop vous a r\u00e9pondu sur \"Hey 13\""
+ },
+ "timestamp": "1381483974",
+ "meta": {
+ "ids": {
+ "self": 867147723,
+ "site": 57991476,
+ "post": 162,
+ "comment": 87,
+ "comment_parent": 0
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/867147723",
+ "help": "https:\/\/public-api.wordpress.com\/rest\/v1\/help",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476",
+ "post": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/posts\/162",
+ "comment": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/87",
+ "comment_parent": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476\/comments\/0"
+ },
+ "approval_status": "approved",
+ "undo_status": "0",
+ "has_replied": false
+ }
+ }, {
+ "id": "839183136",
+ "type": "best_followed_day_feat",
+ "unread": "0",
+ "body": {
+ "template": "big-badge",
+ "header": "Le + de follows en un jour",
+ "header_text": "Le + de follows en un jour",
+ "header_link": "",
+ "html": "<p>Au Vendredi 20 septembre 2013 vous avez pulv\u00e9ris\u00e9 votre pr\u00e9c\u00e9dent record de follows enregistr\u00e9s en un seul jour, sur votre blog <a href=\"http:\/\/taliwutblog.wordpress.com\" title=\"taliwutblog\" target=\"_blank\" notes-data-click=\"best_period_ever_feat\">taliwutblog<\/a>. Super!<\/p><ul><li><span class=\"wpn-feat-current-record-title\">Current Record: <\/span><span class=\"wpn-feat-new-record-count\">20<\/span><\/li><li><span class=\"wpn-feat-old-record-title\">Old Record: <\/span><span class=\"wpn-feat-old-record-count\">8<\/span><\/li><\/ul>",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476": false
+ }
+ },
+ "subject": {
+ "icon": "https:\/\/wordpress.com\/wp-content\/mu-plugins\/achievements\/bestday-follows-2x.png",
+ "noticon": "https:\/\/wordpress.com\/wp-content\/mu-plugins\/notes\/images\/noticon-milestone.png",
+ "html": "septembre 20: Your best day for follows on <span class=\"wpn-subject-title\">&quot;taliwutblog&quot;<\/span>",
+ "text": "septembre 20: Your best day for follows on &quot;taliwutblog&quot;"
+ },
+ "timestamp": "1379664368",
+ "meta": {
+ "ids": {
+ "self": 839183136,
+ "site": 57991476
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/839183136",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476"
+ },
+ "blog_id": "57991476"
+ }
+ }, {
+ "id": "838222030",
+ "type": "best_followed_day_feat",
+ "unread": "0",
+ "body": {
+ "template": "big-badge",
+ "header": "Le + de follows en un jour",
+ "header_text": "Le + de follows en un jour",
+ "header_link": "",
+ "html": "<p>Au Jeudi 19 septembre 2013 vous avez pulv\u00e9ris\u00e9 votre pr\u00e9c\u00e9dent record de follows enregistr\u00e9s en un seul jour, sur votre blog <a href=\"http:\/\/taliwutblog.wordpress.com\" title=\"taliwutblog\" target=\"_blank\" notes-data-click=\"best_period_ever_feat\">taliwutblog<\/a>. Super!<\/p><ul><li><span class=\"wpn-feat-current-record-title\">Current Record: <\/span><span class=\"wpn-feat-new-record-count\">20<\/span><\/li><li><span class=\"wpn-feat-old-record-title\">Old Record: <\/span><span class=\"wpn-feat-old-record-count\">2<\/span><\/li><\/ul>",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476": false
+ }
+ },
+ "subject": {
+ "icon": "https:\/\/wordpress.com\/wp-content\/mu-plugins\/achievements\/bestday-follows-2x.png",
+ "noticon": "https:\/\/wordpress.com\/wp-content\/mu-plugins\/notes\/images\/noticon-milestone.png",
+ "html": "septembre 19: Your best day for follows on <span class=\"wpn-subject-title\">&quot;taliwutblog&quot;<\/span>",
+ "text": "septembre 19: Your best day for follows on &quot;taliwutblog&quot;"
+ },
+ "timestamp": "1379602173",
+ "meta": {
+ "ids": {
+ "self": 838222030,
+ "site": 57991476
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/838222030",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476"
+ },
+ "blog_id": "57991476"
+ }
+ }, {
+ "id": "836484714",
+ "type": "best_followed_day_feat",
+ "unread": "0",
+ "body": {
+ "template": "big-badge",
+ "header": "Le + de follows en un jour",
+ "header_text": "Le + de follows en un jour",
+ "header_link": "",
+ "html": "<p>Au Mercredi 18 septembre 2013 vous avez pulv\u00e9ris\u00e9 votre pr\u00e9c\u00e9dent record de follows enregistr\u00e9s en un seul jour, sur votre blog <a href=\"http:\/\/taliwutblog.wordpress.com\" title=\"taliwutblog\" target=\"_blank\" notes-data-click=\"best_period_ever_feat\">taliwutblog<\/a>. Super!<\/p><ul><li><span class=\"wpn-feat-current-record-title\">Current Record: <\/span><span class=\"wpn-feat-new-record-count\">20<\/span><\/li><li><span class=\"wpn-feat-old-record-title\">Old Record: <\/span><span class=\"wpn-feat-old-record-count\">1<\/span><\/li><\/ul>",
+ "objects": {
+ "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476": false
+ }
+ },
+ "subject": {
+ "icon": "https:\/\/wordpress.com\/wp-content\/mu-plugins\/achievements\/bestday-follows-2x.png",
+ "noticon": "https:\/\/wordpress.com\/wp-content\/mu-plugins\/notes\/images\/noticon-milestone.png",
+ "html": "septembre 18: Your best day for follows on <span class=\"wpn-subject-title\">&quot;taliwutblog&quot;<\/span>",
+ "text": "septembre 18: Your best day for follows on &quot;taliwutblog&quot;"
+ },
+ "timestamp": "1379492390",
+ "meta": {
+ "ids": {
+ "self": 836484714,
+ "site": 57991476
+ },
+ "links": {
+ "self": "https:\/\/public-api.wordpress.com\/rest\/v1\/notifications\/836484714",
+ "site": "https:\/\/public-api.wordpress.com\/rest\/v1\/sites\/57991476"
+ },
+ "blog_id": "57991476"
+ }
+ }],
+ "last_seen_time": "2147483647",
+ "number": 35
+}
diff --git a/WordPress/src/androidTest/assets/site-reserved-public-api-wordpress-com-rest-v1-sites-new.json b/WordPress/src/androidTest/assets/site-reserved-public-api-wordpress-com-rest-v1-sites-new.json
new file mode 100644
index 000000000..5077f3775
--- /dev/null
+++ b/WordPress/src/androidTest/assets/site-reserved-public-api-wordpress-com-rest-v1-sites-new.json
@@ -0,0 +1,4 @@
+{
+ "error": "blog_name_reserved",
+ "message": "Invalid blog name"
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/assets/taliwutt-blogs-sample.sql b/WordPress/src/androidTest/assets/taliwutt-blogs-sample.sql
new file mode 100644
index 000000000..d3d4bcfba
--- /dev/null
+++ b/WordPress/src/androidTest/assets/taliwutt-blogs-sample.sql
@@ -0,0 +1,48 @@
+PRAGMA foreign_keys=OFF;
+BEGIN TRANSACTION;
+CREATE TABLE android_metadata (locale TEXT);
+INSERT INTO "android_metadata" VALUES('en_US');
+CREATE TABLE accounts (id integer primary key autoincrement, url text, blogName text, username text, password text, imagePlacement text, centerThumbnail boolean, fullSizeImage boolean, maxImageWidth text, maxImageWidthId integer, lastCommentId integer, runService boolean, blogId integer, location boolean default false, dotcom_username text, dotcom_password text, api_key text, api_blogid text, dotcomFlag boolean default false, wpVersion text, httpuser text, httppassword text, postFormats text default '', isScaledImage boolean default false, scaledImgWidth integer default 1024, homeURL text default '', blog_options text default '', isAdmin boolean default false, isHidden boolean default 0);
+INSERT INTO accounts VALUES(31,'https://tataliwut.wordpress.com/xmlrpc.php','Empty blog stays empty','test','','',1,0,'2000',0,NULL,0,59073674,0,NULL,NULL,NULL,NULL,1,'','','','{"audio":"Son","standard":"Par défaut","status":"Statut","gallery":"Galerie","quote":"Citation","link":"Lien","image":"Image","chat":"Discussion","aside":"En passant","video":"Vidéo"}',0,1024,'https://tataliwut.wordpress.com/','{"home_url":{"value":"http://tataliwut.wordpress.com","readonly":true,"desc":"Adresse web du site (URL)"},"post_thumbnail":{"value":true,"readonly":true,"desc":"Miniature d\u0026rsquo;article"},"software_version":{"value":"3.8.1","readonly":true,"desc":"Software Version"},"blog_public":{"value":"1","readonly":true,"desc":"Accès aux renseignements confidentiels"},"admin_url":{"value":"https://tataliwut.wordpress.com/wp-admin/","readonly":true,"desc":"L\u0026rsquo;adresse web de la zone d\u0026rsquo;administration"},"login_url":{"value":"https://tataliwut.wordpress.com/wp-login.php","readonly":true,"desc":"Adresse de connexion (URL)"}}',1,0);
+INSERT INTO accounts VALUES(32,'https://ilovecutecats.wordpress.com/xmlrpc.php','I Love Cute Cats','test','','',0,0,'2000',0,NULL,0,61784930,'false',NULL,NULL,NULL,NULL,1,'','','','','false',1024,'https://ilovecutecats.wordpress.com/','',1,0);
+INSERT INTO accounts VALUES(22,'https://taliwutblog.wordpress.com/xmlrpc.php','taliwut & blog','test','','',0,0,'2000',0,NULL,0,57991476,'false',NULL,NULL,NULL,NULL,1,'','','','','false',1024,'https://taliwutblog.wordpress.com/','',1,0);
+CREATE TABLE posts (id integer primary key autoincrement, blogID text, postid text, title text default '', dateCreated date, date_created_gmt date, categories text default '', custom_fields text default '', description text default '', link text default '', mt_allow_comments boolean, mt_allow_pings boolean, mt_excerpt text default '', mt_keywords text default '', mt_text_more text default '', permaLink text default '', post_status text default '', userid integer default 0, wp_author_display_name text default '', wp_author_id text default '', wp_password text default '', wp_post_format text default '', wp_slug text default '', mediaPaths text default '', latitude real, longitude real, localDraft boolean default 0, uploaded boolean default 0, isPage boolean default 0, wp_page_parent_id text, wp_page_parent_title text, isLocalChange boolean default 0);
+INSERT INTO posts VALUES(1,'1',NULL,'qswq',NULL,0,'[]','','<p>qwswqs<br></p>','',NULL,NULL,'','','','','publish',0,'','','','standard','','',0.0,0.0,1,1,0,NULL,NULL,0);
+INSERT INTO posts VALUES(5,'1','23','qswq',1392633989000,1392633989000,'["Uncategorized"]','["{value=1392633989, id=91, key=jabber_published}"]','qwswqsarst','https://tataliwut.wordpress.com/2014/02/17/qswq/',1,1,'','','','https://tataliwut.wordpress.com/2014/02/17/qswq/','publish',55434822,'taliwutt','55434822','','standard','qswq','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(26,'16','306','enft',1392134640000,1392134640000,'["Uncategorized"]','["{value=1392048234, id=1411, key=jabber_published}"]','','https://taliwutblog.wordpress.com/2014/02/11/enft/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/11/enft/','publish',55434822,'taliwutt','55434822','','standard','enft','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(27,'22','333','Fun with URLs',1392118235000,1392118235000,'["Uncategorized"]','["{value=1392118236, id=1425, key=jabber_published}"]','<a href="//">test 1</a> <a href="//login">Test 2</a>','https://taliwutblog.wordpress.com/2014/02/11/fun-with-urls/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/11/fun-with-urls/','publish',55434822,'taliwutt','55434822','','standard','fun-with-urls','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(28,'22','331','wftfwtfw',1392050448000,1392050448000,'["Uncategorized"]','["{value=1392050448, id=1418, key=jabber_published}"]','hb','https://taliwutblog.wordpress.com/2014/02/10/wftfwtfw/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/10/wftfwtfw/','publish',55434822,'taliwutt','55434822','','standard','wftfwtfw','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(29,'22','330','#BookReview Bridget Jones: Mad About the Boy',1391606384000,1391606384000,'["Uncategorized"]','["{value=57991476, id=1406, key=blog_id}","{value=1, id=1407, key=is_reblog}","{value=1391606386, id=1400, key=jabber_published}","{value=302, id=1405, key=post_id}"]','jey*','https://taliwutblog.wordpress.com/2014/02/05/bookreview-bridget-jones-mad-about-the-boy-4/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/05/bookreview-bridget-jones-mad-about-the-boy-4/','publish',55434822,'taliwutt','55434822','','standard','bookreview-bridget-jones-mad-about-the-boy-4','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(30,'22','329','#BookReview Bridget Jones: Mad About the Boy',1391606378000,1391606378000,'["Uncategorized"]','["{value=57991476, id=1397, key=blog_id}","{value=1, id=1398, key=is_reblog}","{value=1391606379, id=1391, key=jabber_published}","{value=302, id=1396, key=post_id}"]','e*','https://taliwutblog.wordpress.com/2014/02/05/bookreview-bridget-jones-mad-about-the-boy-3/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/05/bookreview-bridget-jones-mad-about-the-boy-3/','publish',55434822,'taliwutt','55434822','','standard','bookreview-bridget-jones-mad-about-the-boy-3','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(31,'22','327','Watch "NORMAN - LUIGI CLASH MARIO" on YouTube',1391604133000,1391604133000,'["Uncategorized"]','["{value=1391604135, id=1384, key=jabber_published}"]','<a href="http://www.youtube.com/watch?v=GP7aP67qQjQ">http://www.youtube.com/watch?v=GP7aP67qQjQ</a>','https://taliwutblog.wordpress.com/2014/02/05/watch-norman-luigi-clash-mario-on-youtube/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/05/watch-norman-luigi-clash-mario-on-youtube/','publish',55434822,'taliwutt','55434822','','standard','watch-norman-luigi-clash-mario-on-youtube','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(32,'22','325','Test YouTube',1391584473000,1391584473000,'["Uncategorized"]','["{value=1391584474, id=1377, key=jabber_published}"]','[youtube https://www.youtube.com/watch?v=belUlgnhu9M&w=560&h=315]','https://taliwutblog.wordpress.com/2014/02/05/test-youtube/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/05/test-youtube/','publish',55434822,'taliwutt','55434822','','standard','test-youtube','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(33,'22','324','Your Keyboard &amp; You. I''ll Stick With Colemak',1391448765000,1391448765000,'["Uncategorized"]','["{value=56042455, id=1372, key=blog_id}","{value=1, id=1373, key=is_reblog}","{value=1391448767, id=1366, key=jabber_published}","{value=631, id=1371, key=post_id}"]','','https://taliwutblog.wordpress.com/2014/02/03/your-keyboard-you-ill-stick-with-colemak-2/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/03/your-keyboard-you-ill-stick-with-colemak-2/','publish',55434822,'taliwutt','55434822','','standard','your-keyboard-you-ill-stick-with-colemak-2','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(34,'22','323','Your Keyboard &amp; You. I''ll Stick With Colemak',1391448756000,1391448756000,'["Uncategorized"]','["{value=56042455, id=1363, key=blog_id}","{value=1, id=1364, key=is_reblog}","{value=1391448758, id=1357, key=jabber_published}","{value=631, id=1362, key=post_id}"]','','https://taliwutblog.wordpress.com/2014/02/03/your-keyboard-you-ill-stick-with-colemak/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/03/your-keyboard-you-ill-stick-with-colemak/','publish',55434822,'taliwutt','55434822','','standard','your-keyboard-you-ill-stick-with-colemak','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(35,'22','321','Forget about turns, this is real time chess. It''s hectic, chaotic and short. The winner is the guy who is able to process everything and cope under stress. Welcome to the new chess experience',1391431046000,1391431046000,'["Uncategorized"]','["{value=1391431048, id=1350, key=jabber_published}"]','<a href="http://impactjs.com/forums/games/real-time-chess">http://impactjs.com/forums/games/real-time-chess</a>','https://taliwutblog.wordpress.com/2014/02/03/forget-about-turns-this-is-real-time-chess-its-hectic-chaotic-and-short-the-winner-is-the-guy-who-is-able-to-process-everything-and-cope-under-stress-welcome-to-the-new-chess-experience/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/03/forget-about-turns-this-is-real-time-chess-its-hectic-chaotic-and-short-the-winner-is-the-guy-who-is-able-to-process-everything-and-cope-under-stress-welcome-to-the-new-chess-experience/','publish',55434822,'taliwutt','55434822','','standard','forget-about-turns-this-is-real-time-chess-its-hectic-chaotic-and-short-the-winner-is-the-guy-who-is-able-to-process-everything-and-cope-under-stress-welcome-to-the-new-chess-experience','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(36,'22','319','Another Pony',1391428271000,1391428271000,'["Uncategorized"]','["{value=1391428272, id=1342, key=jabber_published}"]','<a href="http://taliwutblog.files.wordpress.com/2014/02/wpid-urbanherovantbarreeltje.jpg"><img title="Urbanherovantbarreeltje.JPG" class="alignnone size-full" alt="image" src="http://taliwutblog.files.wordpress.com/2014/02/wpid-urbanherovantbarreeltje.jpg" /></a>','https://taliwutblog.wordpress.com/2014/02/03/another-pony/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/03/another-pony/','publish',55434822,'taliwutt','55434822','','image','another-pony','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(37,'22','316','Cute pony',1391422828000,1391422828000,'["Uncategorized"]','["{value=1391422828, id=1333, key=jabber_published}"]','<a href="http://taliwutblog.files.wordpress.com/2014/02/wpid-pony1.jpg"><img title="pony.jpg" class="alignnone size-full" alt="image" src="http://taliwutblog.files.wordpress.com/2014/02/wpid-pony1.jpg" /></a>','https://taliwutblog.wordpress.com/2014/02/03/cute-pony-2/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/03/cute-pony-2/','publish',55434822,'taliwutt','55434822','','image','cute-pony-2','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(38,'22','313','Cute pony',1391420955000,1391420955000,'["Uncategorized"]','["{value=1391420956, id=1324, key=jabber_published}"]','<a href="http://taliwutblog.files.wordpress.com/2014/02/wpid-pony.jpg"><img title="pony.jpg" class="alignnone size-full" alt="image" src="http://taliwutblog.files.wordpress.com/2014/02/wpid-pony.jpg" /></a>','https://taliwutblog.wordpress.com/2014/02/03/cute-pony/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/03/cute-pony/','publish',55434822,'taliwutt','55434822','','image','cute-pony','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(39,'22','303','The New iOS and Android Apps Have Arrived!',1391108568000,1391108568000,'["Uncategorized"]','["{value=3584907, id=1290, key=blog_id}","{value=1, id=1291, key=is_reblog}","{value=1391108569, id=1286, key=jabber_published}","{value=23682, id=1289, key=post_id}","{value=O:8:\"stdClass\":8:{s:5:\"title\";s:42:\"The New iOS and Android Apps Have Arrived!\";s:4:\"type\";s:4:\"post\";s:9:\"mime_type\";s:0:\"\";s:6:\"format\";b:0;s:12:\"modified_gmt\";s:19:\"2014-01-30 18:59:14\";s:9:\"permalink\";s:60:\"http:\/\/en.blog.wordpress.com\/2014\/01\/30\/updated-ios-android\/\";s:7:\"content\";s:3728:\"<div class=\"reblogged-content\">More and more of us are blogging from our mobile devices. Today, we’re thrilled to announce new versions of the WordPress mobile apps for Android and iOS. Here are some of the new versions'' highlights. <img class=\"aligncenter size-full wp-image-23687\" alt=\"android26-ios39-promo\" src=\"http:\/\/taliwutblog.files.wordpress.com\/2014\/01\/android26-ios39-promo.png\" width=\"635\" height=\"423\" data-originalSrc=\"http:\/\/en.blog.files.wordpress.com\/2014\/01\/android26-ios39-promo.png\" data-rehosted=\"1\"><h3>WordPress for iOS 3.9<\/h3>\n The latest WordPress for iOS update is one of our largest app releases to date. This update is remarkable both for the significant changes we''ve introduced, and for the level of dedication it received from our hard-working team members. Version 3.9 includes a major visual redesign of the app. We decided to drop the sidebar navigation and embrace a tab bar-based layout. The app''s new design allowed us to add numerous visual improvements throughout, including revamped and enhanced Reader, Comments, and Notifications sections. We also created a seamless inline commenting experience to make it easier for you to engage with the content you love. Finally, we made visual improvements to the editing experience of posts and pages.\n Our team has embraced the latest and greatest technologies that Apple has provided us with iOS 7 to deliver you the best app possible. Version 3.9 and future updates will require iOS 7. The app also includes several other changes. On top of various bug fixes and performance improvements, it now supports deep-linking from Twitter, and features an improved login screen. Be sure to try it out: <a href=\"https:\/\/itunes.apple.com\/us\/app\/wordpress\/id335703880?mt=8\">Download from the App Store<\/a> <h3>WordPress for Android 2.6<\/h3>\n The latest update to WordPress for Android includes a new reading and setup experience, as well as significant updates to the user interface. The app Reader has been completely redesigned, and now provides a much-improved, native reading experience. You''ll definitely notice its speed -- posts appear in a snap, and images fade in as they load. You can also view users that have commented or liked posts, as well as edit the list of tags that you follow. We''ve revamped the like, reblog, and comment interfaces to make it easier than ever to respond to posts that strike your fancy.\n When signing in to the app or creating an account on WordPress.com, you’ll notice a brand new user interface that makes it super-simple to start blogging. If you keep multiple blogs on your account, they will all be automatically added for you. You can also hide whichever blogs you don''t wish to work on in the app. We''ve given the app a facelift, including a new color scheme, a refined navigation drawer layout, and sharp-looking lists in notifications, posts, pages and comments.\n You’ll also notice some changes to the post editor, with larger images and a new Post Settings area where you''ll manage post data such as status, post formats, and categories, among others. The post content area will now go full screen while you are editing, to give you maximum space to focus on your content. Give the app a try here: <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.wordpress.android\">Download from Google Play<\/a> <h3>What’s next?<\/h3>\n The mobile team isn’t stopping here! We have big plans for the months to come and for the rest of 2014. You can keep up with the development progress over at http:\/\/make.wordpress.org\/mobile. You can also follow the apps on twitter <a href=\"http:\/\/twitter.com\/wpandroid\">@WPAndroid<\/a> and <a href=\"http:\/\/twitter.com\/wordpressios\">@WordPressiOS<\/a>.<\/div>\";s:15:\"images_mirrored\";i:1;}, id=1297, key=reblog_snapshot}"]','','https://taliwutblog.wordpress.com/2014/01/30/the-new-ios-and-android-apps-have-arrived/',1,1,'','','','https://taliwutblog.wordpress.com/2014/01/30/the-new-ios-and-android-apps-have-arrived/','publish',50540106,'Maxime','50540106','','standard','the-new-ios-and-android-apps-have-arrived','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(40,'22','308','art',1391076000000,1391076000000,'["Uncategorized"]','["{value=1391162423, id=1304, key=jabber_published}"]','<strong>wft</strong>','https://taliwutblog.wordpress.com/2014/01/30/art/',1,1,'','','','https://taliwutblog.wordpress.com/2014/01/30/art/','publish',55434822,'taliwutt','55434822','','standard','art','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(41,'22','302','#BookReview Bridget Jones: Mad About the Boy',1390903286000,1390903286000,'["Uncategorized"]','["{value=31639867, id=1282, key=blog_id}","{value=1, id=1283, key=is_reblog}","{value=1390903288, id=1276, key=jabber_published}","{value=7493, id=1281, key=post_id}"]','ib/Tqg','https://taliwutblog.wordpress.com/2014/01/28/bookreview-bridget-jones-mad-about-the-boy-2/',1,1,'','','','https://taliwutblog.wordpress.com/2014/01/28/bookreview-bridget-jones-mad-about-the-boy-2/','publish',55434822,'taliwutt','55434822','','standard','bookreview-bridget-jones-mad-about-the-boy-2','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(42,'22','299','Cat',1390395827000,1390395827000,'["Uncategorized"]','["{value=1390395828, id=1250, key=jabber_published}"]','[caption id="" align="alignnone" width="2000" caption="Mop"]<a href="https://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg"><img title="wpid-wp-1388141726961.jpeg" class="alignnone size-full" alt="image" src="https://taliwutblog.files.wordpress.com/2013/12/wpid-wp-1388141726961.jpeg?w=2000" /></a>[/caption]','https://taliwutblog.wordpress.com/2014/01/22/cat-2/',1,1,'','','','https://taliwutblog.wordpress.com/2014/01/22/cat-2/','publish',55434822,'taliwutt','55434822','','standard','cat-2','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(43,'22','297','hd wallpaper photo - Google Search',1390395578000,1390395578000,'["Uncategorized"]','["{value=1390395578, id=1244, key=jabber_published}"]','<a href="http://www.google.com/search?hl=en&amp;biw=384&amp;bih=640&amp;tbm=isch&amp;sa=1&amp;ei=RbLKUv-lHYem0wW8oYHABA&amp;q=hd+wallpaper+photo&amp;oq=hd+wallpaper+photo&amp;gs_l=mobile-gws-serp.3..0l4j0i5.4612.5034.0.5279.4.4.0.0.0.0.203.203.2-1.1.0....0...1c.1.32.mobile-gws-serp..3.1.203.63ZBZ9KeMPs#biv=i%7C10%3Bd%7Cfmk-ugJVQIMDBM%3A">http://www.google.com/search?hl=en&amp;biw=384&amp;bih=640&amp;tbm=isch&amp;sa=1&amp;ei=RbLKUv-lHYem0wW8oYHABA&amp;q=hd+wallpaper+photo&amp;oq=hd+wallpaper+photo&amp;gs_l=mobile-gws-serp.3..0l4j0i5.4612.5034.0.5279.4.4.0.0.0.0.203.203.2-1.1.0....0...1c.1.32.mobile-gws-serp..3.1.203.63ZBZ9KeMPs#biv=i%7C10%3Bd%7Cfmk-ugJVQIMDBM%3A</a>','https://taliwutblog.wordpress.com/2014/01/22/hd-wallpaper-photo-google-search/',1,1,'','','','https://taliwutblog.wordpress.com/2014/01/22/hd-wallpaper-photo-google-search/','publish',55434822,'taliwutt','55434822','','standard','hd-wallpaper-photo-google-search','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(44,'22','296','The End of Unrecorded Life',1390394180000,1390394180000,'["Uncategorized"]','["{value=55267051, id=1241, key=blog_id}","{value=1, id=1242, key=is_reblog}","{value=1390394182, id=1235, key=jabber_published}","{value=642, id=1240, key=post_id}"]','Hai','https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/',1,1,'','','','https://taliwutblog.wordpress.com/2014/01/22/the-end-of-unrecorded-life/','publish',55434822,'taliwutt','55434822','','standard','the-end-of-unrecorded-life','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(45,'22','292','Geny!',1390386760000,1390386760000,'["Uncategorized"]','["{value=1390386762, id=1228, key=jabber_published}"]','<a href="http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386748907.jpg"><img title="wp-1390386748907.jpg" class="alignnone size-full" alt="image" src="http://taliwutblog.files.wordpress.com/2014/01/wpid-wp-1390386748907.jpg" /></a>','https://taliwutblog.wordpress.com/2014/01/22/geny/',1,1,'','','','https://taliwutblog.wordpress.com/2014/01/22/geny/','publish',55434822,'taliwutt','55434822','','image','geny','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(47,'59073674',NULL,NULL,NULL,0,'','',NULL,'',NULL,NULL,NULL,'','','',NULL,0,'','',NULL,NULL,'','',0.0,0.0,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(48,'31','333333','null postid',1392134640000,1392134640000,'["Uncategorized"]','["{value=1392048234, id=1411, key=jabber_published}"]','','https://taliwutblog.wordpress.com/2014/02/11/enft/',1,1,'','','','https://taliwutblog.wordpress.com/2014/02/11/enft/','publish',55434822,'taliwutt','55434822','','standard','enft','',NULL,NULL,0,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(49,'1',NULL,'',NULL,0,'','','','',NULL,NULL,'','','','','',0,'','','','','','',0.0,0.0,1,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(50,'1',NULL,'',NULL,0,'','','','',NULL,NULL,'','','','','',0,'','','','','','',0.0,0.0,1,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(51,'1',NULL,'',NULL,0,'','','','',NULL,NULL,'','','','','',0,'','','','','','',0.0,0.0,1,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(52,'1',NULL,'',NULL,0,'','','','',NULL,NULL,'','','','','',0,'','','','','','',0.0,0.0,1,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(53,'1',NULL,'',NULL,0,'','','','',NULL,NULL,'','','','','',0,'','','','','','',0.0,0.0,1,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(54,'1',NULL,'',NULL,0,'','','','',NULL,NULL,'','','','','',0,'','','','','','',0.0,0.0,1,0,0,NULL,NULL,0);
+INSERT INTO posts VALUES(55,'1',NULL,'',NULL,0,'','','','',NULL,NULL,'','','','','',0,'','','','','','',0.0,0.0,1,0,0,NULL,NULL,0);
+CREATE TABLE cats (id integer primary key autoincrement, blog_id text, wp_id integer, category_name text not null, parent_id integer default 0);
+CREATE TABLE quickpress_shortcuts (id integer primary key autoincrement, accountId text, name text);
+CREATE TABLE media (id integer primary key autoincrement, postID integer not null, filePath text default '', fileName text default '', title text default '', description text default '', caption text default '', horizontalAlignment integer default 0, width integer default 0, height integer default 0, mimeType text default '', featured boolean default false, isVideo boolean default false, isFeaturedInPost boolean default false, fileURL text default '', thumbnailURL text default '', mediaId text default '', blogId text default '', date_created_gmt date, uploadState default '', videoPressShortcode text default '');
+CREATE TABLE themes (_id integer primary key autoincrement, themeId text, name text, description text, screenshotURL text, trendingRank integer default 0, popularityRank integer default 0, launchDate date, previewURL text, blogId text, isCurrent boolean default false, isPremium boolean default false, features text);
+CREATE TABLE notes (id integer primary key, note_id text, message text, type text, raw_note_data text, timestamp integer, placeholder boolean);
+CREATE TABLE comments ( blog_id INTEGER DEFAULT 0, post_id INTEGER DEFAULT 0, comment_id INTEGER DEFAULT 0, comment TEXT, published TEXT, status TEXT, author_name TEXT, author_url TEXT, author_email TEXT, post_title TEXT, profile_image_url TEXT, PRIMARY KEY (blog_id, post_id, comment_id) );
+INSERT INTO comments VALUES(4,313,165,'ouh ouh','2014-02-10T14:46:27+0100','approve','ARST','','arst@srt.ts','Cute pony','');
+COMMIT;
diff --git a/WordPress/src/androidTest/assets/username-exists-public-api-wordpress-com-rest-v1-users-new.json b/WordPress/src/androidTest/assets/username-exists-public-api-wordpress-com-rest-v1-users-new.json
new file mode 100644
index 000000000..988732345
--- /dev/null
+++ b/WordPress/src/androidTest/assets/username-exists-public-api-wordpress-com-rest-v1-users-new.json
@@ -0,0 +1,4 @@
+{
+ "error": "username_exists",
+ "message": "Invalid user input"
+}
diff --git a/WordPress/src/androidTest/java/URITest.java b/WordPress/src/androidTest/java/URITest.java
new file mode 100644
index 000000000..f0d2c73f6
--- /dev/null
+++ b/WordPress/src/androidTest/java/URITest.java
@@ -0,0 +1,56 @@
+import android.test.InstrumentationTestCase;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+public class URITest extends InstrumentationTestCase {
+ public void testGetHost1() {
+ URI uri = null;
+ try {
+ uri = new URI("https://wordpress.com");
+ } catch (URISyntaxException e) {}
+ assertNotNull(uri);
+
+ assertEquals("wordpress.com", uri.getHost());
+ }
+
+ public void testGetHost2() {
+ URI uri = null;
+ try {
+ uri = new URI("http://a.com#.b.com/test");
+ } catch (URISyntaxException e) {}
+ assertNotNull(uri);
+
+ assertEquals("a.com", uri.getHost());
+ }
+
+ public void testGetHost3() {
+ URI uri = null;
+ try {
+ uri = new URI("https://a.com");
+ } catch (URISyntaxException e) {}
+ assertNotNull(uri);
+
+ assertEquals("a.com", uri.getHost());
+ }
+
+ public void testGetHost4() {
+ URI uri = null;
+ try {
+ uri = new URI("https://a.com/test#test");
+ } catch (URISyntaxException e) {}
+ assertNotNull(uri);
+
+ assertEquals("a.com", uri.getHost());
+ }
+
+ public void testGetHost5() {
+ URI uri = null;
+ try {
+ uri = new URI("a.com");
+ } catch (URISyntaxException e) {}
+ assertNotNull(uri);
+
+ assertNull(uri.getHost());
+ }
+}
diff --git a/WordPress/src/androidTest/java/URLTest.java b/WordPress/src/androidTest/java/URLTest.java
new file mode 100644
index 000000000..04a225029
--- /dev/null
+++ b/WordPress/src/androidTest/java/URLTest.java
@@ -0,0 +1,55 @@
+import android.test.InstrumentationTestCase;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+public class URLTest extends InstrumentationTestCase {
+ public void testGetHost1() {
+ URL url = null;
+ try {
+ url = new URL("https://wordpress.com");
+ } catch (MalformedURLException e) {}
+ assertNotNull(url);
+
+ assertEquals("wordpress.com", url.getHost());
+ }
+
+ public void testGetHost2() {
+ URL url = null;
+ try {
+ url = new URL("http://a.com#.b.com/test");
+ } catch (MalformedURLException e) {}
+ assertNotNull(url);
+
+ assertEquals("a.com", url.getHost());
+ }
+
+ public void testGetHost3() {
+ URL url = null;
+ try {
+ url = new URL("https://a.com");
+ } catch (MalformedURLException e) {}
+ assertNotNull(url);
+
+ assertEquals("a.com", url.getHost());
+ }
+
+ public void testGetHost4() {
+ URL url = null;
+ try {
+ url = new URL("https://a.com/test#test");
+ } catch (MalformedURLException e) {}
+ assertNotNull(url);
+
+ assertEquals("a.com", url.getHost());
+ }
+
+ public void testGetHost5() {
+ URL url = null;
+ try {
+ url = new URL("a.com");
+ } catch (MalformedURLException e) {}
+
+ assertNull(url);
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/DefaultMocksInstrumentationTestCase.java b/WordPress/src/androidTest/java/org/wordpress/android/DefaultMocksInstrumentationTestCase.java
new file mode 100644
index 000000000..5443c82fa
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/DefaultMocksInstrumentationTestCase.java
@@ -0,0 +1,42 @@
+package org.wordpress.android;
+
+import android.content.Context;
+import android.test.InstrumentationTestCase;
+import android.test.RenamingDelegatingContext;
+
+import org.wordpress.android.mocks.RestClientFactoryTest;
+import org.wordpress.android.mocks.XMLRPCFactoryTest;
+import org.wordpress.android.util.AppLog;
+
+public class DefaultMocksInstrumentationTestCase extends InstrumentationTestCase {
+ protected Context mTargetContext;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ FactoryUtils.initWithTestFactories();
+
+ mTargetContext = new RenamingDelegatingContext(getInstrumentation().getTargetContext(), "test_");
+ TestUtils.clearApplicationState(mTargetContext);
+
+ // Init contexts
+ XMLRPCFactoryTest.sContext = getInstrumentation().getContext();
+ RestClientFactoryTest.sContext = getInstrumentation().getContext();
+ AppLog.v(AppLog.T.TESTS, "Contexts set");
+
+ // Set mode to Customizable
+ XMLRPCFactoryTest.sMode = XMLRPCFactoryTest.Mode.CUSTOMIZABLE_XML;
+ RestClientFactoryTest.sMode = RestClientFactoryTest.Mode.CUSTOMIZABLE;
+ AppLog.v(AppLog.T.TESTS, "Modes set to customizable");
+
+ // Set default variant
+ RestClientFactoryTest.setPrefixAllInstances("default");
+ XMLRPCFactoryTest.setPrefixAllInstances("default");
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ FactoryUtils.clearFactories();
+ super.tearDown();
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/FactoryUtils.java b/WordPress/src/androidTest/java/org/wordpress/android/FactoryUtils.java
new file mode 100644
index 000000000..57dadc937
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/FactoryUtils.java
@@ -0,0 +1,45 @@
+package org.wordpress.android;
+
+import org.wordpress.android.mocks.OAuthAuthenticatorFactoryTest;
+import org.wordpress.android.mocks.RestClientFactoryTest;
+import org.wordpress.android.mocks.SystemServiceFactoryTest;
+import org.wordpress.android.mocks.XMLRPCFactoryTest;
+import org.wordpress.android.networking.OAuthAuthenticatorFactory;
+import org.wordpress.android.networking.RestClientFactory;
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+import org.wordpress.android.util.SystemServiceFactory;
+import org.xmlrpc.android.XMLRPCFactory;
+
+import java.lang.reflect.Field;
+
+public class FactoryUtils {
+ public static void clearFactories() {
+ // clear factories
+ forceFactoryInjection(XMLRPCFactory.class, null);
+ forceFactoryInjection(RestClientFactory.class, null);
+ forceFactoryInjection(OAuthAuthenticatorFactory.class, null);
+ forceFactoryInjection(SystemServiceFactory.class, null);
+ AppLog.v(T.TESTS, "Null factories set");
+ }
+
+ public static void initWithTestFactories() {
+ // create test factories
+ forceFactoryInjection(XMLRPCFactory.class, new XMLRPCFactoryTest());
+ forceFactoryInjection(RestClientFactory.class, new RestClientFactoryTest());
+ forceFactoryInjection(OAuthAuthenticatorFactory.class, new OAuthAuthenticatorFactoryTest());
+ forceFactoryInjection(SystemServiceFactory.class, new SystemServiceFactoryTest());
+ AppLog.v(T.TESTS, "Mocks factories instantiated");
+ }
+
+ private static void forceFactoryInjection(Class klass, Object factory) {
+ try {
+ Field field = klass.getDeclaredField("sFactory");
+ field.setAccessible(true);
+ field.set(null, factory);
+ AppLog.v(T.TESTS, "Factory " + klass + " injected");
+ } catch (Exception e) {
+ AppLog.e(T.TESTS, "Can't inject test factory " + klass);
+ }
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/PostUploadServiceTest.java b/WordPress/src/androidTest/java/org/wordpress/android/PostUploadServiceTest.java
new file mode 100644
index 000000000..29c28f9d4
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/PostUploadServiceTest.java
@@ -0,0 +1,101 @@
+package org.wordpress.android;
+
+import android.content.Context;
+import android.content.Intent;
+import android.test.RenamingDelegatingContext;
+import android.test.ServiceTestCase;
+
+import org.wordpress.android.mocks.RestClientFactoryTest;
+import org.wordpress.android.mocks.XMLRPCFactoryTest;
+import org.wordpress.android.ui.posts.services.PostUploadService;
+import org.wordpress.android.util.AppLog;
+
+public class PostUploadServiceTest extends ServiceTestCase<PostUploadService> {
+ protected Context testContext;
+ protected Context targetContext;
+
+ public PostUploadServiceTest() {
+ super(PostUploadService.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ FactoryUtils.initWithTestFactories();
+
+ String namespace = BuildConfig.FLAVOR.equals("wasabi") ? "org.wordpress.android.beta"
+ : "org.wordpress.android";
+ testContext = getContext().createPackageContext(namespace, Context.CONTEXT_IGNORE_SECURITY);
+ targetContext = new RenamingDelegatingContext(getContext(), "test_");
+
+ // Init contexts
+ XMLRPCFactoryTest.sContext = getContext();
+ RestClientFactoryTest.sContext = getContext();
+ AppLog.v(AppLog.T.TESTS, "Contexts set");
+
+ // Set mode to Customizable
+ XMLRPCFactoryTest.sMode = XMLRPCFactoryTest.Mode.CUSTOMIZABLE_XML;
+ RestClientFactoryTest.sMode = RestClientFactoryTest.Mode.CUSTOMIZABLE;
+ AppLog.v(AppLog.T.TESTS, "Modes set to customizable");
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ FactoryUtils.clearFactories();
+ super.tearDown();
+ }
+
+ public void testStartable() {
+ Intent startIntent = new Intent();
+ startIntent.setClass(getContext(), PostUploadService.class);
+ startService(startIntent);
+ }
+
+ // test reproducing https://github.com/wordpress-mobile/WordPress-Android/issues/884
+ // Following test is valid but won't be fixed now (it will with the post editor rewrite)
+ /*
+ public void testUploadMalformedPostNullPostId() throws Exception {
+ // init a test db containing a few blogs and posts
+ SQLiteDatabase db = TestUtils.loadDBFromDump(targetContext, testContext, "taliwutt-blogs-sample.sql");
+ WordPressDB wpdb = WordPress.wpDB;
+
+ // callback should be called 3 times
+ final CountDownLatch countDownLatch = new CountDownLatch(3);
+
+ // trick to have a mutable final int
+ final int[] notifyCount = {0};
+ final int[] cancelCount = {0};
+ SystemServiceFactoryTest.sNotificationCallback = new Answer() {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable {
+ Object[] args = invocation.getArguments();
+ if ("notify".equals(invocation.getMethod().getName())) {
+ notifyCount[0] += 1;
+ }
+ if ("cancel".equals(invocation.getMethod().getName())) {
+ cancelCount[0] += 1;
+ }
+ countDownLatch.countDown();
+ return null;
+ }
+ };
+
+ // get an existing uploaded post (defined in the previously loaded db dump)
+ int postId = 27;
+ Post post = wpdb.getPostForLocalTablePostId(postId);
+
+ // fake the remote post id to null
+ post.setRemotePostId(null);
+
+ // push it to the PostUploadService
+ PostUploadService.addPostToUpload(post);
+ startService(new Intent(getContext(), PostUploadService.class));
+
+ // wait for the response
+ countDownLatch.await(15, TimeUnit.SECONDS);
+ assertTrue("NotificationManager.cancel must be called at least once - see #884",
+ cancelCount[0] == 1 && notifyCount[0] == 2);
+ }
+ */
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/TestUtils.java b/WordPress/src/androidTest/java/org/wordpress/android/TestUtils.java
new file mode 100644
index 000000000..0bf1d8563
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/TestUtils.java
@@ -0,0 +1,168 @@
+package org.wordpress.android;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import android.database.sqlite.SQLiteDatabase;
+import android.preference.PreferenceManager;
+import android.text.TextUtils;
+
+import org.wordpress.android.util.DateTimeUtils;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Field;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Locale;
+import java.util.Map;
+
+import de.greenrobot.event.EventBus;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
+
+public class TestUtils {
+ private static String DATABASE_NAME = "wordpress";
+
+ public static SQLiteDatabase loadDBFromDump(Context targetContext, Context testContext, String filename) {
+ targetContext.deleteDatabase(DATABASE_NAME);
+ WordPress.wpDB = new WordPressDB(targetContext);
+
+ Field dbField;
+ try {
+ dbField = WordPressDB.class.getDeclaredField("db");
+ dbField.setAccessible(true);
+ SQLiteDatabase db = (SQLiteDatabase) dbField.get(WordPress.wpDB);
+ assertNotNull(db);
+
+ // Load file
+ InputStream is = testContext.getAssets().open(filename);
+ InputStreamReader inputStreamReader = new InputStreamReader(is);
+ BufferedReader f = new BufferedReader(inputStreamReader);
+ for (String line = f.readLine(); line != null; line = f.readLine()) {
+ if (TextUtils.isEmpty(line)) {
+ continue;
+ }
+ try {
+ db.execSQL(line);
+ } catch (android.database.sqlite.SQLiteException e) {
+ // ignore import errors
+ }
+ }
+ f.close();
+ return db;
+ } catch (NoSuchFieldException e) {
+ assertTrue(e.toString(), false);
+ } catch (IllegalAccessException e) {
+ assertTrue(e.toString(), false);
+ } catch (IOException e) {
+ assertTrue(e.toString(), false);
+ }
+ return null;
+ }
+
+ public static void resetEventBus() {
+ Field dbField;
+ try {
+ dbField = EventBus.class.getDeclaredField("defaultInstance");
+ dbField.setAccessible(true);
+ dbField.set(EventBus.class, null);
+ } catch (NoSuchFieldException e) {
+ assertTrue(e.toString(), false);
+ } catch (IllegalAccessException e) {
+ assertTrue(e.toString(), false);
+ }
+ }
+
+ public static void clearDefaultSharedPreferences(Context targetContext) {
+ SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(targetContext);
+ Editor editor = settings.edit();
+ editor.clear();
+ editor.commit();
+ }
+
+ public static void dropDB(Context targetContext) {
+ targetContext.deleteDatabase(DATABASE_NAME);
+ }
+
+ public static void clearApplicationState(Context context) {
+ WordPress.currentBlog = null;
+ if (WordPress.getContext() != null) {
+ try {
+ WordPress.WordPressComSignOut(context);
+ } catch (Exception e) {
+ // noop
+ }
+ }
+ TestUtils.clearDefaultSharedPreferences(context);
+ TestUtils.dropDB(context);
+ }
+
+ public static String convertStreamToString(java.io.InputStream is) {
+ java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
+ return s.hasNext() ? s.next() : "";
+ }
+
+ public static Date gsonStringToJavaDate(final String strDate) {
+ try {
+ SimpleDateFormat df = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a", Locale.ENGLISH);
+ return df.parse(strDate);
+ } catch (ParseException e) {
+ return null;
+ }
+ }
+
+ public static Date parseStringToDate(String value) {
+ // try do parseit as a Date
+ Date newValue = DateTimeUtils.dateFromIso8601(value);
+ if (newValue != null) {
+ return newValue;
+ }
+ newValue = gsonStringToJavaDate(value);
+ if (newValue != null) {
+ return newValue;
+ }
+ return null;
+ }
+
+ public static Object castIt(Object value) {
+ if (value instanceof HashMap) {
+ return injectDateInMap((Map<String, Object>) value);
+ } else if (value instanceof String) {
+ Date newValue = parseStringToDate((String) value);
+ if (newValue != null) {
+ return newValue;
+ } else {
+ return value;
+ }
+ } else if (value instanceof Double) {
+ return (int) Math.round((Double) value);
+ } else if (value instanceof Object[]) {
+ return injectDateInArray((Object[]) value);
+ }
+ return value;
+ }
+
+ public static Object[] injectDateInArray(Object[] array) {
+ HashSet<Object> res = new HashSet<Object>();
+ for (Object value : array) {
+ res.add(castIt(value));
+ }
+ return res.toArray();
+ }
+
+ public static Map<String, Object> injectDateInMap(Map<String, Object> hashMap) {
+ Map<String, Object> res = new HashMap<String, Object>();
+ for (String key : hashMap.keySet()) {
+ Object value = hashMap.get(key);
+ res.put(key, castIt(value));
+ }
+ return res;
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/UserAgentTest.java b/WordPress/src/androidTest/java/org/wordpress/android/UserAgentTest.java
new file mode 100644
index 000000000..ec2fd467d
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/UserAgentTest.java
@@ -0,0 +1,29 @@
+package org.wordpress.android;
+
+import junit.framework.TestCase;
+
+public class UserAgentTest extends TestCase {
+
+ /**
+ * Copy of {@link WordPress#USER_AGENT_APPNAME}.
+ * Copied here in order to be able to catch User-Agent changes and verify that they're intentional.
+ */
+ private static final String USER_AGENT_APPNAME = "wp-android";
+
+ public void testGetDefaultUserAgent() {
+ String defaultUserAgent = WordPress.getDefaultUserAgent();
+ assertNotNull("Default User-Agent must be set", defaultUserAgent);
+ assertTrue("Default User-Agent must not be an empty string", defaultUserAgent.length() > 0);
+ assertFalse("Default User-Agent must not contain app name", defaultUserAgent.contains(USER_AGENT_APPNAME));
+ }
+
+ public void testGetUserAgent() {
+ String userAgent = WordPress.getUserAgent();
+ assertNotNull("User-Agent must be set", userAgent);
+ assertTrue("User-Agent must not be an empty string", userAgent.length() > 0);
+ assertTrue("User-Agent must contain app name substring", userAgent.contains(USER_AGENT_APPNAME));
+
+ String defaultUserAgent = WordPress.getDefaultUserAgent();
+ assertTrue("User-Agent must be derived from default User-Agent", userAgent.contains(defaultUserAgent));
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/database/CommentTableTest.java b/WordPress/src/androidTest/java/org/wordpress/android/database/CommentTableTest.java
new file mode 100644
index 000000000..1f3aaee86
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/database/CommentTableTest.java
@@ -0,0 +1,61 @@
+package org.wordpress.android.database;
+
+import android.content.Context;
+import android.test.InstrumentationTestCase;
+import android.test.RenamingDelegatingContext;
+
+import org.wordpress.android.TestUtils;
+import org.wordpress.android.datasets.CommentTable;
+import org.wordpress.android.models.Comment;
+
+public class CommentTableTest extends InstrumentationTestCase {
+ protected Context mTargetContext;
+ protected Context mTestContext;
+
+ @Override
+ protected void setUp() throws Exception {
+ // Clean application state
+ mTargetContext = new RenamingDelegatingContext(getInstrumentation().getTargetContext(), "test_");
+ mTestContext = getInstrumentation().getContext();
+ TestUtils.clearApplicationState(mTargetContext);
+ TestUtils.resetEventBus();
+ }
+
+ public void testGetCommentEqualTo1024K() {
+ createAndGetComment(1024 * 1024);
+ }
+
+ public void testGetCommentEqualTo2096550() {
+ createAndGetComment(2096550); // 1024 * 1024 * 2 - 603
+ }
+
+ public void testGetCommentEqualTo2096549() {
+ createAndGetComment(2096549); // 1024 * 1024 * 2 - 602
+ }
+
+ public void testGetCommentEqualTo2048K() {
+ createAndGetComment(1024 * 1024 * 2);
+ }
+
+ private void createAndGetComment(int commentLength) {
+ // Load a sample DB and inject it into WordPress.wpdb
+ TestUtils.loadDBFromDump(mTargetContext, mTestContext, "taliwutt-blogs-sample.sql");
+
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < commentLength; ++i) {
+ sb.append('a');
+ }
+ Comment bigComment = new Comment(0,
+ 1,
+ "author",
+ "0",
+ sb.toString(),
+ "approve",
+ "arst",
+ "http://mop.com",
+ "mop@mop.com",
+ "");
+ CommentTable.addComment(0, bigComment);
+ CommentTable.getCommentsForBlog(0);
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/database/WordPressDBTest.java b/WordPress/src/androidTest/java/org/wordpress/android/database/WordPressDBTest.java
new file mode 100644
index 000000000..0e8b7de50
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/database/WordPressDBTest.java
@@ -0,0 +1,17 @@
+package org.wordpress.android.database;
+
+import android.content.Context;
+import android.test.InstrumentationTestCase;
+import android.test.RenamingDelegatingContext;
+
+public class WordPressDBTest extends InstrumentationTestCase {
+ protected Context testContext;
+ protected Context targetContext;
+
+ @Override
+ protected void setUp() {
+ // Run tests in an isolated context
+ targetContext = new RenamingDelegatingContext(getInstrumentation().getTargetContext(), "test_");
+ testContext = getInstrumentation().getContext();
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/OAuthAuthenticatorEmptyMock.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/OAuthAuthenticatorEmptyMock.java
new file mode 100644
index 000000000..2895cf0ed
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/OAuthAuthenticatorEmptyMock.java
@@ -0,0 +1,11 @@
+package org.wordpress.android.mocks;
+
+import org.wordpress.android.models.AccountHelper;
+import org.wordpress.android.networking.AuthenticatorRequest;
+import org.wordpress.android.networking.OAuthAuthenticator;
+
+public class OAuthAuthenticatorEmptyMock extends OAuthAuthenticator {
+ public void authenticate(AuthenticatorRequest request) {
+ AccountHelper.getDefaultAccount().setAccessToken("dead-parrot");
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/OAuthAuthenticatorFactoryTest.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/OAuthAuthenticatorFactoryTest.java
new file mode 100644
index 000000000..d84962500
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/OAuthAuthenticatorFactoryTest.java
@@ -0,0 +1,24 @@
+package org.wordpress.android.mocks;
+
+import android.content.Context;
+
+import org.wordpress.android.networking.OAuthAuthenticator;
+import org.wordpress.android.networking.OAuthAuthenticatorFactoryAbstract;
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+
+public class OAuthAuthenticatorFactoryTest implements OAuthAuthenticatorFactoryAbstract {
+ public enum Mode {EMPTY}
+
+ public static Mode sMode = Mode.EMPTY;
+ public static Context sContext;
+
+ public OAuthAuthenticator make() {
+ switch (sMode) {
+ case EMPTY:
+ default:
+ AppLog.v(T.TESTS, "make: OAuthAuthenticatorEmptyMock");
+ return new OAuthAuthenticatorEmptyMock();
+ }
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientCustomizableMock.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientCustomizableMock.java
new file mode 100644
index 000000000..6f066d6d1
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientCustomizableMock.java
@@ -0,0 +1,150 @@
+package org.wordpress.android.mocks;
+
+import android.content.Context;
+
+import com.android.volley.NetworkResponse;
+import com.android.volley.Request.Method;
+import com.android.volley.TimeoutError;
+import com.android.volley.VolleyError;
+import com.wordpress.rest.RestClient;
+import com.wordpress.rest.RestRequest;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.wordpress.android.TestUtils;
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+public class RestClientCustomizableMock extends RestClient {
+ private Context mContext;
+ private String mPrefix;
+
+ public void setContextAndPrefix(Context context, String prefix) {
+ mContext = context;
+ mPrefix = prefix;
+ }
+
+ public void setPrefix(String prefix) {
+ mPrefix = prefix;
+ }
+
+ public void setContext(Context context) {
+ mContext = context;
+ }
+
+ public RestClientCustomizableMock(com.android.volley.RequestQueue queue) {
+ super(queue);
+ }
+
+ public RestClientCustomizableMock(com.android.volley.RequestQueue queue, String token) {
+ super(queue, token, REST_API_ENDPOINT_URL_V1);
+ }
+
+ public String getAbsoluteURL(String url) {
+ return null;
+ }
+
+ public String getAbsoluteURL(String path, java.util.Map<String, String> params) {
+ return null;
+ }
+
+ public RestRequest get(String path, RestRequest.Listener listener, RestRequest.ErrorListener errorListener) {
+ AppLog.v(T.TESTS, this.getClass() + ": get(" + path + ")");
+ return new RestRequest(Method.GET, path, null, listener, errorListener);
+ }
+
+ public RestRequest post(String path, java.util.Map<String, String> body, RestRequest.Listener listener,
+ RestRequest.ErrorListener errorListener) {
+ AppLog.v(T.TESTS, this.getClass() + ": post(" + path + ")");
+ return new RestRequest(Method.POST, path, body, listener, errorListener);
+ }
+
+ private VolleyError forgeVolleyErrorFromFilename(String filename) {
+ String strData = fileToString(filename);
+ byte[] data = new byte[0];
+ if (strData != null) {
+ data = strData.getBytes();
+ }
+ NetworkResponse networkResponse = new NetworkResponse(400, data, null, false);
+ VolleyError ve = new VolleyError(networkResponse);
+ return ve;
+ }
+
+ private TimeoutError forgeVolleyTimeoutError() {
+ TimeoutError te = new TimeoutError();
+ return te;
+ }
+
+ private String fileToString(String filename) {
+ try {
+ InputStream is = mContext.getAssets().open(filename);
+ String data = TestUtils.convertStreamToString(is);
+ AppLog.v(T.TESTS, "file read:" + filename);
+ return data;
+ } catch (IOException e) {
+ AppLog.e(T.TESTS, "can't read file: " + filename + " - " + e.toString());
+ }
+ return null;
+ }
+
+ public RestRequest makeRequest(int method, String url, java.util.Map<String, String> params,
+ RestRequest.Listener listener, RestRequest.ErrorListener errorListener) {
+ AppLog.v(T.TESTS, this.getClass() + ": makeRequest(" + url + ")");
+ RestRequest dummyReturnValue = new RestRequest(method, url, params, listener, errorListener);
+ // URL example: https://public-api.wordpress.com/rest/v1/me
+ // Filename: default-public-api-wordpress-com-rest-v1-me.json
+ String filename = mPrefix + "-" + url.replace("https://", "").replace("/", "-").replace(".", "-").replace("?",
+ "-") + ".json";
+
+ if ("password-invalid".equals(mPrefix) && errorListener != null) {
+ errorListener.onErrorResponse(forgeVolleyErrorFromFilename(filename));
+ return dummyReturnValue;
+ }
+
+ if ("username-exists".equals(mPrefix) && errorListener != null) {
+ errorListener.onErrorResponse(forgeVolleyErrorFromFilename(filename));
+ return dummyReturnValue;
+ }
+
+ if ("timeout".equals(mPrefix) && errorListener != null) {
+ errorListener.onErrorResponse(forgeVolleyTimeoutError());
+ return dummyReturnValue;
+ }
+
+ if ("site-reserved".equals(mPrefix) && errorListener != null) {
+ errorListener.onErrorResponse(forgeVolleyErrorFromFilename(filename));
+ return dummyReturnValue;
+ }
+
+ String data = fileToString(filename);
+ if (data == null) {
+ AppLog.e(T.TESTS, "Can't read file: " + filename);
+ throw new RuntimeException("Can't read file: " + filename);
+ }
+
+ try {
+ JSONObject jsonObj = new JSONObject(data);
+ listener.onResponse(jsonObj);
+ } catch (JSONException je) {
+ AppLog.e(T.TESTS, je.toString());
+ }
+ return dummyReturnValue;
+ }
+
+ public RestRequest send(RestRequest request) {
+ return request;
+ }
+
+ public void setUserAgent(String userAgent) {
+ }
+
+ public void setAccessToken(String token) {
+ }
+
+ public boolean isAuthenticated() {
+ return true;
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientEmptyMock.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientEmptyMock.java
new file mode 100644
index 000000000..b07b1b2a3
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientEmptyMock.java
@@ -0,0 +1,63 @@
+package org.wordpress.android.mocks;
+
+import com.android.volley.Request.Method;
+import com.wordpress.rest.RestClient;
+import com.wordpress.rest.RestRequest;
+
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+
+public class RestClientEmptyMock extends RestClient {
+ public RestClientEmptyMock(com.android.volley.RequestQueue queue) {
+ super(queue);
+ }
+
+ public RestClientEmptyMock(com.android.volley.RequestQueue queue, java.lang.String token) {
+ super(queue, token, REST_API_ENDPOINT_URL_V1);
+ }
+
+ public java.lang.String getAbsoluteURL(java.lang.String url) {
+ return null;
+ }
+
+ public java.lang.String getAbsoluteURL(java.lang.String path,
+ java.util.Map<java.lang.String, java.lang.String> params) {
+ return null;
+ }
+
+ public com.wordpress.rest.RestRequest get(java.lang.String path, com.wordpress.rest.RestRequest.Listener listener,
+ com.wordpress.rest.RestRequest.ErrorListener errorListener) {
+ AppLog.v(T.TESTS, this.getClass() + ": get(" + path + ")");
+ return new RestRequest(Method.GET, path, null, listener, errorListener);
+ }
+
+ public com.wordpress.rest.RestRequest post(java.lang.String path,
+ java.util.Map<java.lang.String, java.lang.String> body,
+ com.wordpress.rest.RestRequest.Listener listener,
+ com.wordpress.rest.RestRequest.ErrorListener errorListener) {
+ AppLog.v(T.TESTS, this.getClass() + ": post(" + path + ")");
+ return new RestRequest(Method.POST, path, body, listener, errorListener);
+ }
+
+ public com.wordpress.rest.RestRequest makeRequest(int method, java.lang.String url,
+ java.util.Map<java.lang.String, java.lang.String> params,
+ com.wordpress.rest.RestRequest.Listener listener,
+ com.wordpress.rest.RestRequest.ErrorListener errorListener) {
+ AppLog.v(T.TESTS, this.getClass() + ": makeRequest(" + url + ")");
+ return new RestRequest(method, url, params, listener, errorListener);
+ }
+
+ public com.wordpress.rest.RestRequest send(com.wordpress.rest.RestRequest request) {
+ return request;
+ }
+
+ public void setUserAgent(java.lang.String userAgent) {
+ }
+
+ public void setAccessToken(java.lang.String token) {
+ }
+
+ public boolean isAuthenticated() {
+ return true;
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientFactoryTest.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientFactoryTest.java
new file mode 100644
index 000000000..f403e5126
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/RestClientFactoryTest.java
@@ -0,0 +1,71 @@
+package org.wordpress.android.mocks;
+
+import android.content.Context;
+
+import com.android.volley.RequestQueue;
+import com.wordpress.rest.RestClient;
+import com.wordpress.rest.RestClient.REST_CLIENT_VERSIONS;
+
+import org.wordpress.android.networking.RestClientFactoryAbstract;
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class RestClientFactoryTest implements RestClientFactoryAbstract {
+ public static String sPrefix = "default";
+ public static RestClient.REST_CLIENT_VERSIONS sVersion = REST_CLIENT_VERSIONS.V1;
+ public static Context sContext;
+ // keep a reference to each instances so we can update contexts and prefixes after instantiation
+ public static Set<RestClientCustomizableMock> sInstances = new HashSet<RestClientCustomizableMock>();
+
+ public static void setContextAllInstances(Context context) {
+ sContext = context;
+ if (sMode != Mode.CUSTOMIZABLE) {
+ AppLog.e(T.TESTS, "You try to change context on a non-customizable RestClient mock");
+ }
+ for (RestClientCustomizableMock client : sInstances) {
+ client.setContext(context);
+ }
+ }
+
+ public static void setPrefixAllInstances(String prefix) {
+ sPrefix = prefix;
+ if (sMode != Mode.CUSTOMIZABLE) {
+ AppLog.e(T.TESTS, "You try to change prefix on a non-customizable RestClient mock");
+ }
+ for (RestClientCustomizableMock client : sInstances) {
+ client.setPrefix(prefix);
+ }
+ }
+
+ public static Mode sMode = Mode.EMPTY;
+
+ public RestClient make(RequestQueue queue) {
+ switch (sMode) {
+ case CUSTOMIZABLE:
+ RestClientCustomizableMock client = new RestClientCustomizableMock(queue);
+ if (sContext != null) {
+ client.setContextAndPrefix(sContext, sPrefix);
+ } else {
+ AppLog.e(T.TESTS, "You have to set RestClientFactoryTest.sContext field before running tests");
+ throw new IllegalStateException();
+ }
+ AppLog.v(T.TESTS, "make: RestClientCustomizableMock");
+ sInstances.add(client);
+ return client;
+ case EMPTY:
+ default:
+ AppLog.v(T.TESTS, "make: RestClientEmptyMock");
+ return new RestClientEmptyMock(queue);
+ }
+ }
+
+ public RestClient make(RequestQueue queue, RestClient.REST_CLIENT_VERSIONS version) {
+ sVersion = version;
+ return make(queue);
+ }
+
+ public enum Mode {EMPTY, CUSTOMIZABLE}
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/SystemServiceFactoryTest.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/SystemServiceFactoryTest.java
new file mode 100644
index 000000000..a099de8ef
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/SystemServiceFactoryTest.java
@@ -0,0 +1,35 @@
+package org.wordpress.android.mocks;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.content.Context;
+
+import org.mockito.stubbing.Answer;
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+import org.wordpress.android.util.SystemServiceFactoryAbstract;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+
+public class SystemServiceFactoryTest implements SystemServiceFactoryAbstract {
+ public static Answer sNotificationCallback;
+
+ public Object get(Context context, String name) {
+ System.setProperty("dexmaker.dexcache", context.getCacheDir().getPath());
+ if (Context.NOTIFICATION_SERVICE.equals(name)) {
+ NotificationManager notificationManager = mock(NotificationManager.class);
+ if (sNotificationCallback != null) {
+ doAnswer(sNotificationCallback).when(notificationManager).notify(anyInt(), any(Notification.class));
+ doAnswer(sNotificationCallback).when(notificationManager).cancel(anyInt());
+ }
+ return notificationManager;
+ } else {
+ AppLog.e(T.TESTS, "SystemService:" + name + "No supported in SystemServiceFactoryTest");
+ }
+ return null;
+ }
+
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableJSONMock.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableJSONMock.java
new file mode 100644
index 000000000..d68746c4a
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableJSONMock.java
@@ -0,0 +1,94 @@
+package org.wordpress.android.mocks;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+import org.wordpress.android.TestUtils;
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+import org.xmlrpc.android.LoggedInputStream;
+import org.xmlrpc.android.XMLRPCCallback;
+import org.xmlrpc.android.XMLRPCException;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.net.URI;
+import java.util.HashMap;
+
+public class XMLRPCClientCustomizableJSONMock extends XMLRPCClientCustomizableMockAbstract {
+ private LoggedInputStream mLoggedInputStream;
+
+ public XMLRPCClientCustomizableJSONMock(URI uri, String httpUser, String httpPassword) {
+ }
+
+ public void addQuickPostHeader(String type) {
+ }
+
+ public void setAuthorizationHeader(String authToken) {
+ }
+
+ private Object readFile(String method, String prefix) {
+ // method example: wp.getUsersBlogs
+ // Filename: default-wp.getUsersBlogs.json
+ String filename = prefix + "-" + method + ".json";
+ try {
+ Gson gson = new Gson();
+ mLoggedInputStream = new LoggedInputStream(mContext.getAssets().open(filename));
+ String jsonString = TestUtils.convertStreamToString(mLoggedInputStream);
+ AppLog.i(T.TESTS, "loading: " + filename);
+ try {
+ // Try to load a JSONArray
+ return TestUtils.injectDateInArray(gson.fromJson(jsonString, Object[].class));
+ } catch (Exception e) {
+ // If that fails, try to load a JSONObject
+ Type type = new TypeToken<HashMap<String, Object>>(){}.getType();
+ HashMap<String, Object> map = gson.fromJson(jsonString, type);
+ return TestUtils.injectDateInMap(map);
+ }
+ } catch (IOException e) {
+ AppLog.e(T.TESTS, "can't read file: " + filename);
+ }
+ return null;
+ }
+
+ public Object call(String method, Object[] params) throws XMLRPCException {
+ mLoggedInputStream = null;
+ AppLog.v(T.TESTS, "XMLRPCClientCustomizableJSONMock: call: " + method);
+ if ("login-failure".equals(mPrefix)) {
+ // Wrong login
+ throw new XMLRPCException("code 403");
+ }
+
+ Object retValue = readFile(method, mPrefix);
+ if (retValue == null) {
+ // failback to default
+ AppLog.w(T.TESTS, "failback to default");
+ retValue = readFile(method, "default");
+ }
+ return retValue;
+ }
+
+ public Object call(String method) throws XMLRPCException {
+ return null;
+ }
+
+ public Object call(String method, Object[] params, File tempFile) throws XMLRPCException {
+ return null;
+ }
+
+ public long callAsync(XMLRPCCallback listener, String methodName, Object[] params) {
+ return 0;
+ }
+
+ public long callAsync(XMLRPCCallback listener, String methodName, Object[] params, File tempFile) {
+ return 0;
+ }
+
+ public String getResponse() {
+ if (mLoggedInputStream == null) {
+ return "";
+ }
+ return mLoggedInputStream.getResponseDocument();
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableMockAbstract.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableMockAbstract.java
new file mode 100644
index 000000000..c8690f6b8
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableMockAbstract.java
@@ -0,0 +1,23 @@
+package org.wordpress.android.mocks;
+
+import android.content.Context;
+
+import org.xmlrpc.android.XMLRPCClientInterface;
+
+public abstract class XMLRPCClientCustomizableMockAbstract implements XMLRPCClientInterface {
+ protected Context mContext;
+ protected String mPrefix;
+
+ public void setContextAndPrefix(Context context, String prefix) {
+ mContext = context;
+ mPrefix = prefix;
+ }
+
+ public void setPrefix(String prefix) {
+ mPrefix = prefix;
+ }
+
+ public void setContext(Context context) {
+ mContext = context;
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableXMLMock.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableXMLMock.java
new file mode 100644
index 000000000..57e8291f9
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientCustomizableXMLMock.java
@@ -0,0 +1,90 @@
+package org.wordpress.android.mocks;
+
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlrpc.android.LoggedInputStream;
+import org.xmlrpc.android.XMLRPCCallback;
+import org.xmlrpc.android.XMLRPCClient;
+import org.xmlrpc.android.XMLRPCException;
+import org.xmlrpc.android.XMLRPCFault;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URI;
+
+public class XMLRPCClientCustomizableXMLMock extends XMLRPCClientCustomizableMockAbstract {
+ XMLRPCClient mXmlRpcClient;
+ private LoggedInputStream mLoggedInputStream;
+
+ public XMLRPCClientCustomizableXMLMock(URI uri, String httpUser, String httpPassword) {
+ // Used to test ctor and preparePostMethod
+ mXmlRpcClient = new XMLRPCClient("", "", "");
+ }
+
+ public void addQuickPostHeader(String type) {
+ }
+
+ public void setAuthorizationHeader(String authToken) {
+ }
+
+ private Object readFile(String method, String prefix) throws IOException, XMLRPCException, XmlPullParserException {
+ // method example: wp.getUsersBlogs
+ // Filename: default-wp.getUsersBlogs.xml
+ String filename = prefix + "-" + method + ".xml";
+ try {
+ mLoggedInputStream = new LoggedInputStream(mContext.getAssets().open(filename));
+ return XMLRPCClient.parseXMLRPCResponse(mLoggedInputStream, null);
+ } catch (FileNotFoundException e) {
+ AppLog.e(T.TESTS, "file not found: " + filename);
+ }
+ return null;
+ }
+
+ public Object call(String method, Object[] params) throws XMLRPCException, IOException, XmlPullParserException {
+ mLoggedInputStream = null;
+ try {
+ mXmlRpcClient.preparePostMethod(method, params, null);
+ } catch (IOException e) {
+ // unexpected error, test must fail
+ throw new XMLRPCException("preparePostMethod failed");
+ }
+ AppLog.v(T.TESTS, "XMLRPCClientCustomizableXMLMock call: " + method);
+ if ("login-failure".equals(mPrefix)) {
+ // Wrong login
+ throw new XMLRPCFault("code 403", 403);
+ }
+
+ Object retValue = readFile(method, mPrefix);
+ if (retValue == null) {
+ // failback to default
+ AppLog.w(T.TESTS, "failback to default");
+ retValue = readFile(method, "default");
+ }
+ return retValue;
+ }
+
+ public Object call(String method) throws XMLRPCException {
+ return null;
+ }
+
+ public Object call(String method, Object[] params, File tempFile) throws XMLRPCException {
+ return null;
+ }
+
+ public long callAsync(XMLRPCCallback listener, String methodName, Object[] params) {
+ return 0;
+ }
+
+ public long callAsync(XMLRPCCallback listener, String methodName, Object[] params, File tempFile) {
+ return 0;
+ }
+
+ public String getResponse() {
+ if (mLoggedInputStream == null) {
+ return "";
+ }
+ return mLoggedInputStream.getResponseDocument();
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientEmptyMock.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientEmptyMock.java
new file mode 100644
index 000000000..f995e2446
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCClientEmptyMock.java
@@ -0,0 +1,43 @@
+package org.wordpress.android.mocks;
+
+import org.xmlrpc.android.XMLRPCCallback;
+import org.xmlrpc.android.XMLRPCClientInterface;
+import org.xmlrpc.android.XMLRPCException;
+
+import java.io.File;
+import java.net.URI;
+
+public class XMLRPCClientEmptyMock implements XMLRPCClientInterface {
+ public XMLRPCClientEmptyMock(URI uri, String httpUser, String httpPassword) {
+ }
+
+ public void addQuickPostHeader(String type) {
+ }
+
+ public void setAuthorizationHeader(String authToken) {
+ }
+
+ public Object call(String method, Object[] params) throws XMLRPCException {
+ return null;
+ }
+
+ public Object call(String method) throws XMLRPCException {
+ return null;
+ }
+
+ public Object call(String method, Object[] params, File tempFile) throws XMLRPCException {
+ return null;
+ }
+
+ public long callAsync(XMLRPCCallback listener, String methodName, Object[] params) {
+ return 0;
+ }
+
+ public long callAsync(XMLRPCCallback listener, String methodName, Object[] params, File tempFile) {
+ return 0;
+ }
+
+ public String getResponse() {
+ return null;
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java
new file mode 100644
index 000000000..60852f11c
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java
@@ -0,0 +1,75 @@
+package org.wordpress.android.mocks;
+
+import android.content.Context;
+
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+import org.xmlrpc.android.XMLRPCClientInterface;
+import org.xmlrpc.android.XMLRPCFactoryAbstract;
+
+import java.net.URI;
+import java.util.HashSet;
+import java.util.Set;
+
+public class XMLRPCFactoryTest implements XMLRPCFactoryAbstract {
+ public static String sPrefix = "default";
+ public static Context sContext;
+ public static Mode sMode = Mode.EMPTY;
+ public static Set<XMLRPCClientCustomizableMockAbstract> sInstances =
+ new HashSet<XMLRPCClientCustomizableMockAbstract>();
+
+ public static void setContextAllInstances(Context context) {
+ sContext = context;
+ if (sMode != Mode.CUSTOMIZABLE_JSON && sMode != Mode.CUSTOMIZABLE_XML) {
+ AppLog.e(T.TESTS, "You tried to change context on a non-customizable XMLRPCClient mock");
+ }
+ for (XMLRPCClientCustomizableMockAbstract client : sInstances) {
+ client.setContext(context);
+ }
+ }
+
+ public static void setPrefixAllInstances(String prefix) {
+ sPrefix = prefix;
+ if (sMode != Mode.CUSTOMIZABLE_JSON && sMode != Mode.CUSTOMIZABLE_XML) {
+ AppLog.e(T.TESTS, "You tried to change prefix on a non-customizable XMLRPCClient mock");
+ }
+ for (XMLRPCClientCustomizableMockAbstract client : sInstances) {
+ client.setPrefix(prefix);
+ }
+ }
+
+ public XMLRPCClientInterface make(URI uri, String httpUser, String httpPassword) {
+ switch (sMode) {
+ case CUSTOMIZABLE_JSON:
+ XMLRPCClientCustomizableJSONMock clientJSONMock = new XMLRPCClientCustomizableJSONMock(uri, httpUser,
+ httpPassword);
+ if (sContext != null) {
+ clientJSONMock.setContextAndPrefix(sContext, sPrefix);
+ } else {
+ AppLog.e(T.TESTS, "You have to set XMLRPCFactoryTest.sContext field before running tests");
+ throw new IllegalStateException();
+ }
+ AppLog.v(T.TESTS, "make: XMLRPCClientCustomizableJSONMock");
+ sInstances.add(clientJSONMock);
+ return clientJSONMock;
+ case CUSTOMIZABLE_XML:
+ XMLRPCClientCustomizableXMLMock clientXMLMock = new XMLRPCClientCustomizableXMLMock(uri, httpUser,
+ httpPassword);
+ if (sContext != null) {
+ clientXMLMock.setContextAndPrefix(sContext, sPrefix);
+ } else {
+ AppLog.e(T.TESTS, "You have to set XMLRPCFactoryTest.sContext field before running tests");
+ throw new IllegalStateException();
+ }
+ AppLog.v(T.TESTS, "make: XMLRPCClientCustomizableXMLMock");
+ sInstances.add(clientXMLMock);
+ return clientXMLMock;
+ case EMPTY:
+ default:
+ AppLog.v(T.TESTS, "make: XMLRPCClientEmptyMock");
+ return new XMLRPCClientEmptyMock(uri, httpUser, httpPassword);
+ }
+ }
+
+ public enum Mode {EMPTY, CUSTOMIZABLE_JSON, CUSTOMIZABLE_XML}
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/models/BlogTest.java b/WordPress/src/androidTest/java/org/wordpress/android/models/BlogTest.java
new file mode 100644
index 000000000..d1e5ba071
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/models/BlogTest.java
@@ -0,0 +1,293 @@
+package org.wordpress.android.models;
+
+import android.test.InstrumentationTestCase;
+
+public class BlogTest extends InstrumentationTestCase {
+ private Blog blog;
+
+ @Override
+ protected void setUp() throws Exception {
+ blog = new Blog("http://www.example.com", "username", "password");
+
+ super.setUp();
+ }
+
+ public void testBlogTestUrlUsernamePassword() {
+ assertEquals("http://www.example.com", blog.getUrl());
+ assertEquals("username", blog.getUsername());
+ assertEquals("password", blog.getPassword());
+ assertEquals(-1, blog.getLocalTableBlogId());
+ }
+
+ public void testGetSetLocalTableBlogId() {
+ assertEquals(-1, blog.getLocalTableBlogId());
+ blog.setLocalTableBlogId(0);
+ assertEquals(0, blog.getLocalTableBlogId());
+ }
+
+ public void testGetSetUrl() {
+ assertEquals("http://www.example.com", blog.getUrl());
+ blog.setUrl(null);
+ assertNull(blog.getUrl());
+ blog.setUrl("http://example.com/two");
+ assertEquals("http://example.com/two", blog.getUrl());
+ }
+
+ public void testGetSetHomeURL() {
+ assertNull(blog.getHomeURL());
+ blog.setHomeURL("http://www.homeurl.com");
+ assertEquals("http://www.homeurl.com", blog.getHomeURL());
+ }
+
+ public void testGetSetBlogName() {
+ assertNull(blog.getBlogName());
+ blog.setBlogName("blogName");
+ assertEquals("blogName", blog.getBlogName());
+ }
+
+ public void testGetSetUsername() {
+ assertEquals("username", blog.getUsername());
+ blog.setUsername(null);
+ // getUsername never returns null
+ assertEquals("", blog.getUsername());
+ }
+
+ public void testGetSetPassword() {
+ assertEquals("password", blog.getPassword());
+ blog.setPassword(null);
+ // getPassword never returns null
+ assertEquals("", blog.getPassword());
+ }
+
+ public void testGetSetImagePlacement() {
+ assertNull(blog.getImagePlacement());
+ blog.setImagePlacement("test");
+ assertEquals("test", blog.getImagePlacement());
+ }
+
+ public void testGetSetFeaturedImageCapable() {
+ assertFalse(blog.isFeaturedImageCapable());
+ blog.setFeaturedImageCapable(true);
+ assertTrue(blog.isFeaturedImageCapable());
+ }
+
+ public void testBsetFeaturedImageCapable() {
+ assertFalse(blog.isFeaturedImageCapable());
+ boolean val = blog.bsetFeaturedImageCapable(false);
+ assertFalse(val);
+ assertFalse(blog.isFeaturedImageCapable());
+ val = blog.bsetFeaturedImageCapable(true);
+ assertTrue(val);
+ assertTrue(blog.isFeaturedImageCapable());
+ val = blog.bsetFeaturedImageCapable(false);
+ assertTrue(val);
+ }
+
+ public void testGetSetFullSizeImage() {
+ assertFalse(blog.isFullSizeImage());
+ blog.setFullSizeImage(true);
+ assertTrue(blog.isFullSizeImage());
+ }
+
+ public void testGetSetMaxImageWidth() {
+ assertEquals("", blog.getMaxImageWidth());
+ blog.setMaxImageWidth("1");
+ assertEquals("1", blog.getMaxImageWidth());
+ }
+
+ public void testGetSetMaxImageWidthId() {
+ assertEquals(0, blog.getMaxImageWidthId());
+ blog.setMaxImageWidthId(1);
+ assertEquals(1, blog.getMaxImageWidthId());
+ }
+
+ public void testGetSetRemoteBlogId() {
+ assertEquals(0, blog.getRemoteBlogId());
+ blog.setRemoteBlogId(1);
+ assertEquals(1, blog.getRemoteBlogId());
+ }
+
+ public void testGetSetDotcom_username() {
+ assertNull(blog.getDotcom_username());
+ blog.setDotcom_username("username");
+ assertEquals("username", blog.getDotcom_username());
+ }
+
+ public void testGetSetDotcom_password() {
+ assertNull(blog.getDotcom_password());
+ blog.setDotcom_password("password");
+ assertEquals("password", blog.getDotcom_password());
+ }
+
+ public void testGetSetApi_key() {
+ assertNull(blog.getApi_key());
+ blog.setApi_key("123");
+ assertEquals("123", blog.getApi_key());
+ }
+
+ public void testGetSetApi_blogid() {
+ assertNull(blog.getApi_blogid());
+ blog.setApi_blogid("123");
+ assertEquals("123", blog.getApi_blogid());
+ }
+
+ public void testGetSetDotcomFlag() {
+ assertFalse(blog.isDotcomFlag());
+ blog.setDotcomFlag(true);
+ assertTrue(blog.isDotcomFlag());
+ }
+
+ public void testGetSetWpVersion() {
+ assertNull(blog.getWpVersion());
+ blog.setWpVersion("123");
+ assertEquals("123", blog.getWpVersion());
+ }
+
+ public void testBsetWpVersion() {
+ assertNull(blog.getWpVersion());
+ boolean val = blog.bsetWpVersion("123");
+ assertTrue(val);
+ assertEquals("123", blog.getWpVersion());
+ val = blog.bsetWpVersion("123");
+ assertFalse(val);
+ }
+
+ public void testGetSetHttpuser() {
+ assertEquals(blog.getHttpuser(), "");
+ blog.setHttpuser("user");
+ assertEquals("user", blog.getHttpuser());
+ }
+
+ public void testGetSetHttppassword() {
+ assertEquals(blog.getHttppassword(), "");
+ blog.setHttppassword("password");
+ assertEquals("password", blog.getHttppassword());
+ }
+
+ public void testGetSetHidden() {
+ assertFalse(blog.isHidden());
+ blog.setHidden(true);
+ assertTrue(blog.isHidden());
+ }
+
+ public void testGetSetPostFormats() {
+ assertNull(blog.getPostFormats());
+ blog.setPostFormats("test");
+ assertEquals("test", blog.getPostFormats());
+ }
+
+ public void testBSetPostFormats() {
+ assertNull(blog.getPostFormats());
+ boolean val = blog.bsetPostFormats("test");
+ assertTrue(val);
+ assertEquals("test", blog.getPostFormats());
+ val = blog.bsetPostFormats("test");
+ assertFalse(val);
+ val = blog.bsetPostFormats("test2");
+ assertTrue(val);
+ }
+
+ public void testGetSetScaledImage() {
+ assertFalse(blog.isScaledImage());
+ blog.setScaledImage(true);
+ assertTrue(blog.isScaledImage());
+ }
+
+ public void testGetSetScaledImageWidth() {
+ assertEquals(0, blog.getScaledImageWidth());
+ blog.setScaledImageWidth(1);
+ assertEquals(1, blog.getScaledImageWidth());
+ }
+
+ public void testGetSetBlogOptions() {
+ assertEquals("{}", blog.getBlogOptions());
+ blog.setBlogOptions("{option:1}");
+ assertEquals("{option:1}", blog.getBlogOptions());
+ }
+
+ public void testBSetBlogOptions() {
+ assertEquals("{}", blog.getBlogOptions());
+ boolean val = blog.bsetBlogOptions("{option:1}");
+ assertTrue(val);
+ val = blog.bsetBlogOptions("{option:1}");
+ assertFalse(val);
+ val = blog.bsetBlogOptions("{option:2}");
+ assertTrue(val);
+ }
+
+ public void testGetSetAdmin() {
+ assertFalse(blog.isAdmin());
+ blog.setAdmin(true);
+ assertTrue(blog.isAdmin());
+ }
+
+ public void testBSetAdmin() {
+ assertFalse(blog.isAdmin());
+ boolean val = blog.bsetAdmin(false);
+ assertFalse(val);
+ val = blog.bsetAdmin(true);
+ assertTrue(val);
+ val = blog.bsetAdmin(true);
+ assertFalse(val);
+ }
+
+ public void testGetSetAdminUrl() {
+ blog.setBlogOptions("{\"admin_url\": {\"value\": \"https://muppets.com/wp-admin/\" } }");
+ assertEquals("https://muppets.com/wp-admin/", blog.getAdminUrl());
+ }
+
+ public void testGetSetPrivate() {
+ assertFalse(blog.isPrivate());
+ blog.setBlogOptions("{ \"blog_public\" : { \"value\" : \"-1\" } }");
+
+ // blog cannot be private if not a wpcom one
+ assertFalse(blog.isPrivate());
+
+ // set the blog as a WPCom one
+ blog.setDotcomFlag(true);
+ // blog should now appear as private
+ assertTrue(blog.isPrivate());
+ }
+
+ public void testGetSetJetpackPowered() {
+ assertFalse(blog.isJetpackPowered());
+ blog.setBlogOptions("{ jetpack_client_id : {} }");
+ assertTrue(blog.isJetpackPowered());
+ }
+
+ public void testIsPhotonCapableJetpack() {
+ assertFalse(blog.isPhotonCapable());
+
+ blog.setBlogOptions("{ jetpack_client_id : {} }");
+ assertTrue(blog.isPhotonCapable());
+ }
+
+ public void testIsPhotonCapableWPComPublic() {
+ assertFalse(blog.isPhotonCapable());
+ assertFalse(blog.isPrivate());
+ blog.setBlogOptions("");
+ blog.setDotcomFlag(true);
+ assertTrue(blog.isPhotonCapable());
+ }
+
+ public void testIsPhotonCapableWPComPrivate() {
+ assertFalse(blog.isPhotonCapable());
+
+ blog.setBlogOptions("{ \"blog_public\" : { \"value\" : \"-1\" } }");
+ assertFalse(blog.isPhotonCapable());
+ }
+
+ public void testGetSetHasValidJetpackCredentials() {
+ assertFalse(blog.hasValidJetpackCredentials());
+ }
+
+ public void testGetSetDotComBlogId() {
+ assertNull(blog.getDotComBlogId());
+ assertFalse(blog.isDotcomFlag());
+ blog.setApi_blogid("1");
+ blog.setRemoteBlogId(2);
+ assertEquals("1", blog.getDotComBlogId());
+ blog.setDotcomFlag(true);
+ assertEquals("2", blog.getDotComBlogId());
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/models/CategoryNodeInstrumentationTest.java b/WordPress/src/androidTest/java/org/wordpress/android/models/CategoryNodeInstrumentationTest.java
new file mode 100644
index 000000000..8eef7cff3
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/models/CategoryNodeInstrumentationTest.java
@@ -0,0 +1,34 @@
+package org.wordpress.android.models;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.test.InstrumentationTestCase;
+import android.test.RenamingDelegatingContext;
+
+import org.wordpress.android.TestUtils;
+
+public class CategoryNodeInstrumentationTest extends InstrumentationTestCase {
+ protected Context testContext;
+ protected Context targetContext;
+
+ @Override
+ protected void setUp() {
+ // Run tests in an isolated context
+ targetContext = new RenamingDelegatingContext(getInstrumentation().getTargetContext(), "test_");
+ testContext = getInstrumentation().getContext();
+ }
+
+ public void testLoadDB_MalformedCategoryParentId() {
+ SQLiteDatabase db = TestUtils.loadDBFromDump(targetContext, testContext,
+ "malformed_category_parent_id.sql");
+
+ // This line failed before #36 was solved
+ CategoryNode node = CategoryNode.createCategoryTreeFromDB(1);
+ }
+
+ public void tearDown() throws Exception {
+ targetContext = null;
+ testContext = null;
+ super.tearDown();
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/models/PostLocationTest.java b/WordPress/src/androidTest/java/org/wordpress/android/models/PostLocationTest.java
new file mode 100644
index 000000000..af8de62ba
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/models/PostLocationTest.java
@@ -0,0 +1,115 @@
+package org.wordpress.android.models;
+
+import android.test.InstrumentationTestCase;
+
+import junit.framework.Assert;
+
+public class PostLocationTest extends InstrumentationTestCase {
+ public static final double MAX_LAT = 90;
+ public static final double MIN_LAT = -90;
+ public static final double MAX_LNG = 180;
+ public static final double MIN_LNG = -180;
+ public static final double INVALID_LAT_MAX = 91;
+ public static final double INVALID_LAT_MIN = -91;
+ public static final double INVALID_LNG_MAX = 181;
+ public static final double INVALID_LNG_MIN = -181;
+ public static final double EQUATOR_LAT = 0;
+ public static final double EQUATOR_LNG = 0;
+
+ public void testInstantiateValidLocation() {
+ PostLocation locationZero = new PostLocation(EQUATOR_LAT, EQUATOR_LNG);
+ assertTrue("ZeroLoc did not instantiate valid location", locationZero.isValid());
+ assertEquals("ZeroLoc did not return correct lat", EQUATOR_LAT, locationZero.getLatitude());
+ assertEquals("ZeroLoc did not return correct lng", EQUATOR_LNG, locationZero.getLongitude());
+
+ PostLocation locationMax = new PostLocation(MAX_LAT, MAX_LNG);
+ assertTrue("MaxLoc did not instantiate valid location", locationMax.isValid());
+ assertEquals("MaxLoc did not return correct lat", MAX_LAT, locationMax.getLatitude());
+ assertEquals("MaxLoc did not return correct lng", MAX_LNG, locationMax.getLongitude());
+
+ PostLocation locationMin = new PostLocation(MIN_LAT, MIN_LNG);
+ assertTrue("MinLoc did not instantiate valid location", locationMin.isValid());
+ assertEquals("MinLoc did not return correct lat", MIN_LAT, locationMin.getLatitude());
+ assertEquals("MinLoc did not return correct lng", MIN_LNG, locationMin.getLongitude());
+
+ double miscLat = 34;
+ double miscLng = -60;
+ PostLocation locationMisc = new PostLocation(miscLat, miscLng);
+ assertTrue("MiscLoc did not instantiate valid location", locationMisc.isValid());
+ assertEquals("MiscLoc did not return correct lat", miscLat, locationMisc.getLatitude());
+ assertEquals("MiscLoc did not return correct lng", miscLng, locationMisc.getLongitude());
+ }
+
+ public void testDefaultLocationInvalid() {
+ PostLocation location = new PostLocation();
+ assertFalse("Empty location should be invalid", location.isValid());
+ }
+
+ public void testInvalidLatitude() {
+ PostLocation maxLoc = null;
+ try {
+ maxLoc = new PostLocation(INVALID_LAT_MAX, 0);
+ Assert.fail("Lat more than max should have failed on instantiation");
+ } catch (IllegalArgumentException e) {
+ assertNull("Invalid instantiation and not null", maxLoc);
+ }
+
+ PostLocation minLoc = null;
+ try {
+ minLoc = new PostLocation(INVALID_LAT_MIN, 0);
+ Assert.fail("Lat less than min should have failed on instantiation");
+ } catch (IllegalArgumentException e) {
+ assertNull("Invalid instantiation and not null", minLoc);
+ }
+
+ PostLocation location = new PostLocation();
+
+ try {
+ location.setLatitude(INVALID_LAT_MAX);
+ Assert.fail("Lat less than min should have failed");
+ } catch (IllegalArgumentException e) {
+ assertFalse("Invalid setLatitude and still valid", location.isValid());
+ }
+
+ try {
+ location.setLatitude(INVALID_LAT_MIN);
+ Assert.fail("Lat less than min should have failed");
+ } catch (IllegalArgumentException e) {
+ assertFalse("Invalid setLatitude and still valid", location.isValid());
+ }
+ }
+
+ public void testInvalidLongitude() {
+ PostLocation maxLoc = null;
+ try {
+ maxLoc = new PostLocation(0, INVALID_LNG_MAX);
+ Assert.fail("Lng more than max should have failed on instantiation");
+ } catch (IllegalArgumentException e) {
+ assertNull("Invalid instantiation and not null", maxLoc);
+ }
+
+ PostLocation minLoc = null;
+ try {
+ minLoc = new PostLocation(0, INVALID_LNG_MIN);
+ Assert.fail("Lng less than min should have failed on instantiation");
+ } catch (IllegalArgumentException e) {
+ assertNull("Invalid instantiation and not null", minLoc);
+ }
+
+ PostLocation location = new PostLocation();
+
+ try {
+ location.setLongitude(INVALID_LNG_MAX);
+ Assert.fail("Lng less than min should have failed");
+ } catch (IllegalArgumentException e) {
+ assertFalse("Invalid setLongitude and still valid", location.isValid());
+ }
+
+ try {
+ location.setLongitude(INVALID_LNG_MIN);
+ Assert.fail("Lat less than min should have failed");
+ } catch (IllegalArgumentException e) {
+ assertFalse("Invalid setLongitude and still valid", location.isValid());
+ }
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/models/PostTest.java b/WordPress/src/androidTest/java/org/wordpress/android/models/PostTest.java
new file mode 100644
index 000000000..09148d07d
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/models/PostTest.java
@@ -0,0 +1,55 @@
+package org.wordpress.android.models;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.test.InstrumentationTestCase;
+import android.test.RenamingDelegatingContext;
+
+import org.json.JSONObject;
+import org.wordpress.android.TestUtils;
+import org.wordpress.android.WordPress;
+
+public class PostTest extends InstrumentationTestCase {
+ protected Context mTestContext;
+ protected Context mTargetContext;
+
+ @Override
+ protected void setUp() throws Exception {
+
+ mTargetContext = new RenamingDelegatingContext(getInstrumentation().getTargetContext(), "test_");
+ mTestContext = getInstrumentation().getContext();
+
+ super.setUp();
+ }
+
+ public void testInvalidPostIdLoad() {
+ SQLiteDatabase db = TestUtils.loadDBFromDump(mTargetContext, mTestContext, "taliwutt-blogs-sample.sql");
+ Post post = WordPress.wpDB.getPostForLocalTablePostId(-1);
+
+ assertNull(post);
+ }
+
+ public void testPostSaveAndLoad() {
+ SQLiteDatabase db = TestUtils.loadDBFromDump(mTargetContext, mTestContext, "taliwutt-blogs-sample.sql");
+ Post post = new Post(1, false);
+ post.setTitle("test-post");
+ WordPress.wpDB.savePost(post);
+
+ Post loadedPost = WordPress.wpDB.getPostForLocalTablePostId(post.getLocalTablePostId());
+
+ assertNotNull(loadedPost);
+ assertEquals(loadedPost.getTitle(), post.getTitle());
+ }
+
+ // reproduce issue #1544
+ public void testGetNullCustomFields() {
+ Post post = new Post(1, false);
+ assertEquals(post.getCustomFields(), null);
+ }
+
+ public void testGetNullCustomField() {
+ Post post = new Post(1, false);
+ JSONObject remoteGeoLatitude = post.getCustomField("geo_latitude");
+ assertEquals(remoteGeoLatitude, null);
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/networking/AuthenticatorRequestTest.java b/WordPress/src/androidTest/java/org/wordpress/android/networking/AuthenticatorRequestTest.java
new file mode 100644
index 000000000..c5936fd61
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/networking/AuthenticatorRequestTest.java
@@ -0,0 +1,61 @@
+package org.wordpress.android.networking;
+
+import android.test.InstrumentationTestCase;
+
+import com.wordpress.rest.RestClient;
+
+import org.wordpress.android.FactoryUtils;
+
+public class AuthenticatorRequestTest extends InstrumentationTestCase {
+ RestClient mRestClient;
+ AuthenticatorRequest mAuthenticatorRequest;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ FactoryUtils.initWithTestFactories();
+ mRestClient = RestClientFactory.instantiate(null);
+ mAuthenticatorRequest = new AuthenticatorRequest(null, null, mRestClient, null);
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ FactoryUtils.clearFactories();
+ super.tearDown();
+ }
+
+ public void testExtractSiteIdFromUrl1() {
+ String url = "";
+ assertEquals(null, mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url));
+ }
+
+ public void testExtractSiteIdFromUrl2() {
+ String url = null;
+ assertEquals(null, mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url));
+ }
+
+ public void testExtractSiteIdFromUrl3() {
+ String url = "https://public-api.wordpress.com/rest/v1/batch/?urls%5B%5D=%2Fsites%2F57991476%2Fstats%2Freferrers%3Fdate%3D2014-05-08&urls%5B%5D=%2Fsites%2F57991476%2Fstats%2Freferrers%3Fdate%3D2014-05-07";
+ assertEquals("57991476", mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url));
+ }
+
+ public void testExtractSiteIdFromUrl4() {
+ String url = "https://public-api.wordpress.com/rest/v1/sites/59073674/stats";
+ assertEquals("59073674", mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url));
+ }
+
+ public void testExtractSiteIdFromUrl5() {
+ String url = "https://public-api.wordpress.com/rest/v1/sites//stats";
+ assertEquals("", mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url));
+ }
+
+ public void testExtractSiteIdFromUrl6() {
+ String url = "https://public-api.wordpress.com/rest/v1/batch/?urls%5B%5D=%2Fsites%2F";
+ assertEquals(null, mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url));
+ }
+
+ public void testExtractSiteIdFromUrl7() {
+ String url = "https://public-api.wordpress.com/rest/v1/sites/";
+ assertEquals(null, mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url));
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/networking/GravatarApiTest.java b/WordPress/src/androidTest/java/org/wordpress/android/networking/GravatarApiTest.java
new file mode 100644
index 000000000..dc8ac78c8
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/networking/GravatarApiTest.java
@@ -0,0 +1,44 @@
+package org.wordpress.android.networking;
+
+import android.test.InstrumentationTestCase;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okio.Buffer;
+
+public class GravatarApiTest extends InstrumentationTestCase {
+
+ public void testGravatarUploadRequest() throws IOException {
+ final String fileContent = "abcdefg";
+
+ File tempFile = new File(getInstrumentation().getTargetContext().getCacheDir(), "tempFile.jpg");
+ FileOutputStream fos = new FileOutputStream(tempFile);
+ fos.write(fileContent.getBytes());
+ fos.flush();
+ fos.close();
+
+ final String email = "a@b.com";
+ Request uploadRequest = GravatarApi.prepareGravatarUpload(email, tempFile);
+
+ assertEquals("POST", uploadRequest.method());
+
+ RequestBody requestBody = uploadRequest.body();
+ assertTrue(requestBody.contentType().toString().startsWith("multipart/form-data"));
+
+ final Buffer buffer = new Buffer();
+ requestBody.writeTo(buffer);
+ final String body = buffer.readUtf8();
+
+ assertTrue(body.contains("Content-Disposition: form-data; name=\"account\""));
+ assertTrue(body.contains("Content-Length: " + email.length()));
+ assertTrue(body.contains(email));
+
+ assertTrue(body.contains("Content-Disposition: form-data; name=\"filedata\"; filename=\"" + tempFile.getName() + "\""));
+ assertTrue(body.contains("Content-Type: multipart/form-data"));
+ assertTrue(body.contains(fileContent));
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/networking/WPNetworkImageViewTest.java b/WordPress/src/androidTest/java/org/wordpress/android/networking/WPNetworkImageViewTest.java
new file mode 100644
index 000000000..3e0f0fb50
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/networking/WPNetworkImageViewTest.java
@@ -0,0 +1,58 @@
+package org.wordpress.android.networking;
+
+import android.os.Handler;
+import android.test.InstrumentationTestCase;
+
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.ImageLoader.ImageContainer;
+import com.android.volley.toolbox.ImageLoader.ImageListener;
+
+import org.wordpress.android.WordPress;
+import org.wordpress.android.util.AppLog;
+import org.wordpress.android.util.AppLog.T;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+public class WPNetworkImageViewTest extends InstrumentationTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ // https://github.com/wordpress-mobile/WordPress-Android/issues/1549
+ public void testVolleyImageLoaderGetNullHost() throws InterruptedException {
+ Handler mainLooperHandler = new Handler(WordPress.getContext().getMainLooper());
+ final CountDownLatch countDownLatch = new CountDownLatch(1);
+ final boolean success[] = new boolean[1];
+ Runnable getImage = new Runnable() {
+ @Override
+ public void run() {
+ try {
+ // This call crash on old volley versions
+ WordPress.imageLoader.get("http;///hello/null/host", new ImageListener() {
+ @Override
+ public void onResponse(ImageContainer imageContainer, boolean b) {}
+
+ @Override
+ public void onErrorResponse(VolleyError volleyError) {}
+ }, 1, 1);
+ success[0] = true;
+ } catch (Exception e) {
+ AppLog.e(T.TESTS, e);
+ success[0] = false;
+ } finally {
+ countDownLatch.countDown();
+ }
+ }
+ };
+ mainLooperHandler.post(getImage);
+ countDownLatch.await(1, TimeUnit.SECONDS);
+ assertTrue("Invalid Volley library version", success[0]);
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/networking/XMLRPCTest.java b/WordPress/src/androidTest/java/org/wordpress/android/networking/XMLRPCTest.java
new file mode 100644
index 000000000..4b5c8256c
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/networking/XMLRPCTest.java
@@ -0,0 +1,35 @@
+package org.wordpress.android.networking;
+
+import org.wordpress.android.DefaultMocksInstrumentationTestCase;
+import org.wordpress.android.mocks.XMLRPCFactoryTest;
+import org.xmlrpc.android.ApiHelper.Method;
+import org.xmlrpc.android.XMLRPCClientInterface;
+import org.xmlrpc.android.XMLRPCFactory;
+
+import java.net.URI;
+
+public class XMLRPCTest extends DefaultMocksInstrumentationTestCase {
+ public void testNumberExceptionWithInvalidDouble() throws Exception {
+ XMLRPCFactoryTest.setPrefixAllInstances("invalid-double-xmlrpc");
+ XMLRPCClientInterface xmlrpcClientInterface = XMLRPCFactory.instantiate(URI.create("http://test.com/ast"), "",
+ "");
+ try {
+ xmlrpcClientInterface.call(Method.GET_MEDIA_LIBRARY, null);
+ } catch (NumberFormatException e) {
+ return;
+ }
+ assertTrue("invalid double format should trigger a NumberException", false);
+ }
+
+ public void testNumberExceptionWithInvalidInteger() throws Exception {
+ XMLRPCFactoryTest.setPrefixAllInstances("invalid-integer-xmlrpc");
+ XMLRPCClientInterface xmlrpcClientInterface = XMLRPCFactory.instantiate(URI.create("http://test.com/ast"), "",
+ "");
+ try {
+ xmlrpcClientInterface.call(Method.GET_MEDIA_LIBRARY, null);
+ } catch (NumberFormatException e) {
+ return;
+ }
+ assertTrue("invalid double format should trigger a NumberException", false);
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/GCMIntentServiceTest.java b/WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/GCMIntentServiceTest.java
new file mode 100644
index 000000000..ae2dd501f
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/GCMIntentServiceTest.java
@@ -0,0 +1,66 @@
+package org.wordpress.android.ui.notifications;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.test.RenamingDelegatingContext;
+import android.test.ServiceTestCase;
+
+import org.wordpress.android.FactoryUtils;
+import org.wordpress.android.GCMMessageService;
+import org.wordpress.android.TestUtils;
+import org.wordpress.android.models.AccountHelper;
+
+public class GCMIntentServiceTest extends ServiceTestCase<GCMMessageService> {
+ protected Context mTargetContext;
+
+ public GCMIntentServiceTest() {
+ super(GCMMessageService.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ FactoryUtils.initWithTestFactories();
+
+ mTargetContext = new RenamingDelegatingContext(getContext(), "test_");
+ TestUtils.clearApplicationState(mTargetContext);
+
+ setupService();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ FactoryUtils.clearFactories();
+ super.tearDown();
+ }
+
+ public void testShouldCircularizeNoteIcon() {
+ GCMMessageService intentService = new GCMMessageService();
+
+ String type = "c";
+ assertTrue(intentService.shouldCircularizeNoteIcon(type));
+
+ assertFalse(intentService.shouldCircularizeNoteIcon(null));
+
+ type = "invalidType";
+ assertFalse(intentService.shouldCircularizeNoteIcon(type));
+ }
+
+ public void testOnMessageReceived() throws InterruptedException {
+ org.wordpress.android.models.Account account = AccountHelper.getDefaultAccount();
+ account.setAccessToken("secret token");
+ account.setUserId(1);
+ final Bundle bundle = new Bundle();
+ bundle.putString("user", "1");
+ for (int i = 0; i < 1000; i++) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ getService().onMessageReceived("from", bundle);
+ }
+ }).start();
+ }
+
+ Thread.sleep(10000);
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/NotesParseTest.java b/WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/NotesParseTest.java
new file mode 100644
index 000000000..0667ce023
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/NotesParseTest.java
@@ -0,0 +1,29 @@
+package org.wordpress.android.ui.notifications;
+
+import android.text.Spanned;
+
+import junit.framework.TestCase;
+
+import org.wordpress.android.util.HtmlUtils;
+
+public class NotesParseTest extends TestCase {
+ public void testParagraphInListItem1() {
+ String text = "<li><p>Paragraph in li</p></li>";
+ Spanned spanned = HtmlUtils.fromHtml(text);
+ // if this didn't throw a RuntimeException we're ok
+ assertNotNull(spanned);
+ }
+
+ // Trying to reproduce https://github.com/wordpress-mobile/WordPress-Android/issues/900
+ public void testSpanInListItem1() {
+ String text = "<ul><li><span>Current Record: </span><span>20</span></li><li><span>Old Record: </span><span>1</span></li></ul>";
+ Spanned spanned = HtmlUtils.fromHtml(text);
+ assertEquals("Current Record: 20\nOld Record: 1\n", spanned.toString());
+ }
+
+ public void testSpanInListItemFullTest() {
+ String text = "<p>Au Mercredi 18 septembre 2013 vous avez pulvérisé votre précédent record de follows enregistrés en un seul jour, sur votre blog <a href=\"http://taliwutblog.wordpress.com\" title=\"taliwut &amp; blog\" target=\"_blank\" notes-data-click=\"best_period_ever_feat\">taliwut &amp; blog</a>. Super!</p><ul><li><span class=\"wpn-feat-current-record-title\">Current Record: </span><span class=\"wpn-feat-new-record-count\">20</span></li><li><span class=\"wpn-feat-old-record-title\">Old Record: </span><span class=\"wpn-feat-old-record-count\">1</span></li></ul>";
+ Spanned spanned = HtmlUtils.fromHtml(text);
+ assertTrue(spanned.toString().contains("Current Record: 20\nOld Record: 1\n"));
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/NotificationsUtilsTest.java b/WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/NotificationsUtilsTest.java
new file mode 100644
index 000000000..daef7f0ba
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/ui/notifications/NotificationsUtilsTest.java
@@ -0,0 +1,19 @@
+package org.wordpress.android.ui.notifications;
+
+import android.test.AndroidTestCase;
+import android.text.SpannableStringBuilder;
+
+import org.wordpress.android.ui.notifications.utils.NotificationsUtils;
+
+public class NotificationsUtilsTest extends AndroidTestCase {
+ public void testSpannableHasCharacterAtIndex() {
+ SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder("This is only a test.");
+
+ assertTrue(NotificationsUtils.spannableHasCharacterAtIndex(spannableStringBuilder, 's', 3));
+ assertFalse(NotificationsUtils.spannableHasCharacterAtIndex(spannableStringBuilder, 's', 4));
+
+ // Test with bogus params
+ assertFalse(NotificationsUtils.spannableHasCharacterAtIndex(null, 'b', -1));
+ }
+
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/ui/plans/RemoteTests.java b/WordPress/src/androidTest/java/org/wordpress/android/ui/plans/RemoteTests.java
new file mode 100644
index 000000000..410aebc50
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/ui/plans/RemoteTests.java
@@ -0,0 +1,159 @@
+package org.wordpress.android.ui.plans;
+
+import com.android.volley.Request;
+import com.android.volley.VolleyError;
+import com.wordpress.rest.RestClient;
+import com.wordpress.rest.RestRequest;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.wordpress.android.DefaultMocksInstrumentationTestCase;
+import org.wordpress.android.mocks.RestClientCustomizableMock;
+import org.wordpress.android.mocks.RestClientFactoryTest;
+import org.wordpress.android.networking.RestClientFactory;
+import org.wordpress.android.ui.plans.models.Feature;
+import org.wordpress.android.ui.plans.models.Plan;
+import org.wordpress.android.util.AppLog;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class RemoteTests extends DefaultMocksInstrumentationTestCase {
+ private RestClientCustomizableMock mRestClientV1_2;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // Set the version of the REST client to v1.2
+ RestClientFactoryTest.sVersion = RestClient.REST_CLIENT_VERSIONS.V1_2;
+ mRestClientV1_2 = (RestClientCustomizableMock) RestClientFactory.instantiate(null, RestClient.REST_CLIENT_VERSIONS.V1_2);
+ }
+
+ private RestRequest.ErrorListener errListener = new RestRequest.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError response) {
+ AppLog.e(AppLog.T.PLANS, "The Rest Client returned an error from a mock call: " + response.getMessage());
+ assertFalse(response.getMessage(), true); // force the test to fails in this case
+ }
+ };
+
+ // Just a Utility class that wraps the main logic for the OK listener
+ private abstract class PlansRestRequestAbstractListener implements RestRequest.Listener {
+ @Override
+ public void onResponse(JSONObject response) {
+ boolean parseError = false;
+ try {
+ parseResponse(response);
+ } catch (JSONException e) {
+ parseError = true;
+ AppLog.e(AppLog.T.PLANS, e);
+ }
+ assertFalse(parseError);
+ }
+ abstract void parseResponse(JSONObject response) throws JSONException;
+ }
+
+ public void testSitePlans() throws Exception {
+ PlansRestRequestAbstractListener listener = new PlansRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ List<Plan> plans = new ArrayList<>();
+ JSONArray plansArray = response.getJSONArray("originalResponse");
+ for (int i=0; i < plansArray.length(); i ++) {
+ JSONObject currentPlanJSON = plansArray.getJSONObject(i);
+ Plan currentPlan = new Plan(currentPlanJSON);
+ plans.add(currentPlan);
+ }
+
+ assertEquals(3, plans.size());
+
+ Plan currentPlan = plans.get(0);
+ assertEquals(currentPlan.getDescription(), "Get a free blog and be on your way to publishing your first post in less than five minutes.");
+ assertEquals(currentPlan.getProductID(), 1L);
+ assertEquals(currentPlan.getProductName(), "WordPress.com Free");
+ assertEquals(currentPlan.getBillPeriod(), -1);
+ assertEquals(currentPlan.getRawPrice(), 0);
+ assertEquals(currentPlan.getCost(), 0);
+ assertEquals(currentPlan.isAvailable(), true);
+
+ currentPlan = plans.get(1);
+ assertEquals(currentPlan.isFreeTrial(), false);
+ assertEquals(currentPlan.getBundleSubscriptionID(), "5683566");
+ assertEquals(currentPlan.getExpiry(), "2017-03-07");
+ assertEquals(currentPlan.getUserFacingExpiry(), "2017-03-04");
+ assertEquals(currentPlan.getSubscribedDate(), "2016-03-07 08:56:13");
+
+ currentPlan = plans.get(2);
+ assertEquals(currentPlan.getDescription(), "Everything included with Premium, as well as live chat support, and unlimited access to our premium themes.");
+ assertEquals(currentPlan.getProductID(), 1008L);
+ assertEquals(currentPlan.getProductName(), "WordPress.com Business");
+ assertEquals(currentPlan.getBillPeriod(), 365);
+ assertEquals(currentPlan.getRawPrice(), 199);
+ assertEquals(currentPlan.getCost(), 199);
+ assertEquals(currentPlan.isAvailable(), true);
+ }
+ };
+
+
+ mRestClientV1_2.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.2/sites/123456/plans",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testFeatures() throws Exception {
+ PlansRestRequestAbstractListener listener = new PlansRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ // Parse the response from the server
+ List<Feature> features = new ArrayList<>();
+ JSONArray featuresArray = response.getJSONArray("originalResponse");
+ for (int i = 0; i < featuresArray.length(); i++) {
+ JSONObject currentFeatureJSON = featuresArray.getJSONObject(i);
+ Feature currentFeature = new Feature(currentFeatureJSON);
+ features.add(currentFeature);
+ }
+
+ assertEquals(16, features.size());
+
+ // Test the 1st object in the response
+ Feature currentFeatures = features.get(0);
+ assertEquals("WordPress.com Site", currentFeatures.getTitle());
+ assertEquals("free-blog", currentFeatures.getProductSlug());
+ assertEquals("Your own space to create posts and pages with basic customization.", currentFeatures.getDescription());
+ assertEquals("Your own space to create posts and pages with basic customization.",
+ currentFeatures.getDescriptionForPlan(1L));
+ assertEquals("Your own space to create posts and pages with basic customization.",
+ currentFeatures.getDescriptionForPlan(1003L));
+ assertEquals("Your own space to create posts and pages with basic customization.",
+ currentFeatures.getDescriptionForPlan(1008L));
+
+ assertEquals(false, currentFeatures.isNotPartOfFreeTrial());
+
+ // Test the latest object in the response
+ currentFeatures = features.get(15);
+ assertEquals("Support", currentFeatures.getTitle());
+ assertEquals("support", currentFeatures.getProductSlug());
+ assertEquals("For those times when you can't find an answer on our Support site", currentFeatures.getDescription());
+ assertEquals("Find answers to your questions in our community forum.",
+ currentFeatures.getDescriptionForPlan(1L));
+ assertEquals("Community support",
+ currentFeatures.getTitleForPlan(1L));
+ assertEquals("The kind of support we offer for Jetpack Business.",
+ currentFeatures.getDescriptionForPlan(2001L));
+ assertEquals("Priority security support",
+ currentFeatures.getTitleForPlan(2001L));
+ assertEquals(false, currentFeatures.isNotPartOfFreeTrial());
+ }
+ };
+
+ mRestClientV1_2.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.2/plans/features",
+ null,
+ listener,
+ errListener
+ );
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/ui/posts/PostUtilsTest.java b/WordPress/src/androidTest/java/org/wordpress/android/ui/posts/PostUtilsTest.java
new file mode 100644
index 000000000..d251d9f28
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/ui/posts/PostUtilsTest.java
@@ -0,0 +1,33 @@
+package org.wordpress.android.ui.posts;
+
+import android.test.AndroidTestCase;
+
+public class PostUtilsTest extends AndroidTestCase {
+ public void testCollapseShortcodes() {
+ String postContent = "Text before first gallery [gallery number=\"one\"]"
+ + " text between galleries"
+ + " [gallery number=\"two\"]"
+ + " text after second gallery"
+ + " [unknown shortcode].";
+ String collapsedContent = PostUtils.collapseShortcodes(postContent);
+
+ // make sure [gallery] now exists and [gallery number] does not
+ assertTrue(collapsedContent.contains("[gallery]"));
+ assertFalse(collapsedContent.contains("[gallery number]"));
+
+ // make sure the unknown shortcode is intact
+ assertTrue(collapsedContent.contains("[unknown shortcode]"));
+ }
+
+ public void testShortcodeSpaces() {
+ String postContent = "[ gallery number=\"arst\" /]";
+ String collapsedContent = PostUtils.collapseShortcodes(postContent);
+ assertEquals("[gallery]", collapsedContent);
+ }
+
+ public void testOpeningClosingShortcode() {
+ String postContent = "[recipe difficulty=\"easy\"]Put your recipe here.[/recipe]";
+ String collapsedContent = PostUtils.collapseShortcodes(postContent);
+ assertEquals("[recipe]Put your recipe here.[/recipe]", collapsedContent);
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/ui/stats/RemoteTests.java b/WordPress/src/androidTest/java/org/wordpress/android/ui/stats/RemoteTests.java
new file mode 100644
index 000000000..ff8a9505d
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/ui/stats/RemoteTests.java
@@ -0,0 +1,638 @@
+package org.wordpress.android.ui.stats;
+
+
+import com.android.volley.Request;
+import com.android.volley.VolleyError;
+import com.wordpress.rest.RestClient;
+import com.wordpress.rest.RestRequest;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.wordpress.android.DefaultMocksInstrumentationTestCase;
+import org.wordpress.android.mocks.RestClientCustomizableMock;
+import org.wordpress.android.mocks.RestClientFactoryTest;
+import org.wordpress.android.networking.RestClientFactory;
+import org.wordpress.android.ui.stats.models.AuthorModel;
+import org.wordpress.android.ui.stats.models.ClickGroupModel;
+import org.wordpress.android.ui.stats.models.ClicksModel;
+import org.wordpress.android.ui.stats.models.CommentsModel;
+import org.wordpress.android.ui.stats.models.FollowDataModel;
+import org.wordpress.android.ui.stats.models.FollowerModel;
+import org.wordpress.android.ui.stats.models.FollowersModel;
+import org.wordpress.android.ui.stats.models.GeoviewModel;
+import org.wordpress.android.ui.stats.models.GeoviewsModel;
+import org.wordpress.android.ui.stats.models.InsightsAllTimeModel;
+import org.wordpress.android.ui.stats.models.InsightsPopularModel;
+import org.wordpress.android.ui.stats.models.InsightsTodayModel;
+import org.wordpress.android.ui.stats.models.PostModel;
+import org.wordpress.android.ui.stats.models.PostViewsModel;
+import org.wordpress.android.ui.stats.models.ReferrerGroupModel;
+import org.wordpress.android.ui.stats.models.ReferrerResultModel;
+import org.wordpress.android.ui.stats.models.ReferrersModel;
+import org.wordpress.android.ui.stats.models.SingleItemModel;
+import org.wordpress.android.ui.stats.models.TagsContainerModel;
+import org.wordpress.android.ui.stats.models.TagsModel;
+import org.wordpress.android.ui.stats.models.TopPostsAndPagesModel;
+import org.wordpress.android.ui.stats.models.VideoPlaysModel;
+import org.wordpress.android.ui.stats.models.VisitModel;
+import org.wordpress.android.ui.stats.models.VisitsModel;
+import org.wordpress.android.util.AppLog;
+
+
+public class RemoteTests extends DefaultMocksInstrumentationTestCase {
+
+ private RestClientCustomizableMock mRestClient;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // Set the version of the REST client to 1.1
+ RestClientFactoryTest.sVersion = RestClient.REST_CLIENT_VERSIONS.V1_1;
+
+ mRestClient = (RestClientCustomizableMock) RestClientFactory.instantiate(null, RestClient.REST_CLIENT_VERSIONS.V1_1);
+ }
+
+ private RestRequest.ErrorListener errListener = new RestRequest.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError response) {
+ AppLog.e(AppLog.T.STATS, "The Rest Client returned an error from a mock call: " + response.getMessage());
+ assertFalse(response.getMessage(), true); // force the test to fails in this case
+ }
+ };
+
+ // Just a Utility class that wraps the main logic for the OK listener
+ private abstract class StatsRestRequestAbstractListener implements RestRequest.Listener {
+ @Override
+ public void onResponse(JSONObject response) {
+ boolean parseError = false;
+ try {
+ parseResponse(response);
+ } catch (JSONException e) {
+ parseError = true;
+ AppLog.e(AppLog.T.STATS, e);
+ }
+ assertFalse(parseError);
+ }
+ abstract void parseResponse(JSONObject response) throws JSONException;
+ }
+
+ public void testClicks() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ ClicksModel model = new ClicksModel("123456",response);
+ assertEquals(model.getTotalClicks(), 2);
+ assertEquals(model.getOtherClicks(), 0);
+ assertNotNull(model.getClickGroups());
+ assertEquals(model.getClickGroups().size(), 2);
+
+ ClickGroupModel first = model.getClickGroups().get(0);
+ assertEquals(first.getIcon(), "");
+ assertEquals(first.getUrl(), "http://astralbodies.net/blog/2013/10/31/paying-attention-at-automattic/");
+ assertEquals(first.getName(), "astralbodies.net/blog/2013/10/31/paying-attention-at-automattic/");
+ assertEquals(first.getViews(), 1);
+ assertNull(first.getClicks());
+
+ ClickGroupModel second = model.getClickGroups().get(1);
+ assertEquals(second.getIcon(), "");
+ assertEquals(second.getUrl(), "https://devforums.apple.com/thread/86137");
+ assertEquals(second.getName(), "devforums.apple.com/thread/86137");
+ assertEquals(second.getViews(), 1);
+ assertNull(second.getClicks());
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/clicks",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testClicksForMonth() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ ClicksModel model = new ClicksModel("1234567890",response);
+ assertEquals(model.getTotalClicks(), 9);
+ assertEquals(model.getOtherClicks(), 0);
+ assertNotNull(model.getClickGroups());
+ assertEquals(model.getClickGroups().size(), 6);
+
+ ClickGroupModel first = model.getClickGroups().get(0);
+ assertEquals(first.getIcon(), "");
+ assertEquals(first.getUrl(), "http://wp.com/");
+ assertEquals(first.getName(), "wp.com");
+ assertEquals(first.getViews(), 3);
+ assertNull(first.getClicks());
+
+ ClickGroupModel second = model.getClickGroups().get(1);
+ assertEquals(second.getIcon(), "");
+ assertNull(second.getUrl());
+ assertEquals(second.getName(), "blog.wordpress.tv");
+ assertEquals(second.getViews(), 2);
+ assertNotNull(second.getClicks());
+ assertEquals(second.getClicks().size(), 2);
+
+ SingleItemModel firstChild = second.getClicks().get(0);
+ assertNotNull(firstChild);
+ assertEquals(firstChild.getUrl(), "http://blog.wordpress.tv/2014/10/03/build-your-audience-recent-wordcamp-videos-from-experienced-content-creators/");
+ assertEquals(firstChild.getTitle(), "blog.wordpress.tv/2014/10/03/build-your-audience-recent-wordcamp-videos-from-experienced-content-creators/");
+ assertEquals(firstChild.getTotals(), 1);
+ assertEquals(firstChild.getIcon(), "");
+
+
+ SingleItemModel secondChild = second.getClicks().get(1);
+ assertNotNull(secondChild);
+ assertEquals(secondChild.getUrl(), "http://blog.wordpress.tv/2014/10/29/wordcamp-san-francisco-2014-state-of-the-word-keynote/");
+ assertEquals(secondChild.getTitle(), "blog.wordpress.tv/2014/10/29/wordcamp-san-francisco-2014-state-of-the-word-keynote/");
+ assertEquals(secondChild.getTotals(), 1);
+ assertEquals(secondChild.getIcon(), "");
+
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/1234567890/stats/clicks",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testCommentsDay() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ CommentsModel model = new CommentsModel("123456", response);
+ assertEquals(model.getTotalComments(), 177);
+ assertEquals(model.getMonthlyComments(), 2);
+ assertEquals(model.getMostActiveTime(), "08:00");
+ assertEquals(model.getMostActiveDay(), "");
+
+ assertNotNull(model.getAuthors());
+ assertTrue(model.getAuthors().size() == 7);
+ AuthorModel author = model.getAuthors().get(0);
+ assertEquals(author.getName(), "Aaron Douglas");
+ assertEquals(author.getViews(), 20);
+ assertEquals(author.getAvatar(),
+ "https://1.gravatar.com/avatar/db127a496309f2717657d6f6167abd49?s=64&amp;" +
+ "d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=R"
+ );
+ assertNull(author.getFollowData());
+ assertNull(author.getPosts());
+
+ assertNotNull(model.getPosts());
+ assertTrue(model.getPosts().size() == 11);
+ SingleItemModel mostCommentedPost = model.getPosts().get(0);
+ assertEquals(mostCommentedPost.getItemID(), "67");
+ assertEquals(mostCommentedPost.getTotals(), 29);
+ assertEquals(mostCommentedPost.getTitle(), "Mac Screen Sharing (VNC) & White Screen");
+ assertEquals(mostCommentedPost.getUrl(), "http://astralbodi.es/2010/05/02/mac-screen-sharing-vnc-white-screen/");
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/comments",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testCountryViewsDay() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ GeoviewsModel model = new GeoviewsModel("123456", response);
+ assertEquals(model.getOtherViews(), 17);
+ assertEquals(model.getTotalViews(), 55);
+
+ assertNotNull(model.getCountries());
+ assertEquals(model.getCountries().size(), 10);
+ GeoviewModel first = model.getCountries().get(0);
+ assertEquals(first.getCountryFullName(), "United States");
+ assertEquals(first.getFlagIconURL(), "https://secure.gravatar.com/blavatar/5a83891a81b057fed56930a6aaaf7b3c?s=48");
+ assertEquals(first.getFlatFlagIconURL(), "https://secure.gravatar.com/blavatar/9f4faa5ad0c723474f7a6d810172447c?s=48");
+ assertEquals(first.getViews(), 8);
+ GeoviewModel second = model.getCountries().get(1);
+ assertEquals(second.getCountryFullName(), "Taiwan");
+ assertEquals(second.getFlagIconURL(), "https://secure.gravatar.com/blavatar/f983fff0dda7387746b697cfd865e657?s=48");
+ assertEquals(second.getFlatFlagIconURL(), "https://secure.gravatar.com/blavatar/2c224480a40527ee89d7340d4396e8e6?s=48");
+ assertEquals(second.getViews(), 6);
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/country-views",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testFollowersEmail() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ FollowersModel model = new FollowersModel("123456", response);
+ assertEquals(model.getTotalEmail(), 2931);
+ assertEquals(model.getTotalWPCom(), 7926165);
+ assertEquals(model.getTotal(), 2931);
+ assertEquals(model.getPage(), 1);
+ assertEquals(model.getPages(), 419);
+
+ assertNotNull(model.getFollowers());
+ assertEquals(model.getFollowers().size(), 7);
+ FollowerModel first = model.getFollowers().get(0);
+ assertEquals(first.getAvatar(), "https://2.gravatar.com/avatar/e82142697283897ad7444810e5975895?s=64" +
+ "&amp;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G");
+ assertEquals(first.getLabel(), "user1@example.com");
+ assertNull(first.getURL());
+ assertNull(first.getFollowData());
+ assertEquals(first.getDateSubscribed(), "2014-12-16T11:24:41+00:00");
+ FollowerModel last = model.getFollowers().get(6);
+ assertEquals(last.getAvatar(), "https://0.gravatar.com/avatar/3b37f38b63ce4f595cc5cfbaadb10938?s=64" +
+ "&amp;d=https%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G");
+ assertEquals(last.getLabel(), "user7@example.com");
+ assertNull(last.getURL());
+ assertNull(last.getFollowData());
+ assertEquals(last.getDateSubscribed(), "2014-12-15T15:09:01+00:00");
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/followers",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testFollowersWPCOM() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ FollowersModel model = new FollowersModel("1234567890", response);
+ assertEquals(model.getTotalEmail(), 2930);
+ assertEquals(model.getTotalWPCom(), 7925800);
+ assertEquals(model.getTotal(), 7925800);
+ assertEquals(model.getPage(), 1);
+ assertEquals(model.getPages(), 1132258);
+
+ assertNotNull(model.getFollowers());
+ assertEquals(model.getFollowers().size(), 7);
+ FollowerModel first = model.getFollowers().get(0);
+ assertEquals(first.getAvatar(), "https://0.gravatar.com/avatar/624b89cb0c8b9136f9629dd7bcab0517?s=64" +
+ "&amp;d=https%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G");
+ assertEquals(first.getLabel(), "ritu929");
+ assertEquals(first.getURL(), "http://ritu9blog.wordpress.com");
+ assertEquals(first.getDateSubscribed(), "2014-12-16T14:53:21+00:00");
+ assertNotNull(first.getFollowData());
+ FollowDataModel followDatamodel = first.getFollowData();
+ assertFalse(followDatamodel.isFollowing());
+ assertEquals(followDatamodel.getType(), "follow");
+
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/1234567890/stats/followers",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testPostDetails() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ PostViewsModel model = new PostViewsModel(response);
+ assertNotNull(model.getOriginalResponse());
+
+ assertEquals(model.getDate(), "2015-03-04");
+ assertEquals(model.getHighestMonth(), 278);
+ assertEquals(model.getHighestDayAverage(), 8);
+ assertEquals(model.getHighestWeekAverage(), 8);
+
+ assertNotNull(model.getDayViews());
+ assertEquals(model.getDayViews()[0].getViews(), 0);
+ assertEquals(model.getDayViews()[0].getPeriod(), "2014-06-04");
+ assertEquals(model.getDayViews()[model.getDayViews().length-1].getViews(), 8);
+ assertEquals(model.getDayViews()[model.getDayViews().length - 1].getPeriod(), "2015-03-04");
+
+ assertNotNull(model.getYears().size());
+ assertEquals(model.getYears().size(), 2);
+ assertEquals(model.getYears().get(0).getTotal(), 1097);
+ assertEquals(model.getYears().get(0).getLabel(), "2014");
+ assertEquals(model.getYears().get(0).getMonths().size(), 7);
+ assertEquals(model.getYears().get(0).getMonths().get(0).getMonth(), "6");
+ assertEquals(model.getYears().get(1).getTotal(), 226);
+ assertEquals(model.getYears().get(1).getLabel(), "2015");
+
+ assertNotNull(model.getWeeks().size());
+ assertEquals(model.getWeeks().size(), 6);
+
+ assertNotNull(model.getAverages());
+ assertEquals(model.getAverages().size(), 2);
+ assertEquals(model.getAverages().get(0).getTotal(), 5);
+ assertEquals(model.getAverages().get(0).getLabel(), "2014");
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/post/123",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testReferrers() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ ReferrersModel model = new ReferrersModel("123456", response);
+ assertEquals(model.getTotalViews(), 2161);
+ assertEquals(model.getOtherViews(), 938);
+ assertNotNull(model.getGroups());
+ assertEquals(model.getGroups().size(), 10);
+
+ // first group in the response
+ ReferrerGroupModel gModel = model.getGroups().get(0);
+ assertEquals(gModel.getName(), "Search Engines");
+ assertEquals(gModel.getGroupId(), "Search Engines");
+ assertEquals(gModel.getIcon(), "https://wordpress.com/i/stats/search-engine.png");
+ assertEquals(gModel.getTotal(), 480);
+ assertNotNull(gModel.getResults());
+ assertEquals(gModel.getResults().size(), 7);
+
+ // 2nd level item
+ ReferrerResultModel refResultModel = gModel.getResults().get(0);
+ assertEquals(refResultModel.getName(), "Google Search");
+ assertEquals(refResultModel.getIcon(), "https://secure.gravatar.com/blavatar/6741a05f4bc6e5b65f504c4f3df388a1?s=48");
+ assertEquals(refResultModel.getViews(), 461);
+ assertNotNull(refResultModel.getChildren());
+ assertNull(refResultModel.getUrl()); //has childs. No URL.
+
+ // 3rd level items
+ SingleItemModel child = refResultModel.getChildren().get(0);
+ assertEquals(child.getUrl(), "http://www.google.com/");
+ assertEquals(child.getTitle(), "google.com");
+ assertEquals(child.getIcon(), "https://secure.gravatar.com/blavatar/ff90821feeb2b02a33a6f9fc8e5f3fcd?s=48");
+ assertEquals(child.getTotals(), 176);
+ child = refResultModel.getChildren().get(10);
+ assertEquals(child.getUrl(), "http://www.google.co.jp");
+ assertEquals(child.getTitle(), "google.co.jp");
+ assertEquals(child.getIcon(), "https://secure.gravatar.com/blavatar/a28b8206a6562f6098688508d4665905?s=48");
+ assertEquals(child.getTotals(), 6);
+
+
+ // 7th group in the response
+ gModel = model.getGroups().get(6);
+ assertEquals(gModel.getName(), "ma.tt");
+ assertEquals(gModel.getGroupId(), "ma.tt");
+ assertEquals(gModel.getIcon(), "https://secure.gravatar.com/blavatar/733a27a6b983dd89d6dd64d0445a3e8e?s=48");
+ assertEquals(gModel.getTotal(), 56);
+ assertNotNull(gModel.getResults());
+ assertEquals(gModel.getResults().size(), 11);
+
+ // 2nd level item
+ refResultModel = gModel.getResults().get(0);
+ assertEquals(refResultModel.getName(), "ma.tt");
+ assertEquals(refResultModel.getUrl(), "http://ma.tt/");
+ assertEquals(refResultModel.getIcon(), "");
+ assertEquals(refResultModel.getViews(), 34); // No childs. Has URL.
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/referrers",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testTagsCategories() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ TagsContainerModel model = new TagsContainerModel("123456", response);
+ assertEquals(model.getDate(), "2014-12-16");
+ assertNotNull(model.getTags());
+ assertEquals(model.getTags().size(), 10);
+
+ TagsModel tag = model.getTags().get(0);
+ assertEquals(tag.getViews(), 461);
+ assertNotNull(tag.getTags());
+ assertEquals(tag.getTags().size(), 1);
+ assertNotNull(tag.getTags());
+ assertEquals(tag.getTags().get(0).getName(), "Uncategorized");
+ assertEquals(tag.getTags().get(0).getType(), "category");
+ assertEquals(tag.getTags().get(0).getLink(), "http://astralbodi.es/category/uncategorized/");
+
+ tag = model.getTags().get(9);
+ assertEquals(tag.getViews(), 41);
+ assertEquals(tag.getTags().get(0).getName(), "networking");
+ assertEquals(tag.getTags().get(0).getType(), "tag");
+ assertEquals(tag.getTags().get(0).getLink(), "http://astralbodi.es/tag/networking/");
+ assertEquals(tag.getTags().get(1).getName(), "unix");
+ assertEquals(tag.getTags().get(1).getType(), "tag");
+ assertEquals(tag.getTags().get(1).getLink(), "http://astralbodi.es/tag/unix/");
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/tags",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testTopPost() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ TopPostsAndPagesModel model = new TopPostsAndPagesModel("123456", response);
+ assertNotNull(model.getTopPostsAndPages());
+ assertEquals(model.getTopPostsAndPages().size(), 10);
+
+ PostModel postModel = model.getTopPostsAndPages().get(0);
+ assertEquals(postModel.getItemID(), "39806");
+ assertEquals(postModel.getTotals(), 2420);
+ assertEquals(postModel.getTitle(), "Home");
+ assertEquals(postModel.getUrl(), "http://automattic.com/home/");
+ assertEquals(postModel.getDate(), StatsUtils.toMs("2011-08-30 21:47:38"));
+ assertEquals(postModel.getPostType(), "page");
+
+ postModel = model.getTopPostsAndPages().get(9);
+ assertEquals(postModel.getItemID(), "39254");
+ assertEquals(postModel.getTotals(), 56);
+ assertEquals(postModel.getTitle(), "Growth Explorer");
+ assertEquals(postModel.getUrl(), "http://automattic.com/work-with-us/growth-explorer/");
+ assertEquals(postModel.getDate(), StatsUtils.toMs("2011-08-25 19:37:27"));
+ assertEquals(postModel.getPostType(), "page");
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/top-posts",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testTopPostEmptyURL() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ TopPostsAndPagesModel model = new TopPostsAndPagesModel("1234567890", response);
+ assertNotNull(model.getTopPostsAndPages());
+ assertEquals(model.getTopPostsAndPages().size(), 10);
+
+ PostModel postModel = model.getTopPostsAndPages().get(0);
+ assertEquals(postModel.getItemID(), "750");
+ assertEquals(postModel.getTotals(), 7);
+ assertEquals(postModel.getTitle(), "Asynchronous unit testing Core Data with Xcode 6");
+ assertEquals(postModel.getUrl(), ""); // This post has no URL?!? Unpublished post that was prev published?
+ assertEquals(postModel.getDate(), StatsUtils.toMs("2014-08-06 14:52:11"));
+ assertEquals(postModel.getPostType(), "post");
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/1234567890/stats/top-posts",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testInsightsAllTime() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ InsightsAllTimeModel model = new InsightsAllTimeModel("12345",response);
+ assertEquals(model.getPosts(), 128);
+ assertEquals(model.getViews(), 56687);
+ assertEquals(model.getVisitors(), 42893);
+ assertEquals(model.getViewsBestDayTotal(), 3485);
+ assertNotNull(model.getViewsBestDay());
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testInsightsToday() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ InsightsTodayModel model = new InsightsTodayModel("123456", response);
+ assertEquals(model.getDate(), "2014-10-28");
+ assertEquals(model.getBlogID(), "123456");
+ assertEquals(model.getViews(), 56);
+ assertEquals(model.getVisitors(), 44);
+ assertEquals(model.getLikes(), 1);
+ assertEquals(model.getReblogs(), 2);
+ assertEquals(model.getComments(), 3);
+ assertEquals(model.getFollowers(), 56);
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/summary",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testInsightsPopular() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ InsightsPopularModel model = new InsightsPopularModel("123456", response);
+ assertEquals(model.getHighestHour(), 9);
+ assertEquals(model.getHighestDayOfWeek(), 5);
+ assertEquals(model.getHighestDayPercent(), 30.532081377152);
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/insights",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testVideoPlaysNoData() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ VideoPlaysModel model = new VideoPlaysModel("123456", response);
+ assertEquals(model.getOtherPlays(), 0);
+ assertEquals(model.getTotalPlays(), 0);
+ assertNotNull(model.getPlays());
+ assertEquals(model.getPlays().size(), 0);
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/video-plays",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testVideoPlays() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ VideoPlaysModel model = new VideoPlaysModel("1234567890", response);
+ assertEquals(model.getOtherPlays(), 0);
+ assertEquals(model.getTotalPlays(), 2);
+ assertNotNull(model.getPlays());
+ assertEquals(model.getPlays().size(), 1);
+ SingleItemModel videoItemModel = model.getPlays().get(0);
+ assertEquals(videoItemModel.getTitle(), "Test Video");
+ assertEquals(videoItemModel.getUrl(), "http://maplebaconyummies.wordpress.com/wp-admin/media.php?action=edit&attachment_id=144");
+ assertEquals(videoItemModel.getItemID(), "144");
+ assertEquals(videoItemModel.getTotals(), 2);
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/1234567890/stats/video-plays",
+ null,
+ listener,
+ errListener
+ );
+ }
+
+ public void testVisits() throws Exception {
+ StatsRestRequestAbstractListener listener = new StatsRestRequestAbstractListener() {
+ @Override
+ void parseResponse(JSONObject response) throws JSONException {
+ VisitsModel model = new VisitsModel("123456", response);
+ assertNotNull(model.getVisits());
+ assertNotNull(model.getUnit());
+ assertNotNull(model.getDate());
+
+ assertEquals(model.getVisits().size(), 30);
+ assertEquals(model.getUnit(), "day");
+
+ VisitModel visitModel = model.getVisits().get(0);
+ assertEquals(visitModel.getViews(), 7808);
+ assertEquals(visitModel.getVisitors(), 4331);
+ assertEquals(visitModel.getLikes(), 0);
+ assertEquals(visitModel.getComments(), 0);
+ assertEquals(visitModel.getPeriod(), "2014-10-08");
+
+ }
+ };
+
+ mRestClient.makeRequest(Request.Method.POST, "https://public-api.wordpress.com/rest/v1.1/sites/123456/stats/visits",
+ null,
+ listener,
+ errListener
+ );
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/util/ApiHelperTest.java b/WordPress/src/androidTest/java/org/wordpress/android/util/ApiHelperTest.java
new file mode 100644
index 000000000..82b3ba214
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/util/ApiHelperTest.java
@@ -0,0 +1,124 @@
+package org.wordpress.android.util;
+
+import android.content.Context;
+import android.os.AsyncTask;
+import android.test.InstrumentationTestCase;
+import android.test.RenamingDelegatingContext;
+
+import org.wordpress.android.FactoryUtils;
+import org.wordpress.android.TestUtils;
+import org.wordpress.android.mocks.RestClientFactoryTest;
+import org.wordpress.android.mocks.XMLRPCFactoryTest;
+import org.wordpress.android.models.Blog;
+import org.wordpress.android.models.Comment;
+import org.wordpress.android.models.CommentStatus;
+import org.wordpress.android.util.AppLog.T;
+import org.xmlrpc.android.ApiHelper;
+import org.xmlrpc.android.ApiHelper.ErrorType;
+import org.xmlrpc.android.ApiHelper.GenericCallback;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+public class ApiHelperTest extends InstrumentationTestCase {
+ protected Context mTargetContext;
+
+ @Override
+ protected void setUp() {
+ FactoryUtils.initWithTestFactories();
+
+ // Clean application state
+ mTargetContext = new RenamingDelegatingContext(getInstrumentation().getTargetContext(), "test_");
+ TestUtils.clearApplicationState(mTargetContext);
+
+ // Init contexts
+ XMLRPCFactoryTest.sContext = getInstrumentation().getContext();
+ RestClientFactoryTest.sContext = getInstrumentation().getContext();
+ AppLog.v(T.TESTS, "Contexts set");
+
+ // Set mode to Customizable
+ XMLRPCFactoryTest.sMode = XMLRPCFactoryTest.Mode.CUSTOMIZABLE_JSON;
+ RestClientFactoryTest.sMode = RestClientFactoryTest.Mode.CUSTOMIZABLE;
+ AppLog.v(T.TESTS, "Modes set to customizable");
+ }
+
+ @Override
+ protected void tearDown() {
+ FactoryUtils.clearFactories();
+ }
+
+ private void countDownAfterOtherAsyncTasks(final CountDownLatch countDownLatch) {
+ AsyncTask.SERIAL_EXECUTOR.execute(new Runnable() {
+ @Override
+ public void run() {
+ countDownLatch.countDown();
+ }
+ });
+ }
+
+ // This test failed before #773 was fixed
+ public void testRefreshBlogContent() throws InterruptedException {
+ XMLRPCFactoryTest.setPrefixAllInstances("malformed-software-version");
+ final CountDownLatch countDownLatch = new CountDownLatch(1);
+ Blog dummyBlog = new Blog("", "", "");
+ new ApiHelper.RefreshBlogContentTask(dummyBlog, new GenericCallback() {
+ @Override
+ public void onSuccess() {
+ assertTrue(true);
+ // countDown() after the serially invoked (nested) AsyncTask in RefreshBlogContentTask.
+ countDownAfterOtherAsyncTasks(countDownLatch);
+ }
+
+ @Override
+ public void onFailure(ErrorType errorType, String errorMessage, Throwable throwable) {
+ assertTrue(false);
+ // countDown() after the serially invoked (nested) AsyncTask in RefreshBlogContentTask.
+ countDownAfterOtherAsyncTasks(countDownLatch);
+ }
+ }).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, false);
+ countDownLatch.await(5000, TimeUnit.SECONDS);
+ }
+
+ // This test failed before #799 was fixed
+ public void testRefreshBlogContentEmptyResponse() throws InterruptedException {
+ XMLRPCFactoryTest.setPrefixAllInstances("empty");
+ final CountDownLatch countDownLatch = new CountDownLatch(1);
+ Blog dummyBlog = new Blog("", "", "");
+ new ApiHelper.RefreshBlogContentTask(dummyBlog, new GenericCallback() {
+ @Override
+ public void onSuccess() {
+ assertTrue(false);
+ // countDown() after the serially invoked (nested) AsyncTask in RefreshBlogContentTask.
+ countDownAfterOtherAsyncTasks(countDownLatch);
+ }
+
+ @Override
+ public void onFailure(ErrorType errorType, String errorMessage, Throwable throwable) {
+ assertTrue(true);
+ // countDown() after the serially invoked (nested) AsyncTask in RefreshBlogContentTask.
+ countDownAfterOtherAsyncTasks(countDownLatch);
+ }
+ }).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR, false);
+ countDownLatch.await(5000, TimeUnit.SECONDS);
+ }
+
+ public void testSpamSpammedComment() {
+ XMLRPCFactoryTest.sMode = XMLRPCFactoryTest.Mode.CUSTOMIZABLE_XML;
+ XMLRPCFactoryTest.setPrefixAllInstances("comment-already-spammed");
+ Blog dummyBlog = new Blog("", "", "");
+ // contrstust a dummy (albeit invalid) comment object to pass the comment id
+ Comment comment = new Comment(1, 2, null, null, null, null, null, null, null, null);
+
+ assertTrue(ApiHelper.editComment(dummyBlog, comment, CommentStatus.SPAM));
+ }
+
+ public void testGetSpammedCommentStatus() {
+ XMLRPCFactoryTest.sMode = XMLRPCFactoryTest.Mode.CUSTOMIZABLE_XML;
+ XMLRPCFactoryTest.setPrefixAllInstances("comment-already-spammed");
+ Blog dummyBlog = new Blog("", "", "");
+ // contrstust a dummy (albeit invalid) comment object to pass the comment id
+ Comment comment = new Comment(1, 2, null, null, null, null, null, null, null, null);
+
+ assertEquals(CommentStatus.SPAM, ApiHelper.getCommentStatus(dummyBlog, comment));
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/util/AutolinkUtilsTest.java b/WordPress/src/androidTest/java/org/wordpress/android/util/AutolinkUtilsTest.java
new file mode 100644
index 000000000..5341c96bd
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/util/AutolinkUtilsTest.java
@@ -0,0 +1,79 @@
+package org.wordpress.android.util;
+
+import android.test.InstrumentationTestCase;
+
+public class AutolinkUtilsTest extends InstrumentationTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ public void testNullString() {
+ AutolinkUtils.autoCreateLinks(null);
+ }
+
+ public void testEmptyString() {
+ String sourceTest = "";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ assertEquals(sourceTest, output);
+ }
+
+ public void testNonBlacklistedUrl1() {
+ String sourceTest = "http://test.com";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ String expected = "<a href=\"http://test.com\">http://test.com</a>";
+ assertEquals(expected, output);
+ }
+
+ public void testNonBlacklistedUrl2() {
+ String sourceTest = "http://test.com http://test.com";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ String expected = "<a href=\"http://test.com\">http://test.com</a> <a href=\"http://test.com\">http://test.com</a>";
+ assertEquals(expected, output);
+ }
+
+ public void testNonBlacklistedUrl3() {
+ String sourceTest = "http://test.com\nhttp://test.com";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ String expected = "<a href=\"http://test.com\">http://test.com</a>\n<a href=\"http://test.com\">http://test.com</a>";
+ assertEquals(expected, output);
+ }
+
+ public void testBlacklistedUrl1() {
+ String sourceTest = "http://youtube.com/watch?test";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ assertEquals(sourceTest, output);
+ }
+
+ public void testMixedUrls1() {
+ String sourceTest = "hey http://youtube.com/watch?test salut http://test.com hello";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ String expected = "hey http://youtube.com/watch?test salut <a href=\"http://test.com\">http://test.com</a> hello";
+ assertEquals(expected, output);
+ }
+
+ public void testExistingAHref1() {
+ String sourceTest = "<a href=\"http://test.com\">http://test.com</a>";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ assertEquals(sourceTest, output);
+ }
+
+ public void testUndetectable1() {
+ String sourceTest = "testhttp://test.com";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ assertEquals(sourceTest, output);
+ }
+
+ public void testUndetectable2() {
+ String sourceTest = "\"http://test.com\"";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ assertEquals(sourceTest, output);
+ }
+
+ public void testMixedUrls2() {
+ String sourceTest = "http://test.com http://www.youtube.com/watch?test http://test.com http://youtu.be/wat";
+ String output = AutolinkUtils.autoCreateLinks(sourceTest);
+ String expected = "<a href=\"http://test.com\">http://test.com</a> http://www.youtube.com/watch?test <a href=\"http://test.com\">http://test.com</a> http://youtu.be/wat";
+ assertEquals(expected, output);
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/util/HealthCheckTest.java b/WordPress/src/androidTest/java/org/wordpress/android/util/HealthCheckTest.java
new file mode 100644
index 000000000..0e94c079e
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/util/HealthCheckTest.java
@@ -0,0 +1,227 @@
+package org.wordpress.android.util;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.test.InstrumentationTestCase;
+
+import com.squareup.okhttp.Headers;
+import com.squareup.okhttp.mockwebserver.Dispatcher;
+import com.squareup.okhttp.mockwebserver.MockResponse;
+import com.squareup.okhttp.mockwebserver.MockWebServer;
+import com.squareup.okhttp.mockwebserver.RecordedRequest;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.wordpress.android.TestUtils;
+import org.wordpress.android.WordPress;
+import org.xmlrpc.android.LoggedInputStream;
+import org.xmlrpc.android.XMLRPCUtils;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+
+public class HealthCheckTest extends InstrumentationTestCase {
+ private static final String sAssetPathBase = "health-check/";
+ private static final String sServerAddressMagicString = "mockserver";
+ private static final String sServerResponsesMagicScheme = "asset:";
+
+ private void setLocale(String language, String country) {
+ Locale locale = new Locale(language, country);
+ Locale.setDefault(locale);
+ Resources res = getInstrumentation().getTargetContext().getResources();
+ Configuration config = res.getConfiguration();
+ config.locale = locale;
+ res.updateConfiguration(config, res.getDisplayMetrics());
+ }
+
+ @Override
+ protected void setUp() {
+ WordPress.setupVolleyQueue();
+
+ // set the app locale to english since the tests only support English for now
+ setLocale("en", "US");
+ }
+
+ @Override
+ protected void tearDown() {
+ }
+
+ private static String stringFromAsset(Context context, String assetFilename) throws IOException {
+ LoggedInputStream mLoggedInputStream = new LoggedInputStream(context.getAssets().open(assetFilename));
+ return TestUtils.convertStreamToString(mLoggedInputStream);
+ }
+
+ private static JSONObject jsonFromAsset(Context context, String assetFilename) throws IOException, JSONException {
+ return new JSONObject(stringFromAsset(context, assetFilename));
+ }
+
+ public void testHealthCheckXplat() throws JSONException, IOException {
+ JSONArray testCases = jsonFromAsset(getInstrumentation().getContext(), sAssetPathBase +
+ "health-check-xplat-testcases.json").getJSONArray("testcases");
+
+ for (int i = 0; i < testCases.length(); i++) {
+ final JSONObject testCase = testCases.getJSONObject(i);
+ final String testCaseComment = testCase.getString("comment");
+
+ final JSONObject testSetup = testCase.getJSONObject("setup");
+ final String realm = testCase.getString("realm");
+
+ switch (realm) {
+ case "URL_CANONICALIZATION":
+ runUrlCanonicalization(testCaseComment, testSetup);
+ break;
+ case "XMLPRC_DISCOVERY":
+ runXmlrpcDiscovery(testCaseComment, testSetup);
+ break;
+ default:
+ // fail the testsuite
+ assertTrue("health-check realm " + realm + " is not supported!", false);
+ break;
+ }
+ }
+ }
+
+ private void runUrlCanonicalization(String testCaseComment, JSONObject testSetup) throws JSONException {
+ final JSONObject input = testSetup.getJSONObject("input");
+
+ final String inputUrl = input.isNull("siteUrl") ? null : input.getString("siteUrl");
+
+ final JSONObject output = testSetup.getJSONObject("output");
+
+ final String outputUrl = output.optString("siteUrl", null);
+ final JSONObject error = output.optJSONObject("error");
+
+ String canonicalizedUrl = null;
+ try {
+ canonicalizedUrl = XMLRPCUtils.sanitizeSiteUrl(inputUrl, true);
+
+ // if we reached this point, it means that no error occurred
+ assertNull(testCaseMessage("Testcase defines an error but no error occurred!", testCaseComment), error);
+ } catch (XMLRPCUtils.XMLRPCUtilsException hce) {
+ assertNotNull(testCaseMessage("Error occurred but testcase does not define an error!", testCaseComment),
+ error);
+
+ assertEquals(testCaseMessage("Error message does not match the defined one!", testCaseComment), error
+ .getString("message"), getInstrumentation().getTargetContext().getString(hce.errorMsgId));
+ }
+
+ assertEquals(testCaseMessage("Canonicalized URL does not match the defined one!", testCaseComment),
+ outputUrl, canonicalizedUrl);
+ }
+
+ private void runXmlrpcDiscovery(String testCaseComment, JSONObject testSetup) throws JSONException, IOException {
+ final MockWebServer server = new MockWebServer();
+
+ testSetup = new JSONObject(replaceServerMagicName(server, testSetup.toString()));
+
+ final JSONObject input = testSetup.getJSONObject("input");
+
+ setupMockHttpServer(server, input);
+
+ final String inputUrl = input.isNull("siteUrl") ? server.url("").toString() : input.getString("siteUrl");
+
+ final JSONObject output = testSetup.getJSONObject("output");
+
+ final String outputUrl = output.optString("xmlrpcEndpoint", null);
+ final JSONObject error = output.optJSONObject("error");
+
+ String xmlrpcUrl = null;
+ try {
+ xmlrpcUrl = XMLRPCUtils.verifyOrDiscoverXmlRpcUrl(inputUrl, input.optString("username", null), input
+ .optString("username", null));
+
+ // if we reached this point, it means that no error occurred
+ assertNull(testCaseMessage("Testcase defines an error but no error occurred!", testCaseComment), error);
+ } catch (XMLRPCUtils.XMLRPCUtilsException hce) {
+ assertNotNull(testCaseMessage("Error occurred but testcase does not define an error!", testCaseComment),
+ error);
+
+ assertEquals(testCaseMessage("Error message does not match the defined one!", testCaseComment), error
+ .getString("message"), getInstrumentation().getTargetContext().getString(hce.errorMsgId));
+ }
+
+ assertEquals(testCaseMessage("XMLRPC URL does not match the defined one!", testCaseComment), outputUrl,
+ xmlrpcUrl);
+
+ server.shutdown();
+ }
+
+ private MockWebServer setupMockHttpServer(MockWebServer server, JSONObject requestResponsesJson) throws
+ JSONException, IOException {
+ final Map<RecordedRequest, MockResponse> mockRequestResponses = new HashMap<>();
+
+ final JSONArray serverMock = requestResponsesJson.getJSONArray("serverMock");
+ for (int i = 0; i < serverMock.length(); i++) {
+ final JSONObject reqRespJson = serverMock.getJSONObject(i);
+
+ final JSONObject reqJson = reqRespJson.getJSONObject("request");
+ Headers reqHeaders = json2Headers(reqJson.optJSONObject("headers"));
+
+ RecordedRequest recordedRequest = new RecordedRequest(reqJson.getString("method") + " " + reqJson
+ .getString("path") + " HTTP/1.1", reqHeaders, null, 0, null, 0, null);
+
+ final JSONObject respJson = reqRespJson.getJSONObject("response");
+ Headers respHeaders = json2Headers(respJson.optJSONObject("headers"));
+
+ String body = respJson.optString("body");
+ if (body.startsWith(sServerResponsesMagicScheme)) {
+ body = stringFromAsset(getInstrumentation().getContext(), sAssetPathBase + body.substring
+ (sServerResponsesMagicScheme.length()));
+ }
+
+ body = replaceServerMagicName(server, body);
+
+ final MockResponse resp = new MockResponse()
+ .setResponseCode(respJson.getInt("statusCode"))
+ .setHeaders(respHeaders)
+ .setBody(body);
+
+ mockRequestResponses.put(recordedRequest, resp);
+ }
+
+ server.setDispatcher(new Dispatcher() {
+ @Override
+ public MockResponse dispatch(RecordedRequest request) throws InterruptedException {
+
+ for (Map.Entry<RecordedRequest, MockResponse> reqResp : mockRequestResponses.entrySet()) {
+ final RecordedRequest mockRequest = reqResp.getKey();
+ if (mockRequest.getRequestLine().equals(request.getRequestLine())) {
+ return reqResp.getValue();
+ }
+ }
+ return new MockResponse().setResponseCode(404).setBody("");
+ }
+ });
+
+ return server;
+ }
+
+ private String replaceServerMagicName(MockWebServer server, String str) {
+ return str.replaceAll(sServerAddressMagicString, server.getHostName() + ":" + server.getPort());
+
+ }
+
+ private Headers json2Headers(JSONObject headersJson) throws JSONException {
+ if (headersJson != null) {
+ Headers.Builder headBuilder = new Headers.Builder();
+ Iterator<String> headerKeys = headersJson.keys();
+ while (headerKeys.hasNext()) {
+ final String headerName = headerKeys.next();
+ headBuilder.add(headerName, headersJson.getString(headerName));
+ }
+
+ return headBuilder.build();
+ }
+
+ return new Headers.Builder().build();
+ }
+
+ private String testCaseMessage(String message, String testCaseComment) {
+ return message + " (on testCase: '" + testCaseComment + "')";
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/util/UrlUtilsTest.java b/WordPress/src/androidTest/java/org/wordpress/android/util/UrlUtilsTest.java
new file mode 100644
index 000000000..25398b9d4
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/util/UrlUtilsTest.java
@@ -0,0 +1,25 @@
+package org.wordpress.android.util;
+
+import android.test.InstrumentationTestCase;
+
+public class UrlUtilsTest extends InstrumentationTestCase {
+ public void testGetHost1() {
+ assertEquals("a.com", UrlUtils.getHost("http://a.com/test"));
+ }
+
+ public void testGetHost2() {
+ assertEquals("a.com", UrlUtils.getHost("http://a.com#.b.com/test"));
+ }
+
+ public void testGetHost3() {
+ assertEquals("a.com", UrlUtils.getHost("https://a.com"));
+ }
+
+ public void testGetHost4() {
+ assertEquals("a.com", UrlUtils.getHost("https://a.com/test#test"));
+ }
+
+ public void testGetHost5() {
+ assertEquals("", UrlUtils.getHost("a.com"));
+ }
+}
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/util/WPHtmlTest.java b/WordPress/src/androidTest/java/org/wordpress/android/util/WPHtmlTest.java
new file mode 100644
index 000000000..b9ddce162
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/util/WPHtmlTest.java
@@ -0,0 +1,38 @@
+package org.wordpress.android.util;
+
+import android.test.InstrumentationTestCase;
+import android.text.SpannableStringBuilder;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.helpers.AttributesImpl;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public class WPHtmlTest extends InstrumentationTestCase {
+ @Override
+ protected void setUp() {
+ }
+
+ @Override
+ protected void tearDown() {
+ }
+
+ // This test failed before #685 was fixed (throws a InvocationTargetException)
+ public void testStartImg() throws NoSuchMethodException, IllegalAccessException {
+ SpannableStringBuilder text = new SpannableStringBuilder();
+ Attributes attributes = new AttributesImpl();
+
+ HtmlToSpannedConverter converter = new HtmlToSpannedConverter(null, null, null, null, null, null, 0);
+
+ // startImg is private, we use reflection to change accessibility and invoke it from here
+ Method method = HtmlToSpannedConverter.class.getDeclaredMethod("startImg", SpannableStringBuilder.class,
+ Attributes.class, WPHtml.ImageGetter.class);
+ method.setAccessible(true);
+ try {
+ method.invoke(converter, text, attributes, null);
+ } catch (InvocationTargetException e) {
+ assertTrue("startImg failed see #685", false);
+ }
+ }
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/util/WPUrlUtilsTest.java b/WordPress/src/androidTest/java/org/wordpress/android/util/WPUrlUtilsTest.java
new file mode 100644
index 000000000..a250198e3
--- /dev/null
+++ b/WordPress/src/androidTest/java/org/wordpress/android/util/WPUrlUtilsTest.java
@@ -0,0 +1,272 @@
+package org.wordpress.android.util;
+
+import android.test.InstrumentationTestCase;
+
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+public class WPUrlUtilsTest extends InstrumentationTestCase {
+
+ private static final String wpcomAddress1 = "http://wordpress.com/xmlrpc.php";
+ private static final String wpcomAddress2 = "http://wordpress.com#.b.com/test";
+ private static final String wpcomAddress3 = "http://wordpress.com/xmlrpc.php";
+ private static final String wpcomAddress4 = "https://wordpress.com";
+ private static final String wpcomAddress5 = "https://wordpress.com/test#test";
+ private static final String wpcomAddress6 = "https://developer.wordpress.com";
+ private static final String notWpcomAddress1 = "http://i2.wp.com.eritreo.it#.files.wordpress.com/testpicture.gif?strip=all&quality=100&resize=1024,768";
+ private static final String notWpcomAddress2 = "wordpress.com";
+ private static final String notWpcomAddress3 = "https://thisisnotwordpress.com";
+
+
+ public void testSafeToAddAuthToken1() {
+ // Not HTTPS
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(wpcomAddress1));
+ }
+
+ public void testSafeToAddAuthToken2() {
+ // Not HTTPS
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(wpcomAddress2));
+ }
+
+ public void testSafeToAddAuthToken3() {
+ // Not HTTPS
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(wpcomAddress3));
+ }
+
+ public void testSafeToAddAuthToken4() {
+ assertTrue(WPUrlUtils.safeToAddWordPressComAuthToken(wpcomAddress4));
+ }
+ public void testSafeToAddAuthToken5() {
+ assertTrue(WPUrlUtils.safeToAddWordPressComAuthToken(wpcomAddress5));
+ }
+
+ public void testSafeToAddAuthToken6() {
+ // Not wpcom
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(notWpcomAddress1));
+ }
+
+ public void testSafeToAddAuthToken7() {
+ // Not wpcom
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(notWpcomAddress2));
+ }
+
+ public void testSafeToAddAuthToken8() {
+ // Not HTTPS
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURL(wpcomAddress1)));
+ }
+
+ public void testSafeToAddAuthToken9() {
+ // Not HTTPS
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURL(wpcomAddress2)));
+ }
+
+ public void testSafeToAddAuthToken10() {
+ // Not HTTPS
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURL(wpcomAddress3)));
+ }
+
+ public void testSafeToAddAuthToken11() {
+ assertTrue(WPUrlUtils.safeToAddWordPressComAuthToken(buildURL(wpcomAddress4)));
+ }
+ public void testSafeToAddAuthToken12() {
+ assertTrue(WPUrlUtils.safeToAddWordPressComAuthToken(buildURL(wpcomAddress5)));
+ }
+
+ public void testSafeToAddAuthToken13() {
+ // Not wpcom
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURL(notWpcomAddress1)));
+ }
+
+ public void testSafeToAddAuthToken14() {
+ // Not wpcom
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURL(notWpcomAddress2)));
+ }
+
+ public void testSafeToAddAuthToken15() {
+ // Not HTTPS
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURI(wpcomAddress1)));
+ }
+
+ public void testSafeToAddAuthToken16() {
+ // Not HTTPS
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURI(wpcomAddress2)));
+ }
+
+ public void testSafeToAddAuthToken17() {
+ // Not HTTPS
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURI(wpcomAddress3)));
+ }
+
+ public void testSafeToAddAuthToken18() {
+ assertTrue(WPUrlUtils.safeToAddWordPressComAuthToken(buildURI(wpcomAddress4)));
+ }
+ public void testSafeToAddAuthToken19() {
+ assertTrue(WPUrlUtils.safeToAddWordPressComAuthToken(buildURI(wpcomAddress5)));
+ }
+
+ public void testSafeToAddAuthToken20() {
+ // Not wpcom
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURI(notWpcomAddress1)));
+ }
+
+ public void testSafeToAddAuthToken21() {
+ // Not wpcom
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURI(notWpcomAddress2)));
+ }
+
+ public void testSafeToAddAuthToken22() {
+ // Not wpcom
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(notWpcomAddress3));
+ }
+
+ public void testSafeToAddAuthToken23() {
+ // Not wpcom
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURL(notWpcomAddress3)));
+ }
+
+ public void testSafeToAddAuthToken24() {
+ // Not wpcom
+ assertFalse(WPUrlUtils.safeToAddWordPressComAuthToken(buildURI(notWpcomAddress3)));
+ }
+
+ public void testSafeToAddAuthToken25() {
+ assertTrue(WPUrlUtils.safeToAddWordPressComAuthToken(wpcomAddress6));
+ }
+
+ public void testSafeToAddAuthToken26() {
+ assertTrue(WPUrlUtils.safeToAddWordPressComAuthToken(buildURL(wpcomAddress6)));
+ }
+
+ public void testSafeToAddAuthToken27() {
+ assertTrue(WPUrlUtils.safeToAddWordPressComAuthToken(buildURI(wpcomAddress6)));
+ }
+
+
+ public void testIsWPCOMString1() {
+ assertTrue(WPUrlUtils.isWordPressCom(wpcomAddress1));
+ }
+
+ public void testIsWPCOMString2() {
+ assertTrue(WPUrlUtils.isWordPressCom(wpcomAddress2));
+ }
+
+ public void testIsWPCOMString3() {
+ assertTrue(WPUrlUtils.isWordPressCom(wpcomAddress3));
+ }
+
+ public void testIsWPCOMString4() {
+ assertTrue(WPUrlUtils.isWordPressCom(wpcomAddress4));
+ }
+
+ public void testIsWPCOMString5() {
+ assertTrue(WPUrlUtils.isWordPressCom(wpcomAddress5));
+ }
+
+ public void testIsWPCOMString6() {
+ assertTrue(WPUrlUtils.isWordPressCom(wpcomAddress6));
+ }
+
+ private URL buildURL(String address) {
+ URL url = null;
+ try {
+ url = new URL(address);
+ } catch (MalformedURLException e) {}
+ return url;
+ }
+
+ public void testIsWPCOMURL1() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURL(wpcomAddress1)));
+ }
+
+ public void testIsWPCOMURL2() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURL(wpcomAddress2)));
+ }
+
+ public void testIsWPCOMURL3() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURL(wpcomAddress3)));
+ }
+
+ public void testIsWPCOMURL4() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURL(wpcomAddress4)));
+ }
+
+ public void testIsWPCOMURL5() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURL(wpcomAddress5)));
+ }
+
+ public void testIsWPCOMURL6() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURL(wpcomAddress6)));
+ }
+
+
+ private URI buildURI(String address) {
+ URI uri = null;
+ try {
+ uri = new URI(address);
+ } catch (URISyntaxException e) {}
+ return uri;
+ }
+
+ public void testIsWPCOMURI1() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURI(wpcomAddress1)));
+ }
+
+ public void testIsWPCOMURI2() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURI(wpcomAddress2)));
+ }
+
+ public void testIsWPCOMURI3() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURI(wpcomAddress3)));
+ }
+
+ public void testIsWPCOMURI4() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURI(wpcomAddress4)));
+ }
+
+ public void testIsWPCOMURI5() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURI(wpcomAddress5)));
+ }
+
+ public void testIsWPCOMURI6() {
+ assertTrue(WPUrlUtils.isWordPressCom(buildURI(wpcomAddress6)));
+ }
+
+ public void testIsNOTWPCOM1() {
+ assertFalse(WPUrlUtils.isWordPressCom(notWpcomAddress1));
+ }
+
+ public void testIsNOTWPCOM2() {
+ assertFalse(WPUrlUtils.isWordPressCom(notWpcomAddress2));
+ }
+
+ public void testIsNOTWPCOM3() {
+ assertFalse(WPUrlUtils.isWordPressCom(buildURL(notWpcomAddress1)));
+ }
+
+ public void testIsNOTWPCOM4() {
+ assertFalse(WPUrlUtils.isWordPressCom(buildURL(notWpcomAddress2)));
+ }
+
+ public void testIsNOTWPCOM5() {
+ assertFalse(WPUrlUtils.isWordPressCom(buildURI(notWpcomAddress1)));
+ }
+
+ public void testIsNOTWPCOM6() {
+ assertFalse(WPUrlUtils.isWordPressCom(buildURI(notWpcomAddress2)));
+ }
+
+ public void testIsNOTWPCOM7() {
+ assertFalse(WPUrlUtils.isWordPressCom(notWpcomAddress3));
+ }
+
+ public void testIsNOTWPCOM8() {
+ assertFalse(WPUrlUtils.isWordPressCom(buildURL(notWpcomAddress3)));
+ }
+
+ public void testIsNOTWPCOM9() {
+ assertFalse(WPUrlUtils.isWordPressCom(buildURI(notWpcomAddress3)));
+ }
+
+} \ No newline at end of file
diff --git a/WordPress/src/androidTest/monkeys/README.md b/WordPress/src/androidTest/monkeys/README.md
new file mode 100644
index 000000000..82fbc47d8
--- /dev/null
+++ b/WordPress/src/androidTest/monkeys/README.md
@@ -0,0 +1,36 @@
+# Tool `playstore-screenshots.py`
+
+This tool helps you take screenshots for the Play Store. It uses the [AndroidViewClient](https://github.com/dtmilano/AndroidViewClient) python library to control and send commands to emulators or devices. It connects to a real blog and change the emulator or device language to take localized screenshots.
+
+## Prerequisites
+
+* your devices or emulators must be connected to the Internet and rooted.
+* `adb` binary must be in your `PATH` when you run the tool.
+
+## Setup
+
+Install dependencies: Python 2.x and easy_install, then you have to install AndroidViewClient
+
+ $ easy_install --upgrade androidviewclient
+
+Then edit the `settings.py` file. Copy the example file and edit it. Change the username / password, languages and sample text.
+
+ $ cp settings.py-example settings.py
+
+## Run
+
+ $ ./playstore-screenshots.py PACKAGE_NAME APK_FILE
+ $ # Example: ./playstore-screenshots.py org.wordpress.android WordPress-vanilla-release.apk
+ $ # Example: ./playstore-screenshots.py org.wordpress.android.beta WordPress-zbetagroup-release.apk
+
+## Example usage
+
+1. Unplug real devices from your computer
+1. Start 3 Genymotion emulators: a Nexus 5 emulated screen, a Nexus 7 emulated screen and a Nexus 9 emulated screen.
+1. Set the Nexus 7 and 9 in landscape mode.
+1. Run the script:
+
+ ./playstore-screenshots.py org.wordpress.android ../../../../WordPress/build/outputs/apk/WordPress-vanilla-release.apk
+
+1. You'll find the screenshot files (eg. `fr-drawer-opened-Google_Nexus_5___5_0_0___API_21___1080x1920.png`) in the same directory.
+
diff --git a/WordPress/src/androidTest/monkeys/create_wpcom_blog_from_settings.py b/WordPress/src/androidTest/monkeys/create_wpcom_blog_from_settings.py
new file mode 100644
index 000000000..b6f9ad44a
--- /dev/null
+++ b/WordPress/src/androidTest/monkeys/create_wpcom_blog_from_settings.py
@@ -0,0 +1,44 @@
+import re
+import sys
+import os
+import time
+
+sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
+from com.dtmilano.android.viewclient import ViewClient, View
+FLAG_ACTIVITY_NEW_TASK = 0x10000000
+
+def init_view_client():
+ package = 'org.wordpress.android'
+ #activity = '.ui.posts.PostsActivity'
+ activity = '.ui.accounts.NewBlogActivity'
+ device, serialno = ViewClient.connectToDeviceOrExit()
+ component = package + '/' + activity
+ device.startActivity(component=component, flags=FLAG_ACTIVITY_NEW_TASK)
+ ViewClient.sleep(2)
+ return ViewClient(device, serialno), device
+
+vc, device = init_view_client()
+ViewClient.sleep(1)
+
+def createABlog(name):
+ vc.dump(0.1)
+ settingsButton = vc.findViewWithText('Create a WordPress.com blog')
+ while settingsButton == None:
+ device.press('KEYCODE_DPAD_DOWN')
+ device.press('KEYCODE_DPAD_DOWN')
+ device.press('KEYCODE_DPAD_DOWN')
+ device.press('KEYCODE_DPAD_DOWN')
+ vc.dump(0.1)
+ settingsButton = vc.findViewWithText('Create a WordPress.com blog')
+ settingsButton.touch()
+ vc.dump(0.5)
+ device.type(name)
+ time.sleep(1)
+ device.press('KEYCODE_DPAD_DOWN')
+ device.press('KEYCODE_DPAD_DOWN')
+ device.press('KEYCODE_DPAD_CENTER')
+ time.sleep(30)
+
+for i in xrange(90, 1001):
+ createABlog("taliwuttalot" + str(i))
+ time.sleep(2)
diff --git a/WordPress/src/androidTest/monkeys/customizable_monkey.py b/WordPress/src/androidTest/monkeys/customizable_monkey.py
new file mode 100644
index 000000000..45a80ed83
--- /dev/null
+++ b/WordPress/src/androidTest/monkeys/customizable_monkey.py
@@ -0,0 +1,44 @@
+import re
+import sys
+import os
+import time
+import random
+import shlex
+import subprocess
+
+sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
+from com.dtmilano.android.viewclient import ViewClient, View
+FLAG_ACTIVITY_NEW_TASK = 0x10000000
+
+
+class CMonkey:
+ def __init__(self):
+ self.package = 'org.wordpress.android'
+ self.activity = '.ui.themes.ThemeBrowserActivity'
+ self.component = self.package + '/' + self.activity
+ self.init_device()
+
+ def init_device(self):
+ self.device, self.serialno = ViewClient.connectToDeviceOrExit()
+ self.vc = ViewClient(self.device, self.serialno)
+
+ def start_activity(self):
+ self.device.startActivity(component=self.component,
+ flags=FLAG_ACTIVITY_NEW_TASK)
+
+ def random_tap(self):
+ x, y = random.randint(0, 2000), random.randint(0, 2000)
+ self.device.touch(x, y)
+
+ def test_comments(self):
+ for i in range(20):
+ self.random_tap()
+
+def test():
+ cm = CMonkey()
+ for i in range(1000):
+ cm.start_activity()
+ args = shlex.split("adb shell monkey -p org.wordpress.android 500")
+ p = subprocess.Popen(args)
+
+test() \ No newline at end of file
diff --git a/WordPress/src/androidTest/monkeys/playstore-screenshots.py b/WordPress/src/androidTest/monkeys/playstore-screenshots.py
new file mode 100755
index 000000000..68ed7d4a7
--- /dev/null
+++ b/WordPress/src/androidTest/monkeys/playstore-screenshots.py
@@ -0,0 +1,202 @@
+#! /usr/bin/env python
+
+import sys
+import os
+import time
+import settings
+from subprocess import Popen, PIPE
+from com.dtmilano.android.viewclient import ViewClient
+
+# App actions
+
+def action_login(device, serialno):
+ print("login")
+ device.type(settings.username)
+ device.press('KEYCODE_DPAD_DOWN')
+ device.type(settings.password)
+ device.press('KEYCODE_ENTER')
+ # time to login
+ time.sleep(10)
+ # lose focus
+ device.press('KEYCODE_DPAD_DOWN')
+ time.sleep(1)
+
+def action_open_my_sites(device, serialno):
+ print("open my sites")
+ device.press('KEYCODE_TAB')
+ for i in range(5):
+ device.press('KEYCODE_DPAD_LEFT')
+ # Wait for gravatars to load
+ time.sleep(2)
+
+def action_open_reader_freshlypressed(device, serialno):
+ print("open reader")
+ # Open the reader
+ for i in range(5):
+ device.press('KEYCODE_DPAD_LEFT')
+ device.press('KEYCODE_DPAD_RIGHT')
+ device.press('KEYCODE_ENTER')
+ # Wait for the reader to load articles / pictures
+ time.sleep(5)
+
+def action_open_notifications(device, serialno):
+ print("open notifications tab")
+ # Open the reader
+ for i in range(5):
+ device.press('KEYCODE_DPAD_LEFT')
+ for i in range(4):
+ device.press('KEYCODE_DPAD_RIGHT')
+ device.press('KEYCODE_ENTER')
+ time.sleep(5)
+
+def action_open_me(device, serialno):
+ print("open me tab")
+ # Open the reader
+ for i in range(5):
+ device.press('KEYCODE_DPAD_LEFT')
+ for i in range(2):
+ device.press('KEYCODE_DPAD_RIGHT')
+ device.press('KEYCODE_ENTER')
+ time.sleep(5)
+
+def action_open_editor_and_type_text(device, serialno):
+ print("open editor")
+ # Open My Sites
+ for i in range(5):
+ device.press('KEYCODE_DPAD_LEFT')
+
+ viewclient = ViewClient(device, serialno)
+ viewclient.dump()
+ view = viewclient.findViewById("org.wordpress.android:id/fab_button")
+ view.touch()
+ time.sleep(2)
+
+ viewclient.dump()
+ view = viewclient.findViewById("org.wordpress.android:id/post_content")
+
+ # Type a sample text (spaces can't be entered via device.type())
+ view.type(settings.example_post_content)
+ time.sleep(2)
+
+def action_open_stats(device, serialno):
+ print("open stats tab")
+ device.press('KEYCODE_TAB')
+ for i in range(5):
+ device.press('KEYCODE_DPAD_LEFT')
+ viewclient = ViewClient(device, serialno)
+ viewclient.dump()
+ view = viewclient.findViewById("org.wordpress.android:id/row_stats")
+ view.touch()
+ time.sleep(5)
+
+# Utilities
+
+def lose_focus(serialno):
+ # tap point 0,0 to lose focus
+ _adb_shell(serialno, " input tap 0 0")
+ time.sleep(1)
+
+def take_screenshot(serialno, filename):
+ os.popen("adb -s '%s' shell /system/bin/screencap -p /sdcard/screenshot.png" % (serialno))
+ os.popen("adb -s '%s' pull /sdcard/screenshot.png '%s'" % (serialno, filename))
+
+def launch_activity(device, package, activity):
+ component = package + "/" + activity
+ FLAG_ACTIVITY_NEW_TASK = 0x10000000
+ device.startActivity(component=component, flags=FLAG_ACTIVITY_NEW_TASK)
+ time.sleep(2)
+
+def _adb_shell(serialno, command):
+ print("adb -s '%s' shell \"%s\"" % (serialno, command))
+ os.popen("adb -s '%s' shell \"%s\"" % (serialno, command))
+
+def change_lang_settings(serialno, lang):
+ adb_command = "su -c 'setprop persist.sys.language %s; setprop persist.sys.country %s; stop; start'"
+ _adb_shell(serialno, adb_command % (lang, lang))
+ # time to reload
+ time.sleep(15)
+ unlock_screen(serialno)
+
+def unlock_screen(serialno):
+ _adb_shell(serialno, "input keyevent 82")
+ time.sleep(1)
+
+def reinstall_apk(serialno, packagename, apk):
+ os.popen("adb -s '%s' uninstall '%s'" % (serialno, packagename))
+ os.popen("adb -s '%s' install '%s'" % (serialno, apk))
+
+def back(device):
+ device.press('KEYCODE_BACK')
+
+# Main scenario + screenshots
+
+def run_tests_for_device_and_lang(device, serialno, filename, lang, packagename, apk):
+ # Install the apk`
+ reinstall_apk(serialno, packagename, apk)
+
+ # Change language setting
+ change_lang_settings(serialno, lang)
+
+ # Launch the app
+ launch_activity(device, packagename, "org.wordpress.android.ui.WPLaunchActivity")
+ take_screenshot(serialno, lang + "-99-login-screen-" + filename)
+
+ # Login into the app
+ action_login(device, serialno)
+
+ # Action!
+ action_open_my_sites(device, serialno)
+ take_screenshot(serialno, lang + "-1-my-sites-" + filename)
+ action_open_reader_freshlypressed(device, serialno)
+ take_screenshot(serialno, lang + "-2-reader-discover-" + filename)
+ action_open_me(device, serialno)
+ take_screenshot(serialno, lang + "-3-me-tab-" + filename)
+ action_open_notifications(device, serialno)
+ take_screenshot(serialno, lang + "-4-notifications-" + filename)
+ action_open_stats(device, serialno)
+ take_screenshot(serialno, lang + "-5-stats-" + filename)
+ back(device)
+ action_open_editor_and_type_text(device, serialno)
+ take_screenshot(serialno, lang + "-6-editor-" + filename)
+ # Close virtual keyboard
+ back(device)
+ # Close the editor
+ back(device)
+
+def list_devices():
+ devices = []
+ process = Popen("adb devices -l", stdout=PIPE, shell=True)
+ for line in iter(process.stdout.readline, ''):
+ split = line.split()
+ if len(split) <= 1 or split[0] == "List":
+ continue
+ devices.append({"name": split[3].replace("model:", ""), "serialno": split[0]})
+ process.communicate()
+ return devices
+
+def run_tests_on_device(packagename, apk, serialno, name, lang):
+ device, serialno = ViewClient.connectToDeviceOrExit(verbose=False, serialno=serialno)
+ filename = name + ".png"
+ run_tests_for_device_and_lang(device, serialno, filename, lang, packagename, apk)
+
+def run_tests_on_all_devices(packagename, apk, lang):
+ devices = list_devices()
+ if not devices:
+ print("No device found")
+ return
+ for device in devices:
+ print("Running on %s - language: %s" % (device, lang))
+ run_tests_on_device(packagename, apk, device["serialno"], device["name"], lang)
+
+def run_tests_on_all_devices_for_all_languages(packagename, apk):
+ for lang in settings.languages:
+ run_tests_on_all_devices(packagename, apk, lang)
+
+def main():
+ if len(sys.argv) < 3:
+ sys.exit("usage: %s packagename apk" % sys.argv[0])
+ packagename = sys.argv.pop(1)
+ apk = sys.argv.pop(1)
+ run_tests_on_all_devices_for_all_languages(packagename, apk)
+
+main()
diff --git a/WordPress/src/androidTest/monkeys/settings.py-example b/WordPress/src/androidTest/monkeys/settings.py-example
new file mode 100644
index 000000000..5cbcf761f
--- /dev/null
+++ b/WordPress/src/androidTest/monkeys/settings.py-example
@@ -0,0 +1,4 @@
+username = "wordpress"
+password = "wordpress"
+languages = ("en", "fr")
+example_post_content = "Content"
diff --git a/WordPress/src/androidTest/proguard-project.txt b/WordPress/src/androidTest/proguard-project.txt
new file mode 100644
index 000000000..f2fe1559a
--- /dev/null
+++ b/WordPress/src/androidTest/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/WordPress/src/androidTest/readme.md b/WordPress/src/androidTest/readme.md
new file mode 100644
index 000000000..7d72476f7
--- /dev/null
+++ b/WordPress/src/androidTest/readme.md
@@ -0,0 +1,9 @@
+# WordPress Android - Test Project #
+
+## Run tests ##
+
+ $ ./gradlew cIT
+
+## Dump a test database ##
+
+ $ adb shell su -c "echo .dump | sqlite3 /data/data/org.wordpress.android/databases/wordpress"
diff --git a/WordPress/src/androidTest/tools/dump-device-db.sh b/WordPress/src/androidTest/tools/dump-device-db.sh
new file mode 100755
index 000000000..27d2ce2e3
--- /dev/null
+++ b/WordPress/src/androidTest/tools/dump-device-db.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+adb shell su -c "echo .dump | sqlite3 /data/data/org.wordpress.android/databases/wordpress"