@@ -2,45 +2,108 @@ import Foundation
22import XCTest
33@testable import WordPressKit
44
5- class BlogServiceRemoteRESTTests_Jetpack : RemoteTestCase , RESTTestable {
6- let siteId = 12345
5+ class JetpackServiceRemoteTests : RemoteTestCase , RESTTestable {
76 let url = " http://www.wordpress.com "
87 let encodedURL = " http%3A%2F%2Fwww.wordpress.com "
98 let username = " username "
109 let password = " qwertyuiop "
1110
12- let jetpackRemoteSuccessMockFilename = " blog-service-jetpack-remote-success.json "
13- let jetpackRemoteFailureMockFilename = " blog-service-jetpack-remote-failure.json "
14-
15- let jetpackRemoteErrorUnknownMockFilename = " blog-service-jetpack-remote-error-unknown.json "
16- let jetpackRemoteErrorInvalidCredentialsMockFilename = " blog-service-jetpack-remote-error-invalid-credentials.json "
17- let jetpackRemoteErrorForbiddenMockFilename = " blog-service-jetpack-remote-error-forbidden.json "
18- let jetpackRemoteErrorInstallFailureMockFilename = " blog-service-jetpack-remote-error-install-failure.json "
19- let jetpackRemoteErrorInstallResponseMockFilename = " blog-service-jetpack-remote-error-install-response.json "
20- let jetpackRemoteErrorLoginFailureMockFilename = " blog-service-jetpack-remote-error-login-failure.json "
21- let jetpackRemoteErrorSiteIsJetpackMockFilename = " blog-service-jetpack-remote-error-site-is-jetpack.json "
22- let jetpackRemoteErrorActivationInstallMockFilename = " blog-service-jetpack-remote-error-activation-install.json "
23- let jetpackRemoteErrorActivationResponseMockFilename = " blog-service-jetpack-remote-error-activation-response.json "
24- let jetpackRemoteErrorActivationFailureMockFilename = " blog-service-jetpack-remote-error-activation-failure.json "
11+ let jetpackRemoteSuccessMockFilename = " jetpack-service-success.json "
12+ let jetpackRemoteFailureMockFilename = " jetpack-service-failure.json "
2513
26- var endpoint : String { return " jetpack-install/ \( encodedURL) / " }
14+ let jetpackRemoteErrorUnknownMockFilename = " jetpack-service-error-unknown.json "
15+ let jetpackRemoteErrorInvalidCredentialsMockFilename = " jetpack-service-error-invalid-credentials.json "
16+ let jetpackRemoteErrorForbiddenMockFilename = " jetpack-service-error-forbidden.json "
17+ let jetpackRemoteErrorInstallFailureMockFilename = " jetpack-service-error-install-failure.json "
18+ let jetpackRemoteErrorInstallResponseMockFilename = " jetpack-service-error-install-response.json "
19+ let jetpackRemoteErrorLoginFailureMockFilename = " jetpack-service-error-login-failure.json "
20+ let jetpackRemoteErrorSiteIsJetpackMockFilename = " jetpack-service-error-site-is-jetpack.json "
21+ let jetpackRemoteErrorActivationInstallMockFilename = " jetpack-service-error-activation-install.json "
22+ let jetpackRemoteErrorActivationResponseMockFilename = " jetpack-service-error-activation-response.json "
23+ let jetpackRemoteErrorActivationFailureMockFilename = " jetpack-service-error-activation-failure.json "
2724
28- var remote : BlogServiceRemoteREST !
25+ let jetpackRemoteCheckSiteSuccessMockFilename = " jetpack-service-check-site-success.json "
26+ let jetpackRemoteCheckSiteFailureMockFilename = " jetpack-service-check-site-success-no-jetpack.json "
27+ let jetpackRemoteCheckSiteDataFailureMockFilename = " jetpack-service-check-site-failure-data.json "
28+
29+ var endpoint : String { return " jetpack-install/ \( encodedURL) / " }
30+ var checkSiteEndpoint : String { return " connect/site-info " }
31+
32+ var remote : JetpackServiceRemote !
2933
3034 // MARK: - Overridden Methods
3135
3236 override func setUp( ) {
3337 super. setUp ( )
34-
35- remote = BlogServiceRemoteREST ( wordPressComRestApi: getRestApi ( ) , siteID : NSNumber ( value : siteId ) )
38+
39+ remote = JetpackServiceRemote ( wordPressComRestApi: getRestApi ( ) )
3640 }
3741
3842 override func tearDown( ) {
3943 super. tearDown ( )
4044
4145 remote = nil
4246 }
47+
48+ func testCheckSiteHasJetpackSuccess( ) {
49+ let expect = expectation ( description: " Check if the site has Jetpack success " )
50+
51+ stubRemoteResponse ( checkSiteEndpoint, filename: jetpackRemoteCheckSiteSuccessMockFilename, contentType: . ApplicationJSON, status: 200 )
52+ remote. checkSiteHasJetpack ( URL ( string: url) !, success: { ( success) in
53+ XCTAssertTrue ( success, " Success should be true " )
54+ expect. fulfill ( )
55+ } ) { ( error) in
56+ XCTFail ( " This callback shouldn't get called " )
57+ expect. fulfill ( )
58+ }
59+
60+ waitForExpectations ( timeout: timeout, handler: nil )
61+ }
62+
63+ func testCheckSiteHasJetpackSuccessNoJetpack( ) {
64+ let expect = expectation ( description: " Check if the site has Jetpack failure " )
65+
66+ stubRemoteResponse ( checkSiteEndpoint, filename: jetpackRemoteCheckSiteFailureMockFilename, contentType: . ApplicationJSON, status: 200 )
67+ remote. checkSiteHasJetpack ( URL ( string: url) !, success: { ( success) in
68+ XCTAssertFalse ( success, " Success should be false " )
69+ expect. fulfill ( )
70+ } ) { ( error) in
71+ XCTFail ( " This callback shouldn't get called " )
72+ expect. fulfill ( )
73+ }
74+ waitForExpectations ( timeout: timeout, handler: nil )
75+ }
76+
77+ func testCheckSiteHasJetpackFailureNetwork( ) {
78+ let expect = expectation ( description: " Check if the site has Jetpack network failure " )
79+
80+ stubRemoteResponse ( checkSiteEndpoint, filename: jetpackRemoteCheckSiteSuccessMockFilename, contentType: . ApplicationJSON, status: 400 )
81+ remote. checkSiteHasJetpack ( URL ( string: url) !, success: { ( success) in
82+ XCTFail ( " This callback shouldn't get called " )
83+ expect. fulfill ( )
84+ } ) { ( error) in
85+ XCTAssertNotNil ( error, " Error shouldn't be nil " )
86+ expect. fulfill ( )
87+ }
88+
89+ waitForExpectations ( timeout: timeout, handler: nil )
90+ }
4391
92+ func testCheckSiteHasJetpackFailureData( ) {
93+ let expect = expectation ( description: " Check if the site has Jetpack data failure " )
94+
95+ stubRemoteResponse ( checkSiteEndpoint, filename: jetpackRemoteCheckSiteDataFailureMockFilename, contentType: . ApplicationJSON, status: 200 )
96+ remote. checkSiteHasJetpack ( URL ( string: url) !, success: { ( success) in
97+ XCTFail ( " This callback shouldn't get called " )
98+ expect. fulfill ( )
99+ } ) { ( error) in
100+ XCTAssertNotNil ( error, " Error shouldn't be nil " )
101+ expect. fulfill ( )
102+ }
103+
104+ waitForExpectations ( timeout: timeout, handler: nil )
105+ }
106+
44107 func testJetpackRemoteInstallationSuccess( ) {
45108 let expect = expectation ( description: " Install Jetpack success " )
46109
@@ -100,7 +163,7 @@ class BlogServiceRemoteRESTTests_Jetpack: RemoteTestCase, RESTTestable {
100163 XCTAssertEqual ( error, . forbidden)
101164 expect. fulfill ( )
102165 }
103-
166+
104167 waitForExpectations ( timeout: timeout, handler: nil )
105168 }
106169
0 commit comments