chromedp/chromedp_test.go
Kenneth Shaw b5032069e3 Fixing race issues
- Refactored chromedp-gen and cdp code so that Execute no longer returns
  a channel
- Fixing potential race problems in handler
- Eliminated some dead code
- Updated examples to include new logging parameters
2017-02-14 17:15:53 +07:00

80 lines
1.3 KiB
Go

package chromedp
import (
"context"
"log"
"os"
"strings"
"testing"
)
var pool *Pool
var defaultContext = context.Background()
func TestMain(m *testing.M) {
var err error
pool, err = NewPool(PoolLog(log.Printf, log.Printf, log.Printf))
if err != nil {
log.Fatal(err)
}
code := m.Run()
err = pool.Shutdown()
if err != nil {
log.Fatal(err)
}
os.Exit(code)
}
func TestNavigate(t *testing.T) {
var err error
c, err := pool.Allocate(defaultContext)
if err != nil {
t.Fatal(err)
}
defer c.Release()
err = c.Run(defaultContext, Navigate("https://www.google.com/"))
if err != nil {
t.Fatal(err)
}
err = c.Run(defaultContext, WaitVisible(`#hplogo`, ByID))
if err != nil {
t.Fatal(err)
}
var urlstr string
err = c.Run(defaultContext, Location(&urlstr))
if err != nil {
t.Fatal(err)
}
if !strings.HasPrefix(urlstr, "https://www.google.") {
t.Errorf("expected to be on google domain, at: %s", urlstr)
}
var title string
err = c.Run(defaultContext, Title(&title))
if err != nil {
t.Fatal(err)
}
if !strings.Contains(strings.ToLower(title), "google") {
t.Errorf("expected title to contain google, instead title is: %s", title)
}
}
func TestSendKeys(t *testing.T) {
var err error
c, err := pool.Allocate(defaultContext)
if err != nil {
t.Fatal(err)
}
defer c.Release()
}