added the start of an experimental browser API so we can access the browser environment from a typesafe kotlin API which can be implemented on a JVM (e.g. with JavaFX) or compiled natively to JS to reuse the browser global variables

This commit is contained in:
James Strachan
2012-05-24 09:56:57 +01:00
parent 3fe9a8beca
commit bedadb1472
3 changed files with 50 additions and 0 deletions
@@ -0,0 +1,14 @@
package kotlin.browser
import org.w3c.dom.Document
private var _document: Document? = null
/**
* Provides access to the current active browsers DOM for the currently visible page.
*/
var document: Document
get() = _document!!
set(value) {
_document = value
}
@@ -0,0 +1,3 @@
## Browser API
Provides a simple typesafe API for accessing the browser context which can be used when Kotlin is compiled into JavaScript or when Kotlin is used on a JVM for example using [JavaFX](https://github.com/koolapp/koolapp/tree/master/koolapp-javafx), custom browser widgets such as in SWT or Qt, with remote control browser APIs like GWT or Selenium.
@@ -0,0 +1,33 @@
package test.browser
import kotlin.dom.*
import kotlin.browser.*
import kotlin.test.*
import org.junit.Test as test
class BrowserTest {
test fun accessBrowserDOM() {
registerBrowserPage()
val h1 = document["h1"].first()
assertEquals("Hello World!", h1.text)
}
protected fun registerBrowserPage() {
// lets simulate being a browser registering its DOM
val doc = createDocument()
doc.addElement("html") {
addElement("body") {
addElement("h1") {
addText("Hello World!")
}
addElement("p") {
addText("This is some text content")
}
}
}
document = doc
}
}