Skip to content

Commit 367a9c4

Browse files
authored
Test bridging of Bundle parameters (#22)
1 parent 60b75ed commit 367a9c4

6 files changed

Lines changed: 22 additions & 12 deletions

File tree

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ let package = Package(
2727
.testTarget(name: "SkipAndroidBridgeTests", dependencies: [
2828
"SkipAndroidBridge",
2929
.product(name: "SkipTest", package: "skip"),
30-
], plugins: [.plugin(name: "skipstone", package: "skip")]),
30+
], resources: [.process("Resources")], plugins: [.plugin(name: "skipstone", package: "skip")]),
3131

3232
.target(name: "SkipAndroidBridgeSamples", dependencies: [
3333
"SkipAndroidBridge",
3434
], resources: [.process("Resources")], plugins: [.plugin(name: "skipstone", package: "skip")]),
3535
.testTarget(name: "SkipAndroidBridgeSamplesTests", dependencies: [
3636
"SkipAndroidBridgeSamples",
3737
.product(name: "SkipTest", package: "skip"),
38-
], plugins: [.plugin(name: "skipstone", package: "skip")]),
38+
], resources: [.process("Resources")], plugins: [.plugin(name: "skipstone", package: "skip")]),
3939
]
4040
)

Sources/SkipAndroidBridgeSamples/Resources/sample.json renamed to Sources/SkipAndroidBridgeSamples/Resources/SkipAndroidBridgeSamples.json

File renamed without changes.

Sources/SkipAndroidBridgeSamples/SkipAndroidBridgeSamples.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ public func bundleClassName() -> String {
1818
"\(Bundle.module)"
1919
}
2020

21-
public func getAssetURL(named name: String) -> URL? {
22-
Bundle.module.url(forResource: name, withExtension: nil)
21+
public func getAssetURL(named name: String, in bundle: Bundle? = nil) -> URL? {
22+
(bundle ?? Bundle.module).url(forResource: name, withExtension: nil)
2323
}
2424

25-
public func getAssetContents(named name: String) throws -> Data? {
26-
guard let url = getAssetURL(named: name) else { return nil }
25+
public func getAssetContents(named name: String, in bundle: Bundle? = nil) throws -> Data? {
26+
guard let url = getAssetURL(named: name, in: bundle) else { return nil }
2727
return try Data(contentsOf: url)
2828
}
2929

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "name": "SkipAndroidBridgeSamplesTests" }

Tests/SkipAndroidBridgeSamplesTests/SkipAndroidBridgeSamplesTests.swift

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,31 +36,39 @@ final class SkipAndroidBridgeSamplesTests: XCTestCase {
3636
}
3737
}
3838

39-
func testResourceURL() throws {
39+
func resourceURLTest(name: String, bundle: Bundle?) throws {
4040
if isRobolectric {
4141
// unwrap fails on Robolectric
4242
throw XCTSkip("unknown error on Robolectric")
4343
}
4444

45-
let url = try XCTUnwrap(getAssetURL(named: "sample.json"))
45+
let url = try XCTUnwrap(getAssetURL(named: "\(name).json", in: bundle))
4646
if isRobolectric || !isJava {
4747
XCTAssertEqual("file", url.scheme)
48-
XCTAssertEqual("sample.json", url.lastPathComponent)
48+
XCTAssertEqual("\(name).json", url.lastPathComponent)
4949
} else {
5050
XCTAssertEqual("asset", url.scheme)
51-
XCTAssertEqual("asset:/skip/android/bridge/samples/Resources/sample.json", url.absoluteString)
51+
XCTAssertEqual("asset:/skip/android/bridge/samples/Resources/\(name).json", url.absoluteString)
5252
}
5353

54-
let expectedContents = #"{ "name": "SkipAndroidBridgeSamples" }"# + "\n"
54+
let expectedContents = "{ \"name\": \"\(name)\" }\n"
5555

56-
let bridgedData = try XCTUnwrap(getAssetContents(named: "sample.json"))
56+
let bridgedData = try XCTUnwrap(getAssetContents(named: "\(name).json", in: bundle))
5757
XCTAssertEqual(expectedContents, String(data: bridgedData, encoding: .utf8))
5858

5959
// also try loading localy with the Java side of the URLProtocol
6060
let localData = try Data(contentsOf: url)
6161
XCTAssertEqual(expectedContents, String(data: localData, encoding: .utf8))
6262
}
6363

64+
func testResourceURL() throws {
65+
try resourceURLTest(name: "SkipAndroidBridgeSamples", bundle: nil)
66+
}
67+
68+
func testResourceURLWithBundleParameter() throws {
69+
try resourceURLTest(name: "SkipAndroidBridgeSamplesTests", bundle: .module)
70+
}
71+
6472
func testUserDefaultsClassName() throws {
6573
let className = userDefaultsClassName()
6674
if isAndroid {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "name": "SkipAndroidBridgeTests" }

0 commit comments

Comments
 (0)