TestLibWebSwiftBindings.swift 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * Copyright (c) 2024, Andrew Kaster <andrew@ladybird.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. import AK
  7. import Web
  8. import Foundation
  9. class StandardError: TextOutputStream {
  10. func write(_ string: Swift.String) {
  11. try! FileHandle.standardError.write(contentsOf: Data(string.utf8))
  12. }
  13. }
  14. @main
  15. struct TestLibWebSwiftBindings {
  16. static func testEnumsAreBound() {
  17. var standardError = StandardError()
  18. print("Testing LibWeb enum types...", to: &standardError)
  19. print("Web.DOM.NodeType.ELEMENT_NODE == \(Web.DOM.NodeType.ELEMENT_NODE)", to: &standardError)
  20. precondition(Web.DOM.NodeType.ELEMENT_NODE.rawValue == 1)
  21. print("Web.Bindings.NavigationType.Push == \(Web.Bindings.NavigationType.Push)", to: &standardError)
  22. precondition(Web.Bindings.NavigationType.Push.rawValue == 0)
  23. let end = Web.Bindings.idl_enum_to_string(Web.Bindings.ScrollLogicalPosition.End)
  24. let end_view = end.__bytes_as_string_viewUnsafe().bytes();
  25. let end_string = Swift.String(bytes: end_view, encoding: .utf8)!
  26. print("Web.Bindings.idl_enum_to_string(Web.Bindings.ScrollLogicalPosition.End) == \(end_string)", to: &standardError)
  27. precondition(end_string == "end")
  28. print("LibWeb enum types pass", to: &standardError)
  29. }
  30. static func main() {
  31. var standardError = StandardError()
  32. print("Starting test suite...", to: &standardError)
  33. testEnumsAreBound()
  34. print("All tests pass", to: &standardError)
  35. }
  36. }