jasmine.Describe("BrowserWindow", func() { var w electron.BrowserWindow jasmine.It("New", func() { w = electron.NewBrowserWindow(&map[string]interface{}{ "title": "title1", }) jasmine.Expect(w.GetTitle() == "title1").ToBeTruthy() }) jasmine.ItAsync("LoadUrl", func(done func()) { w = electron.NewBrowserWindow(&map[string]interface{}{ "title": "title2", }) w.LoadURL("file:///"+js.Global.Get("process").Call("cwd").String()+"/spec/page1.html", nil) w.GetWebContents().OnDidStopLoading(func() { jasmine.Expect(w.GetTitle()).ToBe("Page1") done() }) }) jasmine.It("OnClose and OnClosed", func() { var w = electron.NewBrowserWindow(nil) var closec = make(chan bool) var first = true w.OnClose(func(event *js.Object) { if first { event.Call("preventDefault") } first = false go func() { closec <- true }() }) w.Close() <-closec var closed = make(chan bool) w.OnClosed(func() { go func() { closed <- true }() }) w.Close() <-closec <-closed }) jasmine.AfterAllAsync(func(done func()) { time.AfterFunc(time.Millisecond*100, func() { w.Close() done() }) }) })
jasmine.Describe("WebContents", func() { jasmine.ItAsync("ExecuteJavascript", func(done func()) { var w = electron.NewBrowserWindow(nil) w.LoadURL("file:///"+js.Global.Get("process").Call("cwd").String()+"/spec/page1.html", nil) w.GetWebContents().OnWillNavigate(func(event *js.Object, url string) { jasmine.Expect(url).ToBe("file:///url2") w.Close() done() }) w.GetWebContents().ExecuteJavaScript("location.href='file:///url2'", nil) }) jasmine.It("UserAgent", func() { var w = electron.NewBrowserWindow(nil) w.GetWebContents().SetUserAgent("user1") jasmine.Expect(w.GetWebContents().GetUserAgent()).ToBe("user1") w.Close() }) jasmine.It("OnCrashed", func() { var w = electron.NewBrowserWindow(&map[string]interface{}{ "webSecurity": false, }) var crashed = make(chan bool) w.GetWebContents().OnCrashed(func() { go func() { crashed <- true }() }) w.LoadURL("chrome://crash/", nil) <-crashed w.Close() }) jasmine.AfterAllAsync(func(done func()) { time.AfterFunc(time.Millisecond*10, done) }) })