diff options
Diffstat (limited to 'TalerTests/NodeWrapperTests.swift')
-rw-r--r-- | TalerTests/NodeWrapperTests.swift | 56 |
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) } } |