summaryrefslogtreecommitdiff
path: root/TalerTests/NodeWrapperTests.swift
diff options
context:
space:
mode:
Diffstat (limited to 'TalerTests/NodeWrapperTests.swift')
-rw-r--r--TalerTests/NodeWrapperTests.swift56
1 files changed, 44 insertions, 12 deletions
diff --git a/TalerTests/NodeWrapperTests.swift b/TalerTests/NodeWrapperTests.swift
index e01f1e9..63ed937 100644
--- a/TalerTests/NodeWrapperTests.swift
+++ b/TalerTests/NodeWrapperTests.swift
@@ -1,19 +1,45 @@
-//
-// NodeWrapperTests.swift
-// TalerTests
-//
-// Created by Jonathan Buchanan on 1/14/21.
-// Copyright © 2021 Taler. All rights reserved.
-//
+/*
+ * This file is part of GNU Taler
+ * (C) 2021 Taler Systems S.A.
+ *
+ * GNU Taler is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3, or (at your option) any later version.
+ *
+ * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+ */
import XCTest
@testable import Taler
+class MessageHandler: IonoMessageHandler {
+ var lastMessage: String?
+ var messageSemaphore: DispatchSemaphore
+
+ init() {
+ messageSemaphore = DispatchSemaphore(value: 0)
+ }
+
+ func handleMessage(message: String) {
+ lastMessage = message
+ messageSemaphore.signal()
+ }
+}
+
class NodeWrapperTests: XCTestCase {
var iono: Iono!
+ var handler: MessageHandler!
override func setUpWithError() throws {
iono = Iono()
+ handler = MessageHandler()
+
+ iono.messageHandler = handler
}
override func tearDownWithError() throws {
@@ -21,11 +47,17 @@ class NodeWrapperTests: XCTestCase {
}
func testEvalJS() throws {
- XCTAssert("2" == iono.evalJS(source: "1 + 1"))
- XCTAssert("36" == iono.evalJS(source: "6 * 6"))
- XCTAssert("42" == iono.evalJS(source: "(()=>{let x = 42; return x;})()"))
- XCTAssert("undefined" == iono.evalJS(source: "const myVal = 42"))
- XCTAssert("43" == iono.evalJS(source: "myVal + 1"))
+ XCTAssert("2" == iono.evalSimpleJs(source: "1 + 1"))
+ XCTAssert("36" == iono.evalSimpleJs(source: "6 * 6"))
+ XCTAssert("42" == iono.evalSimpleJs(source: "(()=>{let x = 42; return x;})()"))
+ XCTAssert("undefined" == iono.evalSimpleJs(source: "const myVal = 42"))
+ XCTAssert("43" == iono.evalSimpleJs(source: "myVal + 1"))
+
+ iono.evalNodeCode(source: "global.__iono_onMessage = (x) => { global.__iono_sendMessage(x); }")
+ let message = "Hello IONO"
+ iono.sendMessage(message: message)
+ handler.messageSemaphore.wait()
+ XCTAssert(message == handler.lastMessage)
}
}