Skip to content

Commit e1ab748

Browse files
authored
Merge pull request #397 from zapcannon87/develop
fix: The result of response should be .failure when Forbidden writing by object's ACL
2 parents 960c011 + 6df7651 commit e1ab748

File tree

8 files changed

+63
-108
lines changed

8 files changed

+63
-108
lines changed

LeanCloudTests/BaseTestCase.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,15 @@ class BaseTestCase: XCTestCase {
5757
override class func setUp() {
5858
super.setUp()
5959
let app = BaseTestCase.cnApp
60+
// let app = BaseTestCase.ceApp
61+
// let app = BaseTestCase.usApp
6062
TestObject.register()
6163
LCApplication.logLevel = .all
6264
try! LCApplication.default.set(
6365
id: app.id,
6466
key: app.key,
6567
serverURL: app.serverURL.isEmpty ? nil : app.serverURL,
68+
// serverURL: app.testableServerURL,
6669
configuration: BaseTestCase.config)
6770
}
6871

LeanCloudTests/IMMessageTestCase.swift

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -495,18 +495,27 @@ class IMMessageTestCase: RTMBaseTestCase {
495495
XCTFail()
496496
return
497497
}
498+
RTMConnectionManager.default.imProtobuf1Registry.removeAll()
499+
RTMConnectionManager.default.imProtobuf3Registry.removeAll()
500+
guard let client4 = newOpenedClient(clientIDSuffix: "4") else {
501+
XCTFail()
502+
return
503+
}
498504

499505
let delegator1 = IMClientTestCase.Delegator()
500506
client1.delegate = delegator1
501507
let delegator2 = IMClientTestCase.Delegator()
502508
client2.delegate = delegator2
503509
let delegator3 = IMClientTestCase.Delegator()
504510
client3.delegate = delegator3
511+
let delegator4 = IMClientTestCase.Delegator()
512+
client4.delegate = delegator4
505513
var chatRoom1: IMChatRoom?
506514
var chatRoom2: IMChatRoom?
507515
var chatRoom3: IMChatRoom?
516+
var chatRoom4: IMChatRoom?
508517

509-
expecting(count: 5) { (exp) in
518+
expecting(count: 7) { (exp) in
510519
try? client1.createChatRoom(completion: { (result) in
511520
XCTAssertTrue(result.isSuccess)
512521
XCTAssertNil(result.error)
@@ -535,11 +544,24 @@ class IMMessageTestCase: RTMBaseTestCase {
535544
exp.fulfill()
536545
})
537546
}
547+
try? client4.conversationQuery.getConversation(by: ID) { result in
548+
XCTAssertTrue(result.isSuccess)
549+
XCTAssertNil(result.error)
550+
chatRoom4 = result.value as? IMChatRoom
551+
exp.fulfill()
552+
try? chatRoom4?.join(completion: { (result) in
553+
XCTAssertTrue(result.isSuccess)
554+
XCTAssertNil(result.error)
555+
exp.fulfill()
556+
})
557+
}
538558
}
539559
})
540560
}
541561

