Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.

Commit 6fdba28

Browse files
authored
Add unit tests for XMLRPC endpoint discovery (#672)
2 parents 10f03c5 + 18653c5 commit 6fdba28

File tree

5 files changed

+418
-0
lines changed

5 files changed

+418
-0
lines changed

WordPressKit.xcodeproj/project.pbxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@
139139
46ABD0E0262EED3D00C7FF24 /* WordPressOrgXMLRPCValidatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46ABD0DF262EED3D00C7FF24 /* WordPressOrgXMLRPCValidatorTests.swift */; };
140140
46ABD0E6262EEDAB00C7FF24 /* FakeInfoDictionaryObjectProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46ABD0E5262EEDAB00C7FF24 /* FakeInfoDictionaryObjectProvider.swift */; };
141141
46ABD0EA262EEE0400C7FF24 /* AppTransportSecuritySettingsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46ABD0E9262EEE0400C7FF24 /* AppTransportSecuritySettingsTests.swift */; };
142+
4A05E7A62B34142200C25E3B /* xmlrpc-response-invalid.html in Resources */ = {isa = PBXBuildFile; fileRef = 4A05E7A52B34142200C25E3B /* xmlrpc-response-invalid.html */; };
143+
4A05E7A82B34EAF400C25E3B /* xmlrpc-response-mobile-plugin-redirect.html in Resources */ = {isa = PBXBuildFile; fileRef = 4A05E7A72B34EAF400C25E3B /* xmlrpc-response-mobile-plugin-redirect.html */; };
144+
4A05E7AA2B34FC4300C25E3B /* xmlrpc-response-list-methods.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4A05E7A92B34FC4300C25E3B /* xmlrpc-response-list-methods.xml */; };
142145
4A05E7AC2B35048A00C25E3B /* RSDParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A05E7AB2B35048A00C25E3B /* RSDParserTests.swift */; };
143146
4A11239A2B19269A004690CF /* WordPressAPIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A1123992B19269A004690CF /* WordPressAPIError.swift */; };
144147
4A11239C2B1926B7004690CF /* HTTPRequestBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A11239B2B1926B7004690CF /* HTTPRequestBuilder.swift */; };
@@ -841,6 +844,9 @@
841844
46ABD0DF262EED3D00C7FF24 /* WordPressOrgXMLRPCValidatorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WordPressOrgXMLRPCValidatorTests.swift; sourceTree = "<group>"; };
842845
46ABD0E5262EEDAB00C7FF24 /* FakeInfoDictionaryObjectProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FakeInfoDictionaryObjectProvider.swift; sourceTree = "<group>"; };
843846
46ABD0E9262EEE0400C7FF24 /* AppTransportSecuritySettingsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppTransportSecuritySettingsTests.swift; sourceTree = "<group>"; };
847+
4A05E7A52B34142200C25E3B /* xmlrpc-response-invalid.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "xmlrpc-response-invalid.html"; sourceTree = "<group>"; };
848+
4A05E7A72B34EAF400C25E3B /* xmlrpc-response-mobile-plugin-redirect.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "xmlrpc-response-mobile-plugin-redirect.html"; sourceTree = "<group>"; };
849+
4A05E7A92B34FC4300C25E3B /* xmlrpc-response-list-methods.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "xmlrpc-response-list-methods.xml"; sourceTree = "<group>"; };
844850
4A05E7AB2B35048A00C25E3B /* RSDParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RSDParserTests.swift; sourceTree = "<group>"; };
845851
4A1123992B19269A004690CF /* WordPressAPIError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WordPressAPIError.swift; sourceTree = "<group>"; };
846852
4A11239B2B1926B7004690CF /* HTTPRequestBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HTTPRequestBuilder.swift; sourceTree = "<group>"; };
@@ -2410,6 +2416,9 @@
24102416
740B23DC1F17FB4200067A2A /* xmlrpc-metaweblog-newpost-invalid-posttype-failure.xml */,
24112417
740B23DD1F17FB4200067A2A /* xmlrpc-metaweblog-newpost-success.xml */,
24122418
74B335E91F06F76B0053A184 /* xmlrpc-response-getpost.xml */,
2419+
4A05E7A92B34FC4300C25E3B /* xmlrpc-response-list-methods.xml */,
2420+
4A05E7A52B34142200C25E3B /* xmlrpc-response-invalid.html */,
2421+
4A05E7A72B34EAF400C25E3B /* xmlrpc-response-mobile-plugin-redirect.html */,
24132422
93F50A451F227F3600B5BEBA /* xmlrpc-response-getprofile.xml */,
24142423
93F50A461F227F3600B5BEBA /* xmlrpc-response-valid-but-unexpected-dictionary.xml */,
24152424
98EA910426BC96B8004098A1 /* xmlrpc-site-comments-success.xml */,
@@ -3007,6 +3016,7 @@
30073016
93BD27581EE73442002BB00B /* auth-send-login-email-success.json in Resources */,
30083017
74B335E01F06F6290053A184 /* WordPressComRestApiFailInvalidInput.json in Resources */,
30093018
F3FF8A27279C967200E5C90F /* site-email-followers-get-failure.json in Resources */,
3019+
4A05E7A82B34EAF400C25E3B /* xmlrpc-response-mobile-plugin-redirect.html in Resources */,
30103020
FE20A6A6282BC68D0025E975 /* blogging-prompts-settings-fetch-success.json in Resources */,
30113021
FFE247C320C9D749002DF3A2 /* reader-site-search-blog-id-fallback.json in Resources */,
30123022
C738CAF3286226D6001BE107 /* qrlogin-validate-400.json in Resources */,
@@ -3072,6 +3082,7 @@
30723082
826016FC1F9FAF6300533B6C /* activity-log-success-2.json in Resources */,
30733083
C738CAF928622BB1001BE107 /* qrlogin-authenticate-failed-400.json in Resources */,
30743084
74D67F1E1F15C3240010C5ED /* people-send-invitation-failure.json in Resources */,
3085+
4A05E7A62B34142200C25E3B /* xmlrpc-response-invalid.html in Resources */,
30753086
7403A3001EF06FEB00DED7DC /* me-settings-success.json in Resources */,
30763087
F4B0F47C2ACB4B74003ABC61 /* get-all-domains-response.json in Resources */,
30773088
FEE48EF82A4B3E43008A48E0 /* sites-site-active-features.json in Resources */,
@@ -3139,6 +3150,7 @@
31393150
BA3F139424A0B783006367A3 /* plugin-modify-malformed-response.json in Resources */,
31403151
74C473CB1EF33696009918F2 /* site-active-purchases-auth-failure.json in Resources */,
31413152
FFE247B520C891E6002DF3A2 /* WordPressComAuthenticateWithIDTokenExistingUserNeedsConnection.json in Resources */,
3153+
4A05E7AA2B34FC4300C25E3B /* xmlrpc-response-list-methods.xml in Resources */,
31423154
BA8EA71B24A07B2200D5CC9F /* plugin-service-remote-auth-failure.json in Resources */,
31433155
FA79F1872591730D00D235A9 /* backup-get-backup-status-complete-success.json in Resources */,
31443156
74D67F381F15C3740010C5ED /* site-viewers-delete-auth-failure.json in Resources */,
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>website</title>
5+
</head>
6+
<body>👋</body>
7+
</html>
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<methodResponse>
3+
<params>
4+
<param>
5+
<value>
6+
<array><data>
7+
<value><string>system.multicall</string></value>
8+
<value><string>system.listMethods</string></value>
9+
<value><string>system.getCapabilities</string></value>
10+
<value><string>demo.addTwoNumbers</string></value>
11+
<value><string>demo.sayHello</string></value>
12+
<value><string>pingback.extensions.getPingbacks</string></value>
13+
<value><string>pingback.ping</string></value>
14+
<value><string>mt.publishPost</string></value>
15+
<value><string>mt.getTrackbackPings</string></value>
16+
<value><string>mt.supportedTextFilters</string></value>
17+
<value><string>mt.supportedMethods</string></value>
18+
<value><string>mt.setPostCategories</string></value>
19+
<value><string>mt.getPostCategories</string></value>
20+
<value><string>mt.getRecentPostTitles</string></value>
21+
<value><string>mt.getCategoryList</string></value>
22+
<value><string>metaWeblog.getUsersBlogs</string></value>
23+
<value><string>metaWeblog.deletePost</string></value>
24+
<value><string>metaWeblog.newMediaObject</string></value>
25+
<value><string>metaWeblog.getCategories</string></value>
26+
<value><string>metaWeblog.getRecentPosts</string></value>
27+
<value><string>metaWeblog.getPost</string></value>
28+
<value><string>metaWeblog.editPost</string></value>
29+
<value><string>metaWeblog.newPost</string></value>
30+
<value><string>blogger.deletePost</string></value>
31+
<value><string>blogger.editPost</string></value>
32+
<value><string>blogger.newPost</string></value>
33+
<value><string>blogger.getRecentPosts</string></value>
34+
<value><string>blogger.getPost</string></value>
35+
<value><string>blogger.getUserInfo</string></value>
36+
<value><string>blogger.getUsersBlogs</string></value>
37+
<value><string>wp.restoreRevision</string></value>
38+
<value><string>wp.getRevisions</string></value>
39+
<value><string>wp.getPostTypes</string></value>
40+
<value><string>wp.getPostType</string></value>
41+
<value><string>wp.getPostFormats</string></value>
42+
<value><string>wp.getMediaLibrary</string></value>
43+
<value><string>wp.getMediaItem</string></value>
44+
<value><string>wp.getCommentStatusList</string></value>
45+
<value><string>wp.newComment</string></value>
46+
<value><string>wp.editComment</string></value>
47+
<value><string>wp.deleteComment</string></value>
48+
<value><string>wp.getComments</string></value>
49+
<value><string>wp.getComment</string></value>
50+
<value><string>wp.setOptions</string></value>
51+
<value><string>wp.getOptions</string></value>
52+
<value><string>wp.getPageTemplates</string></value>
53+
<value><string>wp.getPageStatusList</string></value>
54+
<value><string>wp.getPostStatusList</string></value>
55+
<value><string>wp.getCommentCount</string></value>
56+
<value><string>wp.deleteFile</string></value>
57+
<value><string>wp.uploadFile</string></value>
58+
<value><string>wp.suggestCategories</string></value>
59+
<value><string>wp.deleteCategory</string></value>
60+
<value><string>wp.newCategory</string></value>
61+
<value><string>wp.getTags</string></value>
62+
<value><string>wp.getCategories</string></value>
63+
<value><string>wp.getAuthors</string></value>
64+
<value><string>wp.getPageList</string></value>
65+
<value><string>wp.editPage</string></value>
66+
<value><string>wp.deletePage</string></value>
67+
<value><string>wp.newPage</string></value>
68+
<value><string>wp.getPages</string></value>
69+
<value><string>wp.getPage</string></value>
70+
<value><string>wp.editProfile</string></value>
71+
<value><string>wp.getProfile</string></value>
72+
<value><string>wp.getUsers</string></value>
73+
<value><string>wp.getUser</string></value>
74+
<value><string>wp.getTaxonomies</string></value>
75+
<value><string>wp.getTaxonomy</string></value>
76+
<value><string>wp.getTerms</string></value>
77+
<value><string>wp.getTerm</string></value>
78+
<value><string>wp.deleteTerm</string></value>
79+
<value><string>wp.editTerm</string></value>
80+
<value><string>wp.newTerm</string></value>
81+
<value><string>wp.getPosts</string></value>
82+
<value><string>wp.getPost</string></value>
83+
<value><string>wp.deletePost</string></value>
84+
<value><string>wp.editPost</string></value>
85+
<value><string>wp.newPost</string></value>
86+
<value><string>wp.getUsersBlogs</string></value>
87+
</data></array>
88+
</value>
89+
</param>
90+
</params>
91+
</methodResponse>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta name="GENERATOR" content="www.dudamobile.com">
5+
<title>website</title>
6+
</head>
7+
<body>👋</body>
8+
</html>

0 commit comments

Comments
 (0)