Add test for NSMutableString -> kotlin.String -> NSString conversion

This commit is contained in:
Svyatoslav Scherbina
2019-11-08 13:48:25 +03:00
committed by SvyatoslavScherbina
parent e24effd4c0
commit 57ada1c2cb
3 changed files with 26 additions and 0 deletions
@@ -1030,6 +1030,14 @@ __attribute__((swift_name("GH3525")))
+ (instancetype)gH3525 __attribute__((swift_name("init()")));
@end;
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("TestStringConversion")))
@interface ValuesTestStringConversion : ValuesBase
- (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
+ (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
@property id str __attribute__((swift_name("str")));
@end;
@interface ValuesEnumeration (ValuesKt)
- (ValuesEnumeration *)getAnswer __attribute__((swift_name("getAnswer()")));
@end;
@@ -826,4 +826,8 @@ object GH3525 : GH3525Base() {
init {
gh3525InitCount++
}
}
class TestStringConversion {
lateinit var str: Any
}
@@ -1077,6 +1077,19 @@ func testGH3525() throws {
try assertTrue(gh3525_1 === gh3525_2)
}
func testStringConversion() throws {
let test = TestStringConversion()
let buffer = NSMutableString()
buffer.append("a")
test.str = buffer
buffer.append("b")
try assertEquals(actual: buffer, expected: "ab")
// Ensure test.str isn't affected by buffer mutation:
try assertEquals(actual: test.str as! NSString, expected: "a")
}
// -------- Execution of the test --------
class ValuesTests : TestProvider {
@@ -1132,6 +1145,7 @@ class ValuesTests : TestProvider {
TestCase(name: "TestGH3503_2", method: withAutorelease(testGH3503_2)),
TestCase(name: "TestGH3503_3", method: withAutorelease(testGH3503_3)),
TestCase(name: "TestGH3525", method: withAutorelease(testGH3525)),
TestCase(name: "TestStringConversion", method: withAutorelease(testStringConversion)),
// Stress test, must remain the last one:
TestCase(name: "TestGH2931", method: withAutorelease(testGH2931)),