542-
expecting(count: 6) { (exp) in
562+
delay()
563+
564+
expecting(count: 8) { (exp) in
543565
delegator1.messageEvent = { client, conv, event in
544566
switch event {
545567
case .received(message: _):
@@ -564,6 +586,14 @@ class IMMessageTestCase: RTMBaseTestCase {
564586
break
565587
}
566588
}
589+
delegator4.messageEvent = { client, conv, event in
590+
switch event {
591+
case .received(message: _):
592+
exp.fulfill()
593+
default:
594+
break
595+
}
596+
}
567597
try? chatRoom1?.send(message: IMTextMessage(text: "1"), priority: .high, completion: { (result) in
568598
XCTAssertTrue(result.isSuccess)
569599
XCTAssertNil(result.error)
@@ -579,13 +609,16 @@ class IMMessageTestCase: RTMBaseTestCase {
579609
delegator1.reset()
580610
delegator2.reset()
581611
delegator3.reset()
612+
delegator4.reset()
582613

583614
XCTAssertNil(chatRoom1?.lastMessage)
584615
XCTAssertNil(chatRoom2?.lastMessage)
585616
XCTAssertNil(chatRoom3?.lastMessage)
617+
XCTAssertNil(chatRoom4?.lastMessage)
586618
XCTAssertTrue((chatRoom1?.members ?? []).isEmpty)
587619
XCTAssertTrue((chatRoom2?.members ?? []).isEmpty)
588620
XCTAssertTrue((chatRoom3?.members ?? []).isEmpty)
621+
XCTAssertTrue((chatRoom4?.members ?? []).isEmpty)
589622
}
590623

591624
func testReceiveMessageFromServiceConversation() {

LeanCloudTests/LCEngineTestCase.swift

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,9 @@ import XCTest
1111

1212
class LCEngineTestCase: BaseTestCase {
1313

14-
func testFunction() {
15-
let result = LCEngine.run("test")
16-
XCTAssertEqual(result.value as? String, "test")
17-
XCTAssertNil(result.error)
18-
}
19-
2014
func testError() {
2115
let result = LCEngine.run("error")
2216
XCTAssertNil(result.value)
2317
XCTAssertNotNil(LCEngine.run("error").error)
2418
}
25-
26-
func testGetOnOffStatus() {
27-
let result = LCEngine.run(
28-
"getOnOffStatus",
29-
parameters: ["peerIds":
30-
["FCA6CAA7E5A14748BA25DE46EC1B66C8",
31-
UUID().uuidString]])
32-
XCTAssertEqual((result.value as? [Any])?.count, 2)
33-
XCTAssertNil(result.error)
34-
}
3519
}

LeanCloudTests/LCFileTestCase.swift

Lines changed: 0 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -246,77 +246,3 @@ class LCFileTestCase: BaseTestCase {
246246
}
247247
}
248248
}
249-
250-
extension LCFileTestCase {
251-
252-
static let usOldTestApp = try! LCApplication(
253-
id: "kknqydxqd9wdq4cboy1dvvug5ha0ce3i2mrerrdrmr6pla1p",
254-
key: "fate582pwsfh97s9o99nw91a152i7ndm9tsy866e6wpezth4",
255-
serverURL: "https://beta-us.leancloud.cn"
256-
)
257-
258-
func testSaveUSOldTestApp() {
259-
let fileURL = bundleResourceURL(name: "test", ext: "png")
260-
let application = LCFileTestCase.usOldTestApp
261-
262-
var file1: LCFile! = LCFile(
263-
application: application,
264-
payload: .fileURL(fileURL: fileURL))
265-
XCTAssertTrue(file1.save().isSuccess)
266-
XCTAssertNotNil(file1.mimeType)
267-
XCTAssertNotNil(file1.key)
268-
XCTAssertNotNil(file1.name)
269-
XCTAssertNotNil(file1.metaData?.size as? LCNumber)
270-
XCTAssertNotNil(file1.bucket)
271-
XCTAssertNotNil(file1.provider)
272-
XCTAssertNotNil(file1.url)
273-
XCTAssertNotNil(file1.objectId)
274-
XCTAssertNotNil(file1.createdAt)
275-
XCTAssertNotNil(file1.save().error)
276-
277-
var file2: LCFile! = LCFile(
278-
application: application,
279-
payload: .data(data: try! Data(contentsOf: fileURL)))
280-
file2.name = "image.png"
281-
XCTAssertTrue(file2.save().isSuccess)
282-
XCTAssertNotNil(file2.mimeType)
283-
XCTAssertNotNil(file2.key)
284-
XCTAssertNotNil(file2.name)
285-
XCTAssertNotNil(file2.metaData?.size as? LCNumber)
286-
XCTAssertNotNil(file2.bucket)
287-
XCTAssertNotNil(file2.provider)
288-
XCTAssertNotNil(file2.url)
289-
XCTAssertNotNil(file2.objectId)
290-
XCTAssertNotNil(file2.createdAt)
291-
XCTAssertNotNil(file2.save().error)
292-
293-
var file3: LCFile!
294-
if let file2url = file2.url {
295-
file3 = LCFile(
296-
application: application,
297-
url: file2url)
298-
XCTAssertTrue(file3.save().isSuccess)
299-
XCTAssertNotNil(file3.mimeType)
300-
XCTAssertNotNil(file3.name)
301-
XCTAssertEqual(file3.metaData?.__source as? LCString, LCString("external"))
302-
XCTAssertNotNil(file3.url)
303-
XCTAssertNotNil(file3.objectId)
304-
XCTAssertNotNil(file3.createdAt)
305-
XCTAssertNotNil(file3.save().error)
306-
} else {
307-
XCTFail()
308-
}
309-
310-
delay()
311-
312-
weak var wFile1 = file1
313-
weak var wFile2 = file2
314-
weak var wFile3 = file3
315-
file1 = nil
316-
file2 = nil
317-
file3 = nil
318-
XCTAssertNil(wFile1)
319-
XCTAssertNil(wFile2)
320-
XCTAssertNil(wFile3)
321-
}
322-
}

LeanCloudTests/LCSMSTestCase.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ import XCTest
1111

1212
class LCSMSTestCase: BaseTestCase {
1313

14-
// let mobilePhoneNumber = ""
15-
//
16-
// func testRequestVerificationCode() {
14+
let mobilePhoneNumber = ""
15+
16+
func testRequestVerificationCode() {
1717
// XCTAssertTrue(LCSMSClient.requestVerificationCode(
18-
// mobilePhoneNumber: self.mobilePhoneNumber,
19-
// timeToLive: 1)
20-
// .isSuccess)
21-
// }
22-
//
23-
// func testVerifyMobilePhoneNumber() {
18+
// mobilePhoneNumber: self.mobilePhoneNumber,
19+
// timeToLive: 1)
20+
// .isSuccess)
21+
}
22+
23+
func testVerifyMobilePhoneNumber() {
2424
// XCTAssertTrue(LCSMSClient.verifyMobilePhoneNumber(
25-
// self.mobilePhoneNumber,
26-
// verificationCode: "")
27-
// .isSuccess)
28-
// }
25+
// self.mobilePhoneNumber,
26+
// verificationCode: "")
27+
// .isSuccess)
28+
}
2929
}

LeanCloudTests/RTMBaseTestCase.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import XCTest
1010
@testable import LeanCloud
1111

1212
class RTMBaseTestCase: BaseTestCase {
13-
13+
// static let useTestableRTMURL = true
1414
static let useTestableRTMURL = false
1515
static let testableRTMURL = RTMBaseTestCase.useTestableRTMURL
1616
? URL(string: "wss://cn-n1-prod-k8s-cell-12.leancloud.cn")!

Sources/Foundation/ObjectUpdater.swift

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,16 @@ class ObjectUpdater {
235235
.post, "batch",
236236
parameters: ["requests": requests])
237237
{ response in
238-
completion(LCBooleanResult(response: response))
238+
if let data = response.data,
239+
let body = try? JSONSerialization.jsonObject(with: data) as? [[String: Any]],
240+
body.count == 1,
241+
let errorDictionary = body.first?["error"] as? [String: Any],
242+
let code = errorDictionary["code"] as? Int,
243+
let reason = errorDictionary["error"] as? String {
244+
completion(LCBooleanResult(error: LCError(code: code, reason: reason)))
245+
} else {
246+
completion(LCBooleanResult(response: response))
247+
}
239248
}
240249
}
241250
} catch {

Sources/RTM/IMClient.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ public class IMClient {
166166
.transientMessageACK,
167167
.keepNotification,
168168
.partialFailedMessage,
169-
.omitPeerID,
169+
// .omitPeerID,
170170
]
171171
}
172172

0 commit comments

Comments
 (0)