81 lines
2.8 KiB
Swift
81 lines
2.8 KiB
Swift
// StringTests.swift
|
|
//
|
|
// Copyright (c) 2014 - 2017 Pinglin Tang
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in
|
|
// all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
// THE SOFTWARE.
|
|
|
|
import XCTest
|
|
import SwiftyJSON
|
|
|
|
class StringTests: XCTestCase {
|
|
|
|
func testString() {
|
|
//getter
|
|
var json = JSON("abcdefg hijklmn;opqrst.?+_()")
|
|
XCTAssertEqual(json.string!, "abcdefg hijklmn;opqrst.?+_()")
|
|
XCTAssertEqual(json.stringValue, "abcdefg hijklmn;opqrst.?+_()")
|
|
|
|
json.string = "12345?67890.@#"
|
|
XCTAssertEqual(json.string!, "12345?67890.@#")
|
|
XCTAssertEqual(json.stringValue, "12345?67890.@#")
|
|
}
|
|
|
|
func testUrl() {
|
|
let json = JSON("http://github.com")
|
|
XCTAssertEqual(json.url!, URL(string: "http://github.com")!)
|
|
}
|
|
|
|
func testBool() {
|
|
let json = JSON("true")
|
|
XCTAssertTrue(json.boolValue)
|
|
}
|
|
|
|
func testBoolWithY() {
|
|
let json = JSON("Y")
|
|
XCTAssertTrue(json.boolValue)
|
|
}
|
|
|
|
func testBoolWithT() {
|
|
let json = JSON("T")
|
|
XCTAssertTrue(json.boolValue)
|
|
}
|
|
|
|
func testBoolWithYes() {
|
|
let json = JSON("Yes")
|
|
XCTAssertTrue(json.boolValue)
|
|
}
|
|
|
|
func testBoolWith1() {
|
|
let json = JSON("1")
|
|
XCTAssertTrue(json.boolValue)
|
|
}
|
|
|
|
func testUrlPercentEscapes() {
|
|
let emDash = "\\u2014"
|
|
let urlString = "http://examble.com/unencoded" + emDash + "string"
|
|
guard let encodedURLString = urlString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) else {
|
|
return XCTFail("Couldn't encode URL string \(urlString)")
|
|
}
|
|
let json = JSON(urlString)
|
|
XCTAssertEqual(json.url!, URL(string: encodedURLString)!, "Wrong unpacked ")
|
|
let preEscaped = JSON(encodedURLString)
|
|
XCTAssertEqual(preEscaped.url!, URL(string: encodedURLString)!, "Wrong unpacked ")
|
|
}
|
|
}
|