Skip to content

Commit

Permalink
Merge pull request #405 from JimJeon/porting/test
Browse files Browse the repository at this point in the history
구름 테스트 SWIFT 포팅
  • Loading branch information
youknowone committed Oct 21, 2018
2 parents 2f8c55a + 59eb1ed commit e952dcc
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 79 deletions.
78 changes: 0 additions & 78 deletions GureumTests/GureumObjCTests.m
Expand Up @@ -243,84 +243,6 @@ - (void)test3Number {
}
}

- (void)testHanjaSyllable {
for (VirtualApp *app in self.apps) {
app.client.string = @"";
[app.controller setValue:[GureumInputSourceIdentifier han3Final] forTag:kTextServiceInputModePropertyTag client:app.client];
[app inputText:@"m" key:46 modifiers:0];
[app inputText:@"f" key:3 modifiers:0];
[app inputText:@"s" key:1 modifiers:0];
XCTAssertEqualObjects(@"", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app inputText:@"\n" key:36 modifiers:524288];
XCTAssertEqualObjects(@"", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app.controller candidateSelectionChanged:[[NSAttributedString alloc] initWithString:@"韓: 나라 이름 한"]];
XCTAssertEqualObjects(@"", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app.controller candidateSelected:[[NSAttributedString alloc] initWithString:@"韓: 나라 이름 한"]];
XCTAssertEqualObjects(@"", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
}
}

- (void)testHanjaWord {
for (VirtualApp *app in @[self.moderate]) {
if (app == self.terminal) {
continue; // 터미널은 한자 모드 진입이 불가
}
app.client.string = @"";
[app.controller setValue:[GureumInputSourceIdentifier han3Final] forTag:kTextServiceInputModePropertyTag client:app.client];
// hanja search mode
[app inputText:@"\n" key:36 modifiers:524288];
[app inputText:@"i" key:34 modifiers:0];
[app inputText:@"b" key:11 modifiers:0];
[app inputText:@"w" key:13 modifiers:0];
XCTAssertEqualObjects(@"", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app inputText:@" " key:kVK_Space modifiers:0];
XCTAssertEqualObjects(@"", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app inputText:@"n" key:45 modifiers:0];
[app inputText:@"b" key:11 modifiers:0];
XCTAssertEqualObjects(@"물 수", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"물 수", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app.controller candidateSelectionChanged:[[NSAttributedString alloc] initWithString:@"水: 물 수, 고를 수"]];
XCTAssertEqualObjects(@"물 수", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"물 수", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app.controller candidateSelected:[[NSAttributedString alloc] initWithString:@"水: 물 수, 고를 수"]];
XCTAssertEqualObjects(@"", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);

// 연달아 다음 한자 입력에 들어간다
[app inputText:@" " key:kVK_Space modifiers:0];
XCTAssertEqualObjects(@"", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);

[app inputText:@"i" key:34 modifiers:0];
XCTAssertEqualObjects(@"水 ㅁ", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);

[app inputText:@"b" key:11 modifiers:0];
[app inputText:@"w" key:13 modifiers:0];
XCTAssertEqualObjects(@"水 물", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app inputText:@" " key:kVK_Space modifiers:0];
XCTAssertEqualObjects(@"水 물 ", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app inputText:@"n" key:45 modifiers:0];
[app inputText:@"b" key:11 modifiers:0];
XCTAssertEqualObjects(@"水 물 수", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"물 수", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app.controller candidateSelectionChanged:[[NSAttributedString alloc] initWithString:@"水: 물 수, 고를 수"]];
XCTAssertEqualObjects(@"水 물 수", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"물 수", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
[app.controller candidateSelected:[[NSAttributedString alloc] initWithString:@"水: 물 수, 고를 수"]];
XCTAssertEqualObjects(@"水 水", app.client.string, @"buffer: %@ app: (%@)", app.client.string, app);
XCTAssertEqualObjects(@"", app.client.markedString, @"buffer: %@ app: (%@)", app.client.string, app);
}
}

- (void)testRomanEmoticon {
for (VirtualApp *app in @[self.moderate]) {
if (app == self.terminal) {
Expand Down
76 changes: 76 additions & 0 deletions GureumTests/GureumTests.swift
Expand Up @@ -47,4 +47,80 @@ class GureumTests: XCTestCase {
XCTAssertEqual("", app.client.markedString(), "")
}
}

func testHanjaSyllable() {
for app in self.apps {
app.client.string = ""
app.controller.setValue(GureumInputSourceIdentifier.han3Final, forTag: kTextServiceInputModePropertyTag, client: app.client)
app.inputText("m", key: 46, modifiers: NSEvent.ModifierFlags(rawValue: 0))
app.inputText("f", key: 3, modifiers: NSEvent.ModifierFlags(rawValue: 0))
app.inputText("s", key: 1, modifiers: NSEvent.ModifierFlags(rawValue: 0))
XCTAssertEqual("", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.inputText("\n", key: 36, modifiers: NSEvent.ModifierFlags.option)
XCTAssertEqual("", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.controller.candidateSelectionChanged(NSAttributedString.init(string: "韓: 나라 이름 한"))
XCTAssertEqual("", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.controller.candidateSelected(NSAttributedString.init(string: "韓: 나라 이름 한"))
XCTAssertEqual("", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
}
}

func testHanjaWord() {
for app in self.apps {
if app == self.terminal {
continue // 터미널은 한자 모드 진입이 불가능
}
app.client.string = ""
app.controller.setValue(GureumInputSourceIdentifier.han3Final, forTag: kTextServiceInputModePropertyTag, client: app.client)
// hanja search mode
app.inputText("\n", key: UInt(kVK_Return), modifiers: NSEvent.ModifierFlags.option)
app.inputText("i", key: UInt(kVK_ANSI_I), modifiers: NSEvent.ModifierFlags(rawValue: 0))
app.inputText("b", key: UInt(kVK_ANSI_B), modifiers: NSEvent.ModifierFlags(rawValue: 0))
app.inputText("w", key: UInt(kVK_ANSI_W), modifiers: NSEvent.ModifierFlags(rawValue: 0))
XCTAssertEqual("", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.inputText(" ", key: UInt(kVK_Space), modifiers: NSEvent.ModifierFlags(rawValue: 0))
XCTAssertEqual("", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.inputText("n", key: UInt(kVK_ANSI_N), modifiers: NSEvent.ModifierFlags(rawValue: 0))
app.inputText("b", key: UInt(kVK_ANSI_B), modifiers: NSEvent.ModifierFlags(rawValue: 0))
XCTAssertEqual("물 수", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("물 수", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.controller.candidateSelectionChanged(NSAttributedString.init(string: "水: 물 수, 고를 수"))
XCTAssertEqual("물 수", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("물 수", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.controller.candidateSelected(NSAttributedString.init(string: "水: 물 수, 고를 수"))
XCTAssertEqual("", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")

// 연달아 다음 한자 입력에 들어간다
app.inputText(" ", key: UInt(kVK_Space), modifiers: NSEvent.ModifierFlags(rawValue: 0))
XCTAssertEqual("", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.inputText("i", key: UInt(kVK_ANSI_I), modifiers: NSEvent.ModifierFlags(rawValue: 0))
XCTAssertEqual("水 ㅁ", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.inputText("b", key: UInt(kVK_ANSI_B), modifiers: NSEvent.ModifierFlags(rawValue: 0))
app.inputText("w", key: UInt(kVK_ANSI_W), modifiers: NSEvent.ModifierFlags(rawValue: 0))
XCTAssertEqual("水 물", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.inputText(" ", key: UInt(kVK_Space), modifiers: NSEvent.ModifierFlags(rawValue: 0))
XCTAssertEqual("水 물 ", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.inputText("n", key: UInt(kVK_ANSI_N), modifiers: NSEvent.ModifierFlags(rawValue: 0))
app.inputText("b", key: UInt(kVK_ANSI_B), modifiers: NSEvent.ModifierFlags(rawValue: 0))
XCTAssertEqual("水 물 수", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("물 수", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.controller.candidateSelectionChanged(NSAttributedString.init(string: "水: 물 수, 고를 수"))
XCTAssertEqual("水 물 수", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("물 수", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
app.controller.candidateSelected(NSAttributedString.init(string: "水: 물 수, 고를 수"))
XCTAssertEqual("水 水", app.client.string, "buffer: \(app.client.string), app: \(app)")
XCTAssertEqual("", app.client.markedString(), "buffer: \(app.client.string), app: \(app)")
}
}
}
2 changes: 1 addition & 1 deletion OSX/GureumComposer.swift
Expand Up @@ -21,7 +21,7 @@ import Foundation
@objc static let colemakQwertyCommand = "org.youknowone.inputmethod.Gureum.colemakq"
@objc static let han2 = "org.youknowone.inputmethod.Gureum.han2"
@objc static let han2Classic = "org.youknowone.inputmethod.Gureum.han2classic"
@objc static let han3Final = "org.youknowone.inputmethod.Gureum.han3final"
@objc public static let han3Final = "org.youknowone.inputmethod.Gureum.han3final"
@objc static let han390 = "org.youknowone.inputmethod.Gureum.han390"
@objc static let han3NoShift = "org.youknowone.inputmethod.Gureum.han3noshift"
@objc static let han3Classic = "org.youknowone.inputmethod.Gureum.han3classic"
Expand Down

0 comments on commit e952dcc

Please sign in to comment.