diff options
author | Péter Szilágyi <peterke@gmail.com> | 2016-02-11 22:16:52 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2016-02-11 22:16:52 +0800 |
commit | b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a (patch) | |
tree | 26e023be6c99a10e82a5a0ebadd1e42cefe9bd3c /Godeps/_workspace/src/golang.org/x/net | |
parent | b05e472c076d30035233d6a8b5fb3360b236e3ff (diff) | |
download | go-tangerine-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.tar.gz go-tangerine-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.tar.zst go-tangerine-b019f3ee29ce55c3d515ee8bafe0f4bb14221c0a.zip |
Godeps: update all dependencies to latest code
Diffstat (limited to 'Godeps/_workspace/src/golang.org/x/net')
88 files changed, 291 insertions, 23448 deletions
diff --git a/Godeps/_workspace/src/golang.org/x/net/LICENSE b/Godeps/_workspace/src/golang.org/x/net/LICENSE new file mode 100644 index 000000000..6a66aea5e --- /dev/null +++ b/Godeps/_workspace/src/golang.org/x/net/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Godeps/_workspace/src/golang.org/x/net/PATENTS b/Godeps/_workspace/src/golang.org/x/net/PATENTS new file mode 100644 index 000000000..733099041 --- /dev/null +++ b/Godeps/_workspace/src/golang.org/x/net/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/Godeps/_workspace/src/golang.org/x/net/context/context.go b/Godeps/_workspace/src/golang.org/x/net/context/context.go index e7ee376c4..11bd8d34e 100644 --- a/Godeps/_workspace/src/golang.org/x/net/context/context.go +++ b/Godeps/_workspace/src/golang.org/x/net/context/context.go @@ -34,7 +34,7 @@ // // See http://blog.golang.org/context for example code for a server that uses // Contexts. -package context // import "golang.org/x/net/context" +package context import ( "errors" @@ -189,7 +189,7 @@ func Background() Context { } // TODO returns a non-nil, empty Context. Code should use context.TODO when -// it's unclear which Context to use or it's is not yet available (because the +// it's unclear which Context to use or it is not yet available (because the // surrounding function has not yet been extended to accept a Context // parameter). TODO is recognized by static analysis tools that determine // whether Contexts are propagated correctly in a program. diff --git a/Godeps/_workspace/src/golang.org/x/net/context/context_test.go b/Godeps/_workspace/src/golang.org/x/net/context/context_test.go deleted file mode 100644 index faf67722a..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/context/context_test.go +++ /dev/null @@ -1,575 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package context - -import ( - "fmt" - "math/rand" - "runtime" - "strings" - "sync" - "testing" - "time" -) - -// otherContext is a Context that's not one of the types defined in context.go. -// This lets us test code paths that differ based on the underlying type of the -// Context. -type otherContext struct { - Context -} - -func TestBackground(t *testing.T) { - c := Background() - if c == nil { - t.Fatalf("Background returned nil") - } - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - if got, want := fmt.Sprint(c), "context.Background"; got != want { - t.Errorf("Background().String() = %q want %q", got, want) - } -} - -func TestTODO(t *testing.T) { - c := TODO() - if c == nil { - t.Fatalf("TODO returned nil") - } - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - if got, want := fmt.Sprint(c), "context.TODO"; got != want { - t.Errorf("TODO().String() = %q want %q", got, want) - } -} - -func TestWithCancel(t *testing.T) { - c1, cancel := WithCancel(Background()) - - if got, want := fmt.Sprint(c1), "context.Background.WithCancel"; got != want { - t.Errorf("c1.String() = %q want %q", got, want) - } - - o := otherContext{c1} - c2, _ := WithCancel(o) - contexts := []Context{c1, o, c2} - - for i, c := range contexts { - if d := c.Done(); d == nil { - t.Errorf("c[%d].Done() == %v want non-nil", i, d) - } - if e := c.Err(); e != nil { - t.Errorf("c[%d].Err() == %v want nil", i, e) - } - - select { - case x := <-c.Done(): - t.Errorf("<-c.Done() == %v want nothing (it should block)", x) - default: - } - } - - cancel() - time.Sleep(100 * time.Millisecond) // let cancelation propagate - - for i, c := range contexts { - select { - case <-c.Done(): - default: - t.Errorf("<-c[%d].Done() blocked, but shouldn't have", i) - } - if e := c.Err(); e != Canceled { - t.Errorf("c[%d].Err() == %v want %v", i, e, Canceled) - } - } -} - -func TestParentFinishesChild(t *testing.T) { - // Context tree: - // parent -> cancelChild - // parent -> valueChild -> timerChild - parent, cancel := WithCancel(Background()) - cancelChild, stop := WithCancel(parent) - defer stop() - valueChild := WithValue(parent, "key", "value") - timerChild, stop := WithTimeout(valueChild, 10000*time.Hour) - defer stop() - - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - case x := <-cancelChild.Done(): - t.Errorf("<-cancelChild.Done() == %v want nothing (it should block)", x) - case x := <-timerChild.Done(): - t.Errorf("<-timerChild.Done() == %v want nothing (it should block)", x) - case x := <-valueChild.Done(): - t.Errorf("<-valueChild.Done() == %v want nothing (it should block)", x) - default: - } - - // The parent's children should contain the two cancelable children. - pc := parent.(*cancelCtx) - cc := cancelChild.(*cancelCtx) - tc := timerChild.(*timerCtx) - pc.mu.Lock() - if len(pc.children) != 2 || !pc.children[cc] || !pc.children[tc] { - t.Errorf("bad linkage: pc.children = %v, want %v and %v", - pc.children, cc, tc) - } - pc.mu.Unlock() - - if p, ok := parentCancelCtx(cc.Context); !ok || p != pc { - t.Errorf("bad linkage: parentCancelCtx(cancelChild.Context) = %v, %v want %v, true", p, ok, pc) - } - if p, ok := parentCancelCtx(tc.Context); !ok || p != pc { - t.Errorf("bad linkage: parentCancelCtx(timerChild.Context) = %v, %v want %v, true", p, ok, pc) - } - - cancel() - - pc.mu.Lock() - if len(pc.children) != 0 { - t.Errorf("pc.cancel didn't clear pc.children = %v", pc.children) - } - pc.mu.Unlock() - - // parent and children should all be finished. - check := func(ctx Context, name string) { - select { - case <-ctx.Done(): - default: - t.Errorf("<-%s.Done() blocked, but shouldn't have", name) - } - if e := ctx.Err(); e != Canceled { - t.Errorf("%s.Err() == %v want %v", name, e, Canceled) - } - } - check(parent, "parent") - check(cancelChild, "cancelChild") - check(valueChild, "valueChild") - check(timerChild, "timerChild") - - // WithCancel should return a canceled context on a canceled parent. - precanceledChild := WithValue(parent, "key", "value") - select { - case <-precanceledChild.Done(): - default: - t.Errorf("<-precanceledChild.Done() blocked, but shouldn't have") - } - if e := precanceledChild.Err(); e != Canceled { - t.Errorf("precanceledChild.Err() == %v want %v", e, Canceled) - } -} - -func TestChildFinishesFirst(t *testing.T) { - cancelable, stop := WithCancel(Background()) - defer stop() - for _, parent := range []Context{Background(), cancelable} { - child, cancel := WithCancel(parent) - - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - case x := <-child.Done(): - t.Errorf("<-child.Done() == %v want nothing (it should block)", x) - default: - } - - cc := child.(*cancelCtx) - pc, pcok := parent.(*cancelCtx) // pcok == false when parent == Background() - if p, ok := parentCancelCtx(cc.Context); ok != pcok || (ok && pc != p) { - t.Errorf("bad linkage: parentCancelCtx(cc.Context) = %v, %v want %v, %v", p, ok, pc, pcok) - } - - if pcok { - pc.mu.Lock() - if len(pc.children) != 1 || !pc.children[cc] { - t.Errorf("bad linkage: pc.children = %v, cc = %v", pc.children, cc) - } - pc.mu.Unlock() - } - - cancel() - - if pcok { - pc.mu.Lock() - if len(pc.children) != 0 { - t.Errorf("child's cancel didn't remove self from pc.children = %v", pc.children) - } - pc.mu.Unlock() - } - - // child should be finished. - select { - case <-child.Done(): - default: - t.Errorf("<-child.Done() blocked, but shouldn't have") - } - if e := child.Err(); e != Canceled { - t.Errorf("child.Err() == %v want %v", e, Canceled) - } - - // parent should not be finished. - select { - case x := <-parent.Done(): - t.Errorf("<-parent.Done() == %v want nothing (it should block)", x) - default: - } - if e := parent.Err(); e != nil { - t.Errorf("parent.Err() == %v want nil", e) - } - } -} - -func testDeadline(c Context, wait time.Duration, t *testing.T) { - select { - case <-time.After(wait): - t.Fatalf("context should have timed out") - case <-c.Done(): - } - if e := c.Err(); e != DeadlineExceeded { - t.Errorf("c.Err() == %v want %v", e, DeadlineExceeded) - } -} - -func TestDeadline(t *testing.T) { - c, _ := WithDeadline(Background(), time.Now().Add(100*time.Millisecond)) - if got, prefix := fmt.Sprint(c), "context.Background.WithDeadline("; !strings.HasPrefix(got, prefix) { - t.Errorf("c.String() = %q want prefix %q", got, prefix) - } - testDeadline(c, 200*time.Millisecond, t) - - c, _ = WithDeadline(Background(), time.Now().Add(100*time.Millisecond)) - o := otherContext{c} - testDeadline(o, 200*time.Millisecond, t) - - c, _ = WithDeadline(Background(), time.Now().Add(100*time.Millisecond)) - o = otherContext{c} - c, _ = WithDeadline(o, time.Now().Add(300*time.Millisecond)) - testDeadline(c, 200*time.Millisecond, t) -} - -func TestTimeout(t *testing.T) { - c, _ := WithTimeout(Background(), 100*time.Millisecond) - if got, prefix := fmt.Sprint(c), "context.Background.WithDeadline("; !strings.HasPrefix(got, prefix) { - t.Errorf("c.String() = %q want prefix %q", got, prefix) - } - testDeadline(c, 200*time.Millisecond, t) - - c, _ = WithTimeout(Background(), 100*time.Millisecond) - o := otherContext{c} - testDeadline(o, 200*time.Millisecond, t) - - c, _ = WithTimeout(Background(), 100*time.Millisecond) - o = otherContext{c} - c, _ = WithTimeout(o, 300*time.Millisecond) - testDeadline(c, 200*time.Millisecond, t) -} - -func TestCanceledTimeout(t *testing.T) { - c, _ := WithTimeout(Background(), 200*time.Millisecond) - o := otherContext{c} - c, cancel := WithTimeout(o, 400*time.Millisecond) - cancel() - time.Sleep(100 * time.Millisecond) // let cancelation propagate - select { - case <-c.Done(): - default: - t.Errorf("<-c.Done() blocked, but shouldn't have") - } - if e := c.Err(); e != Canceled { - t.Errorf("c.Err() == %v want %v", e, Canceled) - } -} - -type key1 int -type key2 int - -var k1 = key1(1) -var k2 = key2(1) // same int as k1, different type -var k3 = key2(3) // same type as k2, different int - -func TestValues(t *testing.T) { - check := func(c Context, nm, v1, v2, v3 string) { - if v, ok := c.Value(k1).(string); ok == (len(v1) == 0) || v != v1 { - t.Errorf(`%s.Value(k1).(string) = %q, %t want %q, %t`, nm, v, ok, v1, len(v1) != 0) - } - if v, ok := c.Value(k2).(string); ok == (len(v2) == 0) || v != v2 { - t.Errorf(`%s.Value(k2).(string) = %q, %t want %q, %t`, nm, v, ok, v2, len(v2) != 0) - } - if v, ok := c.Value(k3).(string); ok == (len(v3) == 0) || v != v3 { - t.Errorf(`%s.Value(k3).(string) = %q, %t want %q, %t`, nm, v, ok, v3, len(v3) != 0) - } - } - - c0 := Background() - check(c0, "c0", "", "", "") - - c1 := WithValue(Background(), k1, "c1k1") - check(c1, "c1", "c1k1", "", "") - - if got, want := fmt.Sprint(c1), `context.Background.WithValue(1, "c1k1")`; got != want { - t.Errorf("c.String() = %q want %q", got, want) - } - - c2 := WithValue(c1, k2, "c2k2") - check(c2, "c2", "c1k1", "c2k2", "") - - c3 := WithValue(c2, k3, "c3k3") - check(c3, "c2", "c1k1", "c2k2", "c3k3") - - c4 := WithValue(c3, k1, nil) - check(c4, "c4", "", "c2k2", "c3k3") - - o0 := otherContext{Background()} - check(o0, "o0", "", "", "") - - o1 := otherContext{WithValue(Background(), k1, "c1k1")} - check(o1, "o1", "c1k1", "", "") - - o2 := WithValue(o1, k2, "o2k2") - check(o2, "o2", "c1k1", "o2k2", "") - - o3 := otherContext{c4} - check(o3, "o3", "", "c2k2", "c3k3") - - o4 := WithValue(o3, k3, nil) - check(o4, "o4", "", "c2k2", "") -} - -func TestAllocs(t *testing.T) { - bg := Background() - for _, test := range []struct { - desc string - f func() - limit float64 - gccgoLimit float64 - }{ - { - desc: "Background()", - f: func() { Background() }, - limit: 0, - gccgoLimit: 0, - }, - { - desc: fmt.Sprintf("WithValue(bg, %v, nil)", k1), - f: func() { - c := WithValue(bg, k1, nil) - c.Value(k1) - }, - limit: 3, - gccgoLimit: 3, - }, - { - desc: "WithTimeout(bg, 15*time.Millisecond)", - f: func() { - c, _ := WithTimeout(bg, 15*time.Millisecond) - <-c.Done() - }, - limit: 8, - gccgoLimit: 13, - }, - { - desc: "WithCancel(bg)", - f: func() { - c, cancel := WithCancel(bg) - cancel() - <-c.Done() - }, - limit: 5, - gccgoLimit: 8, - }, - { - desc: "WithTimeout(bg, 100*time.Millisecond)", - f: func() { - c, cancel := WithTimeout(bg, 100*time.Millisecond) - cancel() - <-c.Done() - }, - limit: 8, - gccgoLimit: 25, - }, - } { - limit := test.limit - if runtime.Compiler == "gccgo" { - // gccgo does not yet do escape analysis. - // TOOD(iant): Remove this when gccgo does do escape analysis. - limit = test.gccgoLimit - } - if n := testing.AllocsPerRun(100, test.f); n > limit { - t.Errorf("%s allocs = %f want %d", test.desc, n, int(limit)) - } - } -} - -func TestSimultaneousCancels(t *testing.T) { - root, cancel := WithCancel(Background()) - m := map[Context]CancelFunc{root: cancel} - q := []Context{root} - // Create a tree of contexts. - for len(q) != 0 && len(m) < 100 { - parent := q[0] - q = q[1:] - for i := 0; i < 4; i++ { - ctx, cancel := WithCancel(parent) - m[ctx] = cancel - q = append(q, ctx) - } - } - // Start all the cancels in a random order. - var wg sync.WaitGroup - wg.Add(len(m)) - for _, cancel := range m { - go func(cancel CancelFunc) { - cancel() - wg.Done() - }(cancel) - } - // Wait on all the contexts in a random order. - for ctx := range m { - select { - case <-ctx.Done(): - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for <-ctx.Done(); stacks:\n%s", buf[:n]) - } - } - // Wait for all the cancel functions to return. - done := make(chan struct{}) - go func() { - wg.Wait() - close(done) - }() - select { - case <-done: - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for cancel functions; stacks:\n%s", buf[:n]) - } -} - -func TestInterlockedCancels(t *testing.T) { - parent, cancelParent := WithCancel(Background()) - child, cancelChild := WithCancel(parent) - go func() { - parent.Done() - cancelChild() - }() - cancelParent() - select { - case <-child.Done(): - case <-time.After(1 * time.Second): - buf := make([]byte, 10<<10) - n := runtime.Stack(buf, true) - t.Fatalf("timed out waiting for child.Done(); stacks:\n%s", buf[:n]) - } -} - -func TestLayersCancel(t *testing.T) { - testLayers(t, time.Now().UnixNano(), false) -} - -func TestLayersTimeout(t *testing.T) { - testLayers(t, time.Now().UnixNano(), true) -} - -func testLayers(t *testing.T, seed int64, testTimeout bool) { - rand.Seed(seed) - errorf := func(format string, a ...interface{}) { - t.Errorf(fmt.Sprintf("seed=%d: %s", seed, format), a...) - } - const ( - timeout = 200 * time.Millisecond - minLayers = 30 - ) - type value int - var ( - vals []*value - cancels []CancelFunc - numTimers int - ctx = Background() - ) - for i := 0; i < minLayers || numTimers == 0 || len(cancels) == 0 || len(vals) == 0; i++ { - switch rand.Intn(3) { - case 0: - v := new(value) - ctx = WithValue(ctx, v, v) - vals = append(vals, v) - case 1: - var cancel CancelFunc - ctx, cancel = WithCancel(ctx) - cancels = append(cancels, cancel) - case 2: - var cancel CancelFunc - ctx, cancel = WithTimeout(ctx, timeout) - cancels = append(cancels, cancel) - numTimers++ - } - } - checkValues := func(when string) { - for _, key := range vals { - if val := ctx.Value(key).(*value); key != val { - errorf("%s: ctx.Value(%p) = %p want %p", when, key, val, key) - } - } - } - select { - case <-ctx.Done(): - errorf("ctx should not be canceled yet") - default: - } - if s, prefix := fmt.Sprint(ctx), "context.Background."; !strings.HasPrefix(s, prefix) { - t.Errorf("ctx.String() = %q want prefix %q", s, prefix) - } - t.Log(ctx) - checkValues("before cancel") - if testTimeout { - select { - case <-ctx.Done(): - case <-time.After(timeout + timeout/10): - errorf("ctx should have timed out") - } - checkValues("after timeout") - } else { - cancel := cancels[rand.Intn(len(cancels))] - cancel() - select { - case <-ctx.Done(): - default: - errorf("ctx should be canceled") - } - checkValues("after cancel") - } -} - -func TestCancelRemoves(t *testing.T) { - checkChildren := func(when string, ctx Context, want int) { - if got := len(ctx.(*cancelCtx).children); got != want { - t.Errorf("%s: context has %d children, want %d", when, got, want) - } - } - - ctx, _ := WithCancel(Background()) - checkChildren("after creation", ctx, 0) - _, cancel := WithCancel(ctx) - checkChildren("with WithCancel child ", ctx, 1) - cancel() - checkChildren("after cancelling WithCancel child", ctx, 0) - - ctx, _ = WithCancel(Background()) - checkChildren("after creation", ctx, 0) - _, cancel = WithTimeout(ctx, 60*time.Minute) - checkChildren("with WithTimeout child ", ctx, 1) - cancel() - checkChildren("after cancelling WithTimeout child", ctx, 0) -} diff --git a/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq.go b/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq.go new file mode 100644 index 000000000..e3170e333 --- /dev/null +++ b/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq.go @@ -0,0 +1,19 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.5 + +package ctxhttp + +import "net/http" + +func canceler(client *http.Client, req *http.Request) func() { + // TODO(djd): Respect any existing value of req.Cancel. + ch := make(chan struct{}) + req.Cancel = ch + + return func() { + close(ch) + } +} diff --git a/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq_go14.go b/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq_go14.go new file mode 100644 index 000000000..56bcbadb8 --- /dev/null +++ b/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/cancelreq_go14.go @@ -0,0 +1,23 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !go1.5 + +package ctxhttp + +import "net/http" + +type requestCanceler interface { + CancelRequest(*http.Request) +} + +func canceler(client *http.Client, req *http.Request) func() { + rc, ok := client.Transport.(requestCanceler) + if !ok { + return func() {} + } + return func() { + rc.CancelRequest(req) + } +} diff --git a/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/ctxhttp.go b/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/ctxhttp.go new file mode 100644 index 000000000..26a5e19ac --- /dev/null +++ b/Godeps/_workspace/src/golang.org/x/net/context/ctxhttp/ctxhttp.go @@ -0,0 +1,140 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package ctxhttp provides helper functions for performing context-aware HTTP requests. +package ctxhttp + +import ( + "io" + "net/http" + "net/url" + "strings" + + "golang.org/x/net/context" +) + +func nop() {} + +var ( + testHookContextDoneBeforeHeaders = nop + testHookDoReturned = nop + testHookDidBodyClose = nop +) + +// Do sends an HTTP request with the provided http.Client and returns an HTTP response. +// If the client is nil, http.DefaultClient is used. +// If the context is canceled or times out, ctx.Err() will be returned. +func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { + if client == nil { + client = http.DefaultClient + } + + // Request cancelation changed in Go 1.5, see cancelreq.go and cancelreq_go14.go. + cancel := canceler(client, req) + + type responseAndError struct { + resp *http.Response + err error + } + result := make(chan responseAndError, 1) + + go func() { + resp, err := client.Do(req) + testHookDoReturned() + result <- responseAndError{resp, err} + }() + + var resp *http.Response + + select { + case <-ctx.Done(): + testHookContextDoneBeforeHeaders() + cancel() + // Clean up after the goroutine calling client.Do: + go func() { + if r := <-result; r.resp != nil { + testHookDidBodyClose() + r.resp.Body.Close() + } + }() + return nil, ctx.Err() + case r := <-result: + var err error + resp, err = r.resp, r.err + if err != nil { + return resp, err + } + } + + c := make(chan struct{}) + go func() { + select { + case <-ctx.Done(): + cancel() + case <-c: + // The response's Body is closed. + } + }() + resp.Body = ¬ifyingReader{resp.Body, c} + + return resp, nil +} + +// Get issues a GET request via the Do function. +func Get(ctx context.Context, client *http.Client, url string) (*http.Response, error) { + req, err := http.NewRequest("GET", url, nil) + if err != nil { + return nil, err + } + return Do(ctx, client, req) +} + +// Head issues a HEAD request via the Do function. +func Head(ctx context.Context, client *http.Client, url string) (*http.Response, error) { + req, err := http.NewRequest("HEAD", url, nil) + if err != nil { + return nil, err + } + return Do(ctx, client, req) +} + +// Post issues a POST request via the Do function. +func Post(ctx context.Context, client *http.Client, url string, bodyType string, body io.Reader) (*http.Response, error) { + req, err := http.NewRequest("POST", url, body) + if err != nil { + return nil, err + } + req.Header.Set("Content-Type", bodyType) + return Do(ctx, client, req) +} + +// PostForm issues a POST request via the Do function. +func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) { + return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode())) +} + +// notifyingReader is an io.ReadCloser that closes the notify channel after +// Close is called or a Read fails on the underlying ReadCloser. +type notifyingReader struct { + io.ReadCloser + notify chan<- struct{} +} + +func (r *notifyingReader) Read(p []byte) (int, error) { + n, err := r.ReadCloser.Read(p) + if err != nil && r.notify != nil { + close(r.notify) + r.notify = nil + } + return n, err +} + +func (r *notifyingReader) Close() error { + err := r.ReadCloser.Close() + if r.notify != nil { + close(r.notify) + r.notify = nil + } + return err +} diff --git a/Godeps/_workspace/src/golang.org/x/net/context/withtimeout_test.go b/Godeps/_workspace/src/golang.org/x/net/context/withtimeout_test.go deleted file mode 100644 index a6754dc36..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/context/withtimeout_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package context_test - -import ( - "fmt" - "time" - - "golang.org/x/net/context" -) - -func ExampleWithTimeout() { - // Pass a context with a timeout to tell a blocking function that it - // should abandon its work after the timeout elapses. - ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond) - select { - case <-time.After(200 * time.Millisecond): - fmt.Println("overslept") - case <-ctx.Done(): - fmt.Println(ctx.Err()) // prints "context deadline exceeded" - } - // Output: - // context deadline exceeded -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/atom/atom_test.go b/Godeps/_workspace/src/golang.org/x/net/html/atom/atom_test.go deleted file mode 100644 index 6e33704dd..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/atom/atom_test.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package atom - -import ( - "sort" - "testing" -) - -func TestKnown(t *testing.T) { - for _, s := range testAtomList { - if atom := Lookup([]byte(s)); atom.String() != s { - t.Errorf("Lookup(%q) = %#x (%q)", s, uint32(atom), atom.String()) - } - } -} - -func TestHits(t *testing.T) { - for _, a := range table { - if a == 0 { - continue - } - got := Lookup([]byte(a.String())) - if got != a { - t.Errorf("Lookup(%q) = %#x, want %#x", a.String(), uint32(got), uint32(a)) - } - } -} - -func TestMisses(t *testing.T) { - testCases := []string{ - "", - "\x00", - "\xff", - "A", - "DIV", - "Div", - "dIV", - "aa", - "a\x00", - "ab", - "abb", - "abbr0", - "abbr ", - " abbr", - " a", - "acceptcharset", - "acceptCharset", - "accept_charset", - "h0", - "h1h2", - "h7", - "onClick", - "λ", - // The following string has the same hash (0xa1d7fab7) as "onmouseover". - "\x00\x00\x00\x00\x00\x50\x18\xae\x38\xd0\xb7", - } - for _, tc := range testCases { - got := Lookup([]byte(tc)) - if got != 0 { - t.Errorf("Lookup(%q): got %d, want 0", tc, got) - } - } -} - -func TestForeignObject(t *testing.T) { - const ( - afo = Foreignobject - afO = ForeignObject - sfo = "foreignobject" - sfO = "foreignObject" - ) - if got := Lookup([]byte(sfo)); got != afo { - t.Errorf("Lookup(%q): got %#v, want %#v", sfo, got, afo) - } - if got := Lookup([]byte(sfO)); got != afO { - t.Errorf("Lookup(%q): got %#v, want %#v", sfO, got, afO) - } - if got := afo.String(); got != sfo { - t.Errorf("Atom(%#v).String(): got %q, want %q", afo, got, sfo) - } - if got := afO.String(); got != sfO { - t.Errorf("Atom(%#v).String(): got %q, want %q", afO, got, sfO) - } -} - -func BenchmarkLookup(b *testing.B) { - sortedTable := make([]string, 0, len(table)) - for _, a := range table { - if a != 0 { - sortedTable = append(sortedTable, a.String()) - } - } - sort.Strings(sortedTable) - - x := make([][]byte, 1000) - for i := range x { - x[i] = []byte(sortedTable[i%len(sortedTable)]) - } - - b.ResetTimer() - for i := 0; i < b.N; i++ { - for _, s := range x { - Lookup(s) - } - } -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/atom/table_test.go b/Godeps/_workspace/src/golang.org/x/net/html/atom/table_test.go deleted file mode 100644 index 0f2ecce4f..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/atom/table_test.go +++ /dev/null @@ -1,351 +0,0 @@ -// generated by go run gen.go -test; DO NOT EDIT - -package atom - -var testAtomList = []string{ - "a", - "abbr", - "abbr", - "accept", - "accept-charset", - "accesskey", - "action", - "address", - "align", - "alt", - "annotation", - "annotation-xml", - "applet", - "area", - "article", - "aside", - "async", - "audio", - "autocomplete", - "autofocus", - "autoplay", - "b", - "base", - "basefont", - "bdi", - "bdo", - "bgsound", - "big", - "blink", - "blockquote", - "body", - "br", - "button", - "canvas", - "caption", - "center", - "challenge", - "charset", - "checked", - "cite", - "cite", - "class", - "code", - "col", - "colgroup", - "color", - "cols", - "colspan", - "command", - "command", - "content", - "contenteditable", - "contextmenu", - "controls", - "coords", - "crossorigin", - "data", - "data", - "datalist", - "datetime", - "dd", - "default", - "defer", - "del", - "desc", - "details", - "dfn", - "dialog", - "dir", - "dirname", - "disabled", - "div", - "dl", - "download", - "draggable", - "dropzone", - "dt", - "em", - "embed", - "enctype", - "face", - "fieldset", - "figcaption", - "figure", - "font", - "footer", - "for", - "foreignObject", - "foreignobject", - "form", - "form", - "formaction", - "formenctype", - "formmethod", - "formnovalidate", - "formtarget", - "frame", - "frameset", - "h1", - "h2", - "h3", - "h4", - "h5", - "h6", - "head", - "header", - "headers", - "height", - "hgroup", - "hidden", - "high", - "hr", - "href", - "hreflang", - "html", - "http-equiv", - "i", - "icon", - "id", - "iframe", - "image", - "img", - "input", - "inputmode", - "ins", - "isindex", - "ismap", - "itemid", - "itemprop", - "itemref", - "itemscope", - "itemtype", - "kbd", - "keygen", - "keytype", - "kind", - "label", - "label", - "lang", - "legend", - "li", - "link", - "list", - "listing", - "loop", - "low", - "malignmark", - "manifest", - "map", - "mark", - "marquee", - "math", - "max", - "maxlength", - "media", - "mediagroup", - "menu", - "menuitem", - "meta", - "meter", - "method", - "mglyph", - "mi", - "min", - "minlength", - "mn", - "mo", - "ms", - "mtext", - "multiple", - "muted", - "name", - "nav", - "nobr", - "noembed", - "noframes", - "noscript", - "novalidate", - "object", - "ol", - "onabort", - "onafterprint", - "onautocomplete", - "onautocompleteerror", - "onbeforeprint", - "onbeforeunload", - "onblur", - "oncancel", - "oncanplay", - "oncanplaythrough", - "onchange", - "onclick", - "onclose", - "oncontextmenu", - "oncuechange", - "ondblclick", - "ondrag", - "ondragend", - "ondragenter", - "ondragleave", - "ondragover", - "ondragstart", - "ondrop", - "ondurationchange", - "onemptied", - "onended", - "onerror", - "onfocus", - "onhashchange", - "oninput", - "oninvalid", - "onkeydown", - "onkeypress", - "onkeyup", - "onlanguagechange", - "onload", - "onloadeddata", - "onloadedmetadata", - "onloadstart", - "onmessage", - "onmousedown", - "onmousemove", - "onmouseout", - "onmouseover", - "onmouseup", - "onmousewheel", - "onoffline", - "ononline", - "onpagehide", - "onpageshow", - "onpause", - "onplay", - "onplaying", - "onpopstate", - "onprogress", - "onratechange", - "onreset", - "onresize", - "onscroll", - "onseeked", - "onseeking", - "onselect", - "onshow", - "onsort", - "onstalled", - "onstorage", - "onsubmit", - "onsuspend", - "ontimeupdate", - "ontoggle", - "onunload", - "onvolumechange", - "onwaiting", - "open", - "optgroup", - "optimum", - "option", - "output", - "p", - "param", - "pattern", - "ping", - "placeholder", - "plaintext", - "poster", - "pre", - "preload", - "progress", - "prompt", - "public", - "q", - "radiogroup", - "readonly", - "rel", - "required", - "reversed", - "rows", - "rowspan", - "rp", - "rt", - "ruby", - "s", - "samp", - "sandbox", - "scope", - "scoped", - "script", - "seamless", - "section", - "select", - "selected", - "shape", - "size", - "sizes", - "small", - "sortable", - "sorted", - "source", - "spacer", - "span", - "span", - "spellcheck", - "src", - "srcdoc", - "srclang", - "start", - "step", - "strike", - "strong", - "style", - "style", - "sub", - "summary", - "sup", - "svg", - "system", - "tabindex", - "table", - "target", - "tbody", - "td", - "template", - "textarea", - "tfoot", - "th", - "thead", - "time", - "title", - "title", - "tr", - "track", - "translate", - "tt", - "type", - "typemustmatch", - "u", - "ul", - "usemap", - "value", - "var", - "video", - "wbr", - "width", - "wrap", - "xmp", -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/charset.go b/Godeps/_workspace/src/golang.org/x/net/html/charset/charset.go index fd7eb585d..449607253 100644 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/charset.go +++ b/Godeps/_workspace/src/golang.org/x/net/html/charset/charset.go @@ -19,17 +19,30 @@ import ( "golang.org/x/net/html" "golang.org/x/text/encoding" "golang.org/x/text/encoding/charmap" + "golang.org/x/text/encoding/htmlindex" "golang.org/x/text/transform" ) // Lookup returns the encoding with the specified label, and its canonical // name. It returns nil and the empty string if label is not one of the // standard encodings for HTML. Matching is case-insensitive and ignores -// leading and trailing whitespace. +// leading and trailing whitespace. Encoders will use HTML escape sequences for +// runes that are not supported by the character set. func Lookup(label string) (e encoding.Encoding, name string) { - label = strings.ToLower(strings.Trim(label, "\t\n\r\f ")) - enc := encodings[label] - return enc.e, enc.name + e, err := htmlindex.Get(label) + if err != nil { + return nil, "" + } + name, _ = htmlindex.Name(e) + return &htmlEncoding{e}, name +} + +type htmlEncoding struct{ encoding.Encoding } + +func (h *htmlEncoding) NewEncoder() *encoding.Encoder { + // HTML requires a non-terminating legacy encoder. We use HTML escapes to + // substitute unsupported code points. + return encoding.HTMLEscapeUnsupported(h.Encoding.NewEncoder()) } // DetermineEncoding determines the encoding of an HTML document by examining diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/charset_test.go b/Godeps/_workspace/src/golang.org/x/net/html/charset/charset_test.go deleted file mode 100644 index 8b10399d3..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/charset_test.go +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package charset - -import ( - "bytes" - "encoding/xml" - "io/ioutil" - "runtime" - "strings" - "testing" - - "golang.org/x/text/transform" -) - -func transformString(t transform.Transformer, s string) (string, error) { - r := transform.NewReader(strings.NewReader(s), t) - b, err := ioutil.ReadAll(r) - return string(b), err -} - -var testCases = []struct { - utf8, other, otherEncoding string -}{ - {"Résumé", "Résumé", "utf8"}, - {"Résumé", "R\xe9sum\xe9", "latin1"}, - {"これは漢字です。", "S0\x8c0o0\"oW[g0Y0\x020", "UTF-16LE"}, - {"これは漢字です。", "0S0\x8c0oo\"[W0g0Y0\x02", "UTF-16BE"}, - {"Hello, world", "Hello, world", "ASCII"}, - {"Gdańsk", "Gda\xf1sk", "ISO-8859-2"}, - {"Ââ Čč Đđ Ŋŋ Õõ Šš Žž Åå Ää", "\xc2\xe2 \xc8\xe8 \xa9\xb9 \xaf\xbf \xd5\xf5 \xaa\xba \xac\xbc \xc5\xe5 \xc4\xe4", "ISO-8859-10"}, - {"สำหรับ", "\xca\xd3\xcb\xc3\u047a", "ISO-8859-11"}, - {"latviešu", "latvie\xf0u", "ISO-8859-13"}, - {"Seònaid", "Se\xf2naid", "ISO-8859-14"}, - {"€1 is cheap", "\xa41 is cheap", "ISO-8859-15"}, - {"românește", "rom\xe2ne\xbate", "ISO-8859-16"}, - {"nutraĵo", "nutra\xbco", "ISO-8859-3"}, - {"Kalâdlit", "Kal\xe2dlit", "ISO-8859-4"}, - {"русский", "\xe0\xe3\xe1\xe1\xda\xd8\xd9", "ISO-8859-5"}, - {"ελληνικά", "\xe5\xeb\xeb\xe7\xed\xe9\xea\xdc", "ISO-8859-7"}, - {"Kağan", "Ka\xf0an", "ISO-8859-9"}, - {"Résumé", "R\x8esum\x8e", "macintosh"}, - {"Gdańsk", "Gda\xf1sk", "windows-1250"}, - {"русский", "\xf0\xf3\xf1\xf1\xea\xe8\xe9", "windows-1251"}, - {"Résumé", "R\xe9sum\xe9", "windows-1252"}, - {"ελληνικά", "\xe5\xeb\xeb\xe7\xed\xe9\xea\xdc", "windows-1253"}, - {"Kağan", "Ka\xf0an", "windows-1254"}, - {"עִבְרִית", "\xf2\xc4\xe1\xc0\xf8\xc4\xe9\xfa", "windows-1255"}, - {"العربية", "\xc7\xe1\xda\xd1\xc8\xed\xc9", "windows-1256"}, - {"latviešu", "latvie\xf0u", "windows-1257"}, - {"Việt", "Vi\xea\xf2t", "windows-1258"}, - {"สำหรับ", "\xca\xd3\xcb\xc3\u047a", "windows-874"}, - {"русский", "\xd2\xd5\xd3\xd3\xcb\xc9\xca", "KOI8-R"}, - {"українська", "\xd5\xcb\xd2\xc1\xa7\xce\xd3\xd8\xcb\xc1", "KOI8-U"}, - {"Hello 常用國字標準字體表", "Hello \xb1`\xa5\u03b0\xea\xa6r\xbc\u0437\u01e6r\xc5\xe9\xaa\xed", "big5"}, - {"Hello 常用國字標準字體表", "Hello \xb3\xa3\xd3\xc3\x87\xf8\xd7\xd6\x98\xcb\x9c\xca\xd7\xd6\xf3\x77\xb1\xed", "gbk"}, - {"Hello 常用國字標準字體表", "Hello \xb3\xa3\xd3\xc3\x87\xf8\xd7\xd6\x98\xcb\x9c\xca\xd7\xd6\xf3\x77\xb1\xed", "gb18030"}, - {"עִבְרִית", "\x81\x30\xfb\x30\x81\x30\xf6\x34\x81\x30\xf9\x33\x81\x30\xf6\x30\x81\x30\xfb\x36\x81\x30\xf6\x34\x81\x30\xfa\x31\x81\x30\xfb\x38", "gb18030"}, - {"㧯", "\x82\x31\x89\x38", "gb18030"}, - {"これは漢字です。", "\x82\xb1\x82\xea\x82\xcd\x8a\xbf\x8e\x9a\x82\xc5\x82\xb7\x81B", "SJIS"}, - {"Hello, 世界!", "Hello, \x90\xa2\x8aE!", "SJIS"}, - {"イウエオカ", "\xb2\xb3\xb4\xb5\xb6", "SJIS"}, - {"これは漢字です。", "\xa4\xb3\xa4\xec\xa4\u03f4\xc1\xbb\xfa\xa4\u01e4\xb9\xa1\xa3", "EUC-JP"}, - {"Hello, 世界!", "Hello, \x1b$B@$3&\x1b(B!", "ISO-2022-JP"}, - {"네이트 | 즐거움의 시작, 슈파스(Spaβ) NATE", "\xb3\xd7\xc0\xcc\xc6\xae | \xc1\xf1\xb0\xc5\xbf\xf2\xc0\xc7 \xbd\xc3\xc0\xdb, \xbd\xb4\xc6\xc4\xbd\xba(Spa\xa5\xe2) NATE", "EUC-KR"}, -} - -func TestDecode(t *testing.T) { - for _, tc := range testCases { - e, _ := Lookup(tc.otherEncoding) - if e == nil { - t.Errorf("%s: not found", tc.otherEncoding) - continue - } - s, err := transformString(e.NewDecoder(), tc.other) - if err != nil { - t.Errorf("%s: decode %q: %v", tc.otherEncoding, tc.other, err) - continue - } - if s != tc.utf8 { - t.Errorf("%s: got %q, want %q", tc.otherEncoding, s, tc.utf8) - } - } -} - -func TestEncode(t *testing.T) { - for _, tc := range testCases { - e, _ := Lookup(tc.otherEncoding) - if e == nil { - t.Errorf("%s: not found", tc.otherEncoding) - continue - } - s, err := transformString(e.NewEncoder(), tc.utf8) - if err != nil { - t.Errorf("%s: encode %q: %s", tc.otherEncoding, tc.utf8, err) - continue - } - if s != tc.other { - t.Errorf("%s: got %q, want %q", tc.otherEncoding, s, tc.other) - } - } -} - -// TestNames verifies that you can pass an encoding's name to Lookup and get -// the same encoding back (except for "replacement"). -func TestNames(t *testing.T) { - for _, e := range encodings { - if e.name == "replacement" { - continue - } - _, got := Lookup(e.name) - if got != e.name { - t.Errorf("got %q, want %q", got, e.name) - continue - } - } -} - -var sniffTestCases = []struct { - filename, declared, want string -}{ - {"HTTP-charset.html", "text/html; charset=iso-8859-15", "iso-8859-15"}, - {"UTF-16LE-BOM.html", "", "utf-16le"}, - {"UTF-16BE-BOM.html", "", "utf-16be"}, - {"meta-content-attribute.html", "text/html", "iso-8859-15"}, - {"meta-charset-attribute.html", "text/html", "iso-8859-15"}, - {"No-encoding-declaration.html", "text/html", "utf-8"}, - {"HTTP-vs-UTF-8-BOM.html", "text/html; charset=iso-8859-15", "utf-8"}, - {"HTTP-vs-meta-content.html", "text/html; charset=iso-8859-15", "iso-8859-15"}, - {"HTTP-vs-meta-charset.html", "text/html; charset=iso-8859-15", "iso-8859-15"}, - {"UTF-8-BOM-vs-meta-content.html", "text/html", "utf-8"}, - {"UTF-8-BOM-vs-meta-charset.html", "text/html", "utf-8"}, -} - -func TestSniff(t *testing.T) { - switch runtime.GOOS { - case "nacl": // platforms that don't permit direct file system access - t.Skipf("not supported on %q", runtime.GOOS) - } - - for _, tc := range sniffTestCases { - content, err := ioutil.ReadFile("testdata/" + tc.filename) - if err != nil { - t.Errorf("%s: error reading file: %v", tc.filename, err) - continue - } - - _, name, _ := DetermineEncoding(content, tc.declared) - if name != tc.want { - t.Errorf("%s: got %q, want %q", tc.filename, name, tc.want) - continue - } - } -} - -func TestReader(t *testing.T) { - switch runtime.GOOS { - case "nacl": // platforms that don't permit direct file system access - t.Skipf("not supported on %q", runtime.GOOS) - } - - for _, tc := range sniffTestCases { - content, err := ioutil.ReadFile("testdata/" + tc.filename) - if err != nil { - t.Errorf("%s: error reading file: %v", tc.filename, err) - continue - } - - r, err := NewReader(bytes.NewReader(content), tc.declared) - if err != nil { - t.Errorf("%s: error creating reader: %v", tc.filename, err) - continue - } - - got, err := ioutil.ReadAll(r) - if err != nil { - t.Errorf("%s: error reading from charset.NewReader: %v", tc.filename, err) - continue - } - - e, _ := Lookup(tc.want) - want, err := ioutil.ReadAll(transform.NewReader(bytes.NewReader(content), e.NewDecoder())) - if err != nil { - t.Errorf("%s: error decoding with hard-coded charset name: %v", tc.filename, err) - continue - } - - if !bytes.Equal(got, want) { - t.Errorf("%s: got %q, want %q", tc.filename, got, want) - continue - } - } -} - -var metaTestCases = []struct { - meta, want string -}{ - {"", ""}, - {"text/html", ""}, - {"text/html; charset utf-8", ""}, - {"text/html; charset=latin-2", "latin-2"}, - {"text/html; charset; charset = utf-8", "utf-8"}, - {`charset="big5"`, "big5"}, - {"charset='shift_jis'", "shift_jis"}, -} - -func TestFromMeta(t *testing.T) { - for _, tc := range metaTestCases { - got := fromMetaElement(tc.meta) - if got != tc.want { - t.Errorf("%q: got %q, want %q", tc.meta, got, tc.want) - } - } -} - -func TestXML(t *testing.T) { - const s = "<?xml version=\"1.0\" encoding=\"windows-1252\"?><a><Word>r\xe9sum\xe9</Word></a>" - - d := xml.NewDecoder(strings.NewReader(s)) - d.CharsetReader = NewReaderLabel - - var a struct { - Word string - } - err := d.Decode(&a) - if err != nil { - t.Fatalf("Decode: %v", err) - } - - want := "résumé" - if a.Word != want { - t.Errorf("got %q, want %q", a.Word, want) - } -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/gen.go b/Godeps/_workspace/src/golang.org/x/net/html/charset/gen.go deleted file mode 100644 index 828347f4a..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/gen.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build ignore - -package main - -// Download https://encoding.spec.whatwg.org/encodings.json and use it to -// generate table.go. - -import ( - "encoding/json" - "fmt" - "log" - "net/http" - "strings" -) - -type enc struct { - Name string - Labels []string -} - -type group struct { - Encodings []enc - Heading string -} - -const specURL = "https://encoding.spec.whatwg.org/encodings.json" - -func main() { - resp, err := http.Get(specURL) - if err != nil { - log.Fatalf("error fetching %s: %s", specURL, err) - } - if resp.StatusCode != 200 { - log.Fatalf("error fetching %s: HTTP status %s", specURL, resp.Status) - } - defer resp.Body.Close() - - var groups []group - d := json.NewDecoder(resp.Body) - err = d.Decode(&groups) - if err != nil { - log.Fatalf("error reading encodings.json: %s", err) - } - - fmt.Println("// generated by go run gen.go; DO NOT EDIT") - fmt.Println() - fmt.Println("package charset") - fmt.Println() - - fmt.Println("import (") - fmt.Println(`"golang.org/x/text/encoding"`) - for _, pkg := range []string{"charmap", "japanese", "korean", "simplifiedchinese", "traditionalchinese", "unicode"} { - fmt.Printf("\"golang.org/x/text/encoding/%s\"\n", pkg) - } - fmt.Println(")") - fmt.Println() - - fmt.Println("var encodings = map[string]struct{e encoding.Encoding; name string} {") - for _, g := range groups { - for _, e := range g.Encodings { - goName, ok := miscNames[e.Name] - if !ok { - for k, v := range prefixes { - if strings.HasPrefix(e.Name, k) { - goName = v + e.Name[len(k):] - break - } - } - if goName == "" { - log.Fatalf("unrecognized encoding name: %s", e.Name) - } - } - - for _, label := range e.Labels { - fmt.Printf("%q: {%s, %q},\n", label, goName, e.Name) - } - } - } - fmt.Println("}") -} - -var prefixes = map[string]string{ - "iso-8859-": "charmap.ISO8859_", - "windows-": "charmap.Windows", -} - -var miscNames = map[string]string{ - "utf-8": "encoding.Nop", - "ibm866": "charmap.CodePage866", - "iso-8859-8-i": "charmap.ISO8859_8", - "koi8-r": "charmap.KOI8R", - "koi8-u": "charmap.KOI8U", - "macintosh": "charmap.Macintosh", - "x-mac-cyrillic": "charmap.MacintoshCyrillic", - "gbk": "simplifiedchinese.GBK", - "gb18030": "simplifiedchinese.GB18030", - "hz-gb-2312": "simplifiedchinese.HZGB2312", - "big5": "traditionalchinese.Big5", - "euc-jp": "japanese.EUCJP", - "iso-2022-jp": "japanese.ISO2022JP", - "shift_jis": "japanese.ShiftJIS", - "euc-kr": "korean.EUCKR", - "replacement": "encoding.Replacement", - "utf-16be": "unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM)", - "utf-16le": "unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM)", - "x-user-defined": "charmap.XUserDefined", -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/table.go b/Godeps/_workspace/src/golang.org/x/net/html/charset/table.go deleted file mode 100644 index aa0d94840..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/table.go +++ /dev/null @@ -1,235 +0,0 @@ -// generated by go run gen.go; DO NOT EDIT - -package charset - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/japanese" - "golang.org/x/text/encoding/korean" - "golang.org/x/text/encoding/simplifiedchinese" - "golang.org/x/text/encoding/traditionalchinese" - "golang.org/x/text/encoding/unicode" -) - -var encodings = map[string]struct { - e encoding.Encoding - name string -}{ - "unicode-1-1-utf-8": {encoding.Nop, "utf-8"}, - "utf-8": {encoding.Nop, "utf-8"}, - "utf8": {encoding.Nop, "utf-8"}, - "866": {charmap.CodePage866, "ibm866"}, - "cp866": {charmap.CodePage866, "ibm866"}, - "csibm866": {charmap.CodePage866, "ibm866"}, - "ibm866": {charmap.CodePage866, "ibm866"}, - "csisolatin2": {charmap.ISO8859_2, "iso-8859-2"}, - "iso-8859-2": {charmap.ISO8859_2, "iso-8859-2"}, - "iso-ir-101": {charmap.ISO8859_2, "iso-8859-2"}, - "iso8859-2": {charmap.ISO8859_2, "iso-8859-2"}, - "iso88592": {charmap.ISO8859_2, "iso-8859-2"}, - "iso_8859-2": {charmap.ISO8859_2, "iso-8859-2"}, - "iso_8859-2:1987": {charmap.ISO8859_2, "iso-8859-2"}, - "l2": {charmap.ISO8859_2, "iso-8859-2"}, - "latin2": {charmap.ISO8859_2, "iso-8859-2"}, - "csisolatin3": {charmap.ISO8859_3, "iso-8859-3"}, - "iso-8859-3": {charmap.ISO8859_3, "iso-8859-3"}, - "iso-ir-109": {charmap.ISO8859_3, "iso-8859-3"}, - "iso8859-3": {charmap.ISO8859_3, "iso-8859-3"}, - "iso88593": {charmap.ISO8859_3, "iso-8859-3"}, - "iso_8859-3": {charmap.ISO8859_3, "iso-8859-3"}, - "iso_8859-3:1988": {charmap.ISO8859_3, "iso-8859-3"}, - "l3": {charmap.ISO8859_3, "iso-8859-3"}, - "latin3": {charmap.ISO8859_3, "iso-8859-3"}, - "csisolatin4": {charmap.ISO8859_4, "iso-8859-4"}, - "iso-8859-4": {charmap.ISO8859_4, "iso-8859-4"}, - "iso-ir-110": {charmap.ISO8859_4, "iso-8859-4"}, - "iso8859-4": {charmap.ISO8859_4, "iso-8859-4"}, - "iso88594": {charmap.ISO8859_4, "iso-8859-4"}, - "iso_8859-4": {charmap.ISO8859_4, "iso-8859-4"}, - "iso_8859-4:1988": {charmap.ISO8859_4, "iso-8859-4"}, - "l4": {charmap.ISO8859_4, "iso-8859-4"}, - "latin4": {charmap.ISO8859_4, "iso-8859-4"}, - "csisolatincyrillic": {charmap.ISO8859_5, "iso-8859-5"}, - "cyrillic": {charmap.ISO8859_5, "iso-8859-5"}, - "iso-8859-5": {charmap.ISO8859_5, "iso-8859-5"}, - "iso-ir-144": {charmap.ISO8859_5, "iso-8859-5"}, - "iso8859-5": {charmap.ISO8859_5, "iso-8859-5"}, - "iso88595": {charmap.ISO8859_5, "iso-8859-5"}, - "iso_8859-5": {charmap.ISO8859_5, "iso-8859-5"}, - "iso_8859-5:1988": {charmap.ISO8859_5, "iso-8859-5"}, - "arabic": {charmap.ISO8859_6, "iso-8859-6"}, - "asmo-708": {charmap.ISO8859_6, "iso-8859-6"}, - "csiso88596e": {charmap.ISO8859_6, "iso-8859-6"}, - "csiso88596i": {charmap.ISO8859_6, "iso-8859-6"}, - "csisolatinarabic": {charmap.ISO8859_6, "iso-8859-6"}, - "ecma-114": {charmap.ISO8859_6, "iso-8859-6"}, - "iso-8859-6": {charmap.ISO8859_6, "iso-8859-6"}, - "iso-8859-6-e": {charmap.ISO8859_6, "iso-8859-6"}, - "iso-8859-6-i": {charmap.ISO8859_6, "iso-8859-6"}, - "iso-ir-127": {charmap.ISO8859_6, "iso-8859-6"}, - "iso8859-6": {charmap.ISO8859_6, "iso-8859-6"}, - "iso88596": {charmap.ISO8859_6, "iso-8859-6"}, - "iso_8859-6": {charmap.ISO8859_6, "iso-8859-6"}, - "iso_8859-6:1987": {charmap.ISO8859_6, "iso-8859-6"}, - "csisolatingreek": {charmap.ISO8859_7, "iso-8859-7"}, - "ecma-118": {charmap.ISO8859_7, "iso-8859-7"}, - "elot_928": {charmap.ISO8859_7, "iso-8859-7"}, - "greek": {charmap.ISO8859_7, "iso-8859-7"}, - "greek8": {charmap.ISO8859_7, "iso-8859-7"}, - "iso-8859-7": {charmap.ISO8859_7, "iso-8859-7"}, - "iso-ir-126": {charmap.ISO8859_7, "iso-8859-7"}, - "iso8859-7": {charmap.ISO8859_7, "iso-8859-7"}, - "iso88597": {charmap.ISO8859_7, "iso-8859-7"}, - "iso_8859-7": {charmap.ISO8859_7, "iso-8859-7"}, - "iso_8859-7:1987": {charmap.ISO8859_7, "iso-8859-7"}, - "sun_eu_greek": {charmap.ISO8859_7, "iso-8859-7"}, - "csiso88598e": {charmap.ISO8859_8, "iso-8859-8"}, - "csisolatinhebrew": {charmap.ISO8859_8, "iso-8859-8"}, - "hebrew": {charmap.ISO8859_8, "iso-8859-8"}, - "iso-8859-8": {charmap.ISO8859_8, "iso-8859-8"}, - "iso-8859-8-e": {charmap.ISO8859_8, "iso-8859-8"}, - "iso-ir-138": {charmap.ISO8859_8, "iso-8859-8"}, - "iso8859-8": {charmap.ISO8859_8, "iso-8859-8"}, - "iso88598": {charmap.ISO8859_8, "iso-8859-8"}, - "iso_8859-8": {charmap.ISO8859_8, "iso-8859-8"}, - "iso_8859-8:1988": {charmap.ISO8859_8, "iso-8859-8"}, - "visual": {charmap.ISO8859_8, "iso-8859-8"}, - "csiso88598i": {charmap.ISO8859_8, "iso-8859-8-i"}, - "iso-8859-8-i": {charmap.ISO8859_8, "iso-8859-8-i"}, - "logical": {charmap.ISO8859_8, "iso-8859-8-i"}, - "csisolatin6": {charmap.ISO8859_10, "iso-8859-10"}, - "iso-8859-10": {charmap.ISO8859_10, "iso-8859-10"}, - "iso-ir-157": {charmap.ISO8859_10, "iso-8859-10"}, - "iso8859-10": {charmap.ISO8859_10, "iso-8859-10"}, - "iso885910": {charmap.ISO8859_10, "iso-8859-10"}, - "l6": {charmap.ISO8859_10, "iso-8859-10"}, - "latin6": {charmap.ISO8859_10, "iso-8859-10"}, - "iso-8859-13": {charmap.ISO8859_13, "iso-8859-13"}, - "iso8859-13": {charmap.ISO8859_13, "iso-8859-13"}, - "iso885913": {charmap.ISO8859_13, "iso-8859-13"}, - "iso-8859-14": {charmap.ISO8859_14, "iso-8859-14"}, - "iso8859-14": {charmap.ISO8859_14, "iso-8859-14"}, - "iso885914": {charmap.ISO8859_14, "iso-8859-14"}, - "csisolatin9": {charmap.ISO8859_15, "iso-8859-15"}, - "iso-8859-15": {charmap.ISO8859_15, "iso-8859-15"}, - "iso8859-15": {charmap.ISO8859_15, "iso-8859-15"}, - "iso885915": {charmap.ISO8859_15, "iso-8859-15"}, - "iso_8859-15": {charmap.ISO8859_15, "iso-8859-15"}, - "l9": {charmap.ISO8859_15, "iso-8859-15"}, - "iso-8859-16": {charmap.ISO8859_16, "iso-8859-16"}, - "cskoi8r": {charmap.KOI8R, "koi8-r"}, - "koi": {charmap.KOI8R, "koi8-r"}, - "koi8": {charmap.KOI8R, "koi8-r"}, - "koi8-r": {charmap.KOI8R, "koi8-r"}, - "koi8_r": {charmap.KOI8R, "koi8-r"}, - "koi8-u": {charmap.KOI8U, "koi8-u"}, - "csmacintosh": {charmap.Macintosh, "macintosh"}, - "mac": {charmap.Macintosh, "macintosh"}, - "macintosh": {charmap.Macintosh, "macintosh"}, - "x-mac-roman": {charmap.Macintosh, "macintosh"}, - "dos-874": {charmap.Windows874, "windows-874"}, - "iso-8859-11": {charmap.Windows874, "windows-874"}, - "iso8859-11": {charmap.Windows874, "windows-874"}, - "iso885911": {charmap.Windows874, "windows-874"}, - "tis-620": {charmap.Windows874, "windows-874"}, - "windows-874": {charmap.Windows874, "windows-874"}, - "cp1250": {charmap.Windows1250, "windows-1250"}, - "windows-1250": {charmap.Windows1250, "windows-1250"}, - "x-cp1250": {charmap.Windows1250, "windows-1250"}, - "cp1251": {charmap.Windows1251, "windows-1251"}, - "windows-1251": {charmap.Windows1251, "windows-1251"}, - "x-cp1251": {charmap.Windows1251, "windows-1251"}, - "ansi_x3.4-1968": {charmap.Windows1252, "windows-1252"}, - "ascii": {charmap.Windows1252, "windows-1252"}, - "cp1252": {charmap.Windows1252, "windows-1252"}, - "cp819": {charmap.Windows1252, "windows-1252"}, - "csisolatin1": {charmap.Windows1252, "windows-1252"}, - "ibm819": {charmap.Windows1252, "windows-1252"}, - "iso-8859-1": {charmap.Windows1252, "windows-1252"}, - "iso-ir-100": {charmap.Windows1252, "windows-1252"}, - "iso8859-1": {charmap.Windows1252, "windows-1252"}, - "iso88591": {charmap.Windows1252, "windows-1252"}, - "iso_8859-1": {charmap.Windows1252, "windows-1252"}, - "iso_8859-1:1987": {charmap.Windows1252, "windows-1252"}, - "l1": {charmap.Windows1252, "windows-1252"}, - "latin1": {charmap.Windows1252, "windows-1252"}, - "us-ascii": {charmap.Windows1252, "windows-1252"}, - "windows-1252": {charmap.Windows1252, "windows-1252"}, - "x-cp1252": {charmap.Windows1252, "windows-1252"}, - "cp1253": {charmap.Windows1253, "windows-1253"}, - "windows-1253": {charmap.Windows1253, "windows-1253"}, - "x-cp1253": {charmap.Windows1253, "windows-1253"}, - "cp1254": {charmap.Windows1254, "windows-1254"}, - "csisolatin5": {charmap.Windows1254, "windows-1254"}, - "iso-8859-9": {charmap.Windows1254, "windows-1254"}, - "iso-ir-148": {charmap.Windows1254, "windows-1254"}, - "iso8859-9": {charmap.Windows1254, "windows-1254"}, - "iso88599": {charmap.Windows1254, "windows-1254"}, - "iso_8859-9": {charmap.Windows1254, "windows-1254"}, - "iso_8859-9:1989": {charmap.Windows1254, "windows-1254"}, - "l5": {charmap.Windows1254, "windows-1254"}, - "latin5": {charmap.Windows1254, "windows-1254"}, - "windows-1254": {charmap.Windows1254, "windows-1254"}, - "x-cp1254": {charmap.Windows1254, "windows-1254"}, - "cp1255": {charmap.Windows1255, "windows-1255"}, - "windows-1255": {charmap.Windows1255, "windows-1255"}, - "x-cp1255": {charmap.Windows1255, "windows-1255"}, - "cp1256": {charmap.Windows1256, "windows-1256"}, - "windows-1256": {charmap.Windows1256, "windows-1256"}, - "x-cp1256": {charmap.Windows1256, "windows-1256"}, - "cp1257": {charmap.Windows1257, "windows-1257"}, - "windows-1257": {charmap.Windows1257, "windows-1257"}, - "x-cp1257": {charmap.Windows1257, "windows-1257"}, - "cp1258": {charmap.Windows1258, "windows-1258"}, - "windows-1258": {charmap.Windows1258, "windows-1258"}, - "x-cp1258": {charmap.Windows1258, "windows-1258"}, - "x-mac-cyrillic": {charmap.MacintoshCyrillic, "x-mac-cyrillic"}, - "x-mac-ukrainian": {charmap.MacintoshCyrillic, "x-mac-cyrillic"}, - "chinese": {simplifiedchinese.GBK, "gbk"}, - "csgb2312": {simplifiedchinese.GBK, "gbk"}, - "csiso58gb231280": {simplifiedchinese.GBK, "gbk"}, - "gb2312": {simplifiedchinese.GBK, "gbk"}, - "gb_2312": {simplifiedchinese.GBK, "gbk"}, - "gb_2312-80": {simplifiedchinese.GBK, "gbk"}, - "gbk": {simplifiedchinese.GBK, "gbk"}, - "iso-ir-58": {simplifiedchinese.GBK, "gbk"}, - "x-gbk": {simplifiedchinese.GBK, "gbk"}, - "gb18030": {simplifiedchinese.GB18030, "gb18030"}, - "hz-gb-2312": {simplifiedchinese.HZGB2312, "hz-gb-2312"}, - "big5": {traditionalchinese.Big5, "big5"}, - "big5-hkscs": {traditionalchinese.Big5, "big5"}, - "cn-big5": {traditionalchinese.Big5, "big5"}, - "csbig5": {traditionalchinese.Big5, "big5"}, - "x-x-big5": {traditionalchinese.Big5, "big5"}, - "cseucpkdfmtjapanese": {japanese.EUCJP, "euc-jp"}, - "euc-jp": {japanese.EUCJP, "euc-jp"}, - "x-euc-jp": {japanese.EUCJP, "euc-jp"}, - "csiso2022jp": {japanese.ISO2022JP, "iso-2022-jp"}, - "iso-2022-jp": {japanese.ISO2022JP, "iso-2022-jp"}, - "csshiftjis": {japanese.ShiftJIS, "shift_jis"}, - "ms_kanji": {japanese.ShiftJIS, "shift_jis"}, - "shift-jis": {japanese.ShiftJIS, "shift_jis"}, - "shift_jis": {japanese.ShiftJIS, "shift_jis"}, - "sjis": {japanese.ShiftJIS, "shift_jis"}, - "windows-31j": {japanese.ShiftJIS, "shift_jis"}, - "x-sjis": {japanese.ShiftJIS, "shift_jis"}, - "cseuckr": {korean.EUCKR, "euc-kr"}, - "csksc56011987": {korean.EUCKR, "euc-kr"}, - "euc-kr": {korean.EUCKR, "euc-kr"}, - "iso-ir-149": {korean.EUCKR, "euc-kr"}, - "korean": {korean.EUCKR, "euc-kr"}, - "ks_c_5601-1987": {korean.EUCKR, "euc-kr"}, - "ks_c_5601-1989": {korean.EUCKR, "euc-kr"}, - "ksc5601": {korean.EUCKR, "euc-kr"}, - "ksc_5601": {korean.EUCKR, "euc-kr"}, - "windows-949": {korean.EUCKR, "euc-kr"}, - "csiso2022kr": {encoding.Replacement, "replacement"}, - "iso-2022-kr": {encoding.Replacement, "replacement"}, - "iso-2022-cn": {encoding.Replacement, "replacement"}, - "iso-2022-cn-ext": {encoding.Replacement, "replacement"}, - "utf-16be": {unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), "utf-16be"}, - "utf-16": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"}, - "utf-16le": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"}, - "x-user-defined": {charmap.XUserDefined, "x-user-defined"}, -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-charset.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-charset.html deleted file mode 100644 index 9915fa0ee..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-charset.html +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <title>HTTP charset</title> -<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> -<link rel='help' href='http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream'> -<link rel="stylesheet" type="text/css" href="./generatedtests.css"> -<script src="http://w3c-test.org/resources/testharness.js"></script> -<script src="http://w3c-test.org/resources/testharnessreport.js"></script> -<meta name='flags' content='http'> -<meta name="assert" content="The character encoding of a page can be set using the HTTP header charset declaration."> -<style type='text/css'> -.test div { width: 50px; }</style> -<link rel="stylesheet" type="text/css" href="the-input-byte-stream/support/encodingtests-15.css"> -</head> -<body> -<p class='title'>HTTP charset</p> - - -<div id='log'></div> - - -<div class='test'><div id='box' class='ýäè'> </div></div> - - - - - -<div class='description'> -<p class="assertion" title="Assertion">The character encoding of a page can be set using the HTTP header charset declaration.</p> -<div class="notes"><p><p>The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.ÜÀÚ</code>. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.</p><p>The only character encoding declaration for this HTML file is in the HTTP header, which sets the encoding to ISO 8859-15.</p></p> -</div> -</div> -<div class="nexttest"><div><a href="generate?test=the-input-byte-stream-003">Next test</a></div><div class="doctype">HTML5</div> -<p class="jump">the-input-byte-stream-001<br /><a href="/International/tests/html5/the-input-byte-stream/results-basics#basics" target="_blank">Result summary & related tests</a><br /><a href="http://w3c-test.org/framework/details/i18n-html5/the-input-byte-stream-001" target="_blank">Detailed results for this test</a><br/> <a href="http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream" target="_blank">Link to spec</a></p> -<div class='prereq'>Assumptions: <ul><li>The default encoding for the browser you are testing is not set to ISO 8859-15.</li> - <li>The test is read from a server that supports HTTP.</li></ul></div> -</div> -<script> -test(function() { -assert_equals(document.getElementById('box').offsetWidth, 100); -}, " "); -</script> - -</body> -</html> - - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html deleted file mode 100644 index 26e5d8b4e..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <title>HTTP vs UTF-8 BOM</title> -<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> -<link rel='help' href='http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream'> -<link rel="stylesheet" type="text/css" href="./generatedtests.css"> -<script src="http://w3c-test.org/resources/testharness.js"></script> -<script src="http://w3c-test.org/resources/testharnessreport.js"></script> -<meta name='flags' content='http'> -<meta name="assert" content="A character encoding set in the HTTP header has lower precedence than the UTF-8 signature."> -<style type='text/css'> -.test div { width: 50px; }</style> -<link rel="stylesheet" type="text/css" href="the-input-byte-stream/support/encodingtests-utf8.css"> -</head> -<body> -<p class='title'>HTTP vs UTF-8 BOM</p> - - -<div id='log'></div> - - -<div class='test'><div id='box' class='ýäè'> </div></div> - - - - - -<div class='description'> -<p class="assertion" title="Assertion">A character encoding set in the HTTP header has lower precedence than the UTF-8 signature.</p> -<div class="notes"><p><p>The HTTP header attempts to set the character encoding to ISO 8859-15. The page starts with a UTF-8 signature.</p><p>The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.ýäè</code>. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.</p><p>If the test is unsuccessful, the characters  should appear at the top of the page. These represent the bytes that make up the UTF-8 signature when encountered in the ISO 8859-15 encoding.</p></p> -</div> -</div> -<div class="nexttest"><div><a href="generate?test=the-input-byte-stream-022">Next test</a></div><div class="doctype">HTML5</div> -<p class="jump">the-input-byte-stream-034<br /><a href="/International/tests/html5/the-input-byte-stream/results-basics#precedence" target="_blank">Result summary & related tests</a><br /><a href="http://w3c-test.org/framework/details/i18n-html5/the-input-byte-stream-034" target="_blank">Detailed results for this test</a><br/> <a href="http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream" target="_blank">Link to spec</a></p> -<div class='prereq'>Assumptions: <ul><li>The default encoding for the browser you are testing is not set to ISO 8859-15.</li> - <li>The test is read from a server that supports HTTP.</li></ul></div> -</div> -<script> -test(function() { -assert_equals(document.getElementById('box').offsetWidth, 100); -}, " "); -</script> - -</body> -</html> - - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-charset.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-charset.html deleted file mode 100644 index 2f07e9515..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-charset.html +++ /dev/null @@ -1,49 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <meta charset="iso-8859-1" > <title>HTTP vs meta charset</title> -<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> -<link rel='help' href='http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream'> -<link rel="stylesheet" type="text/css" href="./generatedtests.css"> -<script src="http://w3c-test.org/resources/testharness.js"></script> -<script src="http://w3c-test.org/resources/testharnessreport.js"></script> -<meta name='flags' content='http'> -<meta name="assert" content="The HTTP header has a higher precedence than an encoding declaration in a meta charset attribute."> -<style type='text/css'> -.test div { width: 50px; }.test div { width: 90px; } -</style> -<link rel="stylesheet" type="text/css" href="the-input-byte-stream/support/encodingtests-15.css"> -</head> -<body> -<p class='title'>HTTP vs meta charset</p> - - -<div id='log'></div> - - -<div class='test'><div id='box' class='ýäè'> </div></div> - - - - - -<div class='description'> -<p class="assertion" title="Assertion">The HTTP header has a higher precedence than an encoding declaration in a meta charset attribute.</p> -<div class="notes"><p><p>The HTTP header attempts to set the character encoding to ISO 8859-15. The page contains an encoding declaration in a meta charset attribute that attempts to set the character encoding to ISO 8859-1.</p><p>The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.ÜÀÚ</code>. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.</p></p> -</div> -</div> -<div class="nexttest"><div><a href="generate?test=the-input-byte-stream-037">Next test</a></div><div class="doctype">HTML5</div> -<p class="jump">the-input-byte-stream-018<br /><a href="/International/tests/html5/the-input-byte-stream/results-basics#precedence" target="_blank">Result summary & related tests</a><br /><a href="http://w3c-test.org/framework/details/i18n-html5/the-input-byte-stream-018" target="_blank">Detailed results for this test</a><br/> <a href="http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream" target="_blank">Link to spec</a></p> -<div class='prereq'>Assumptions: <ul><li>The default encoding for the browser you are testing is not set to ISO 8859-15.</li> - <li>The test is read from a server that supports HTTP.</li></ul></div> -</div> -<script> -test(function() { -assert_equals(document.getElementById('box').offsetWidth, 100); -}, " "); -</script> - -</body> -</html> - - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-content.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-content.html deleted file mode 100644 index 6853cddec..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-content.html +++ /dev/null @@ -1,49 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" > <title>HTTP vs meta content</title> -<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> -<link rel='help' href='http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream'> -<link rel="stylesheet" type="text/css" href="./generatedtests.css"> -<script src="http://w3c-test.org/resources/testharness.js"></script> -<script src="http://w3c-test.org/resources/testharnessreport.js"></script> -<meta name='flags' content='http'> -<meta name="assert" content="The HTTP header has a higher precedence than an encoding declaration in a meta content attribute."> -<style type='text/css'> -.test div { width: 50px; }.test div { width: 90px; } -</style> -<link rel="stylesheet" type="text/css" href="the-input-byte-stream/support/encodingtests-15.css"> -</head> -<body> -<p class='title'>HTTP vs meta content</p> - - -<div id='log'></div> - - -<div class='test'><div id='box' class='ýäè'> </div></div> - - - - - -<div class='description'> -<p class="assertion" title="Assertion">The HTTP header has a higher precedence than an encoding declaration in a meta content attribute.</p> -<div class="notes"><p><p>The HTTP header attempts to set the character encoding to ISO 8859-15. The page contains an encoding declaration in a meta content attribute that attempts to set the character encoding to ISO 8859-1.</p><p>The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.ÜÀÚ</code>. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.</p></p> -</div> -</div> -<div class="nexttest"><div><a href="generate?test=the-input-byte-stream-018">Next test</a></div><div class="doctype">HTML5</div> -<p class="jump">the-input-byte-stream-016<br /><a href="/International/tests/html5/the-input-byte-stream/results-basics#precedence" target="_blank">Result summary & related tests</a><br /><a href="http://w3c-test.org/framework/details/i18n-html5/the-input-byte-stream-016" target="_blank">Detailed results for this test</a><br/> <a href="http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream" target="_blank">Link to spec</a></p> -<div class='prereq'>Assumptions: <ul><li>The default encoding for the browser you are testing is not set to ISO 8859-15.</li> - <li>The test is read from a server that supports HTTP.</li></ul></div> -</div> -<script> -test(function() { -assert_equals(document.getElementById('box').offsetWidth, 100); -}, " "); -</script> - -</body> -</html> - - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/No-encoding-declaration.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/No-encoding-declaration.html deleted file mode 100644 index 612e26c6c..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/No-encoding-declaration.html +++ /dev/null @@ -1,47 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <title>No encoding declaration</title> -<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> -<link rel='help' href='http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream'> -<link rel="stylesheet" type="text/css" href="./generatedtests.css"> -<script src="http://w3c-test.org/resources/testharness.js"></script> -<script src="http://w3c-test.org/resources/testharnessreport.js"></script> -<meta name='flags' content='http'> -<meta name="assert" content="A page with no encoding information in HTTP, BOM, XML declaration or meta element will be treated as UTF-8."> -<style type='text/css'> -.test div { width: 50px; }</style> -<link rel="stylesheet" type="text/css" href="the-input-byte-stream/support/encodingtests-utf8.css"> -</head> -<body> -<p class='title'>No encoding declaration</p> - - -<div id='log'></div> - - -<div class='test'><div id='box' class='ýäè'> </div></div> - - - - - -<div class='description'> -<p class="assertion" title="Assertion">A page with no encoding information in HTTP, BOM, XML declaration or meta element will be treated as UTF-8.</p> -<div class="notes"><p><p>The test on this page contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.ýäè</code>. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.</p></p> -</div> -</div> -<div class="nexttest"><div><a href="generate?test=the-input-byte-stream-034">Next test</a></div><div class="doctype">HTML5</div> -<p class="jump">the-input-byte-stream-015<br /><a href="/International/tests/html5/the-input-byte-stream/results-basics#basics" target="_blank">Result summary & related tests</a><br /><a href="http://w3c-test.org/framework/details/i18n-html5/the-input-byte-stream-015" target="_blank">Detailed results for this test</a><br/> <a href="http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream" target="_blank">Link to spec</a></p> -<div class='prereq'>Assumptions: <ul><li>The test is read from a server that supports HTTP.</li></ul></div> -</div> -<script> -test(function() { -assert_equals(document.getElementById('box').offsetWidth, 100); -}, " "); -</script> - -</body> -</html> - - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/README b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/README deleted file mode 100644 index 38ef0f9f1..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/README +++ /dev/null @@ -1,9 +0,0 @@ -These test cases come from -http://www.w3.org/International/tests/repository/html5/the-input-byte-stream/results-basics - -Distributed under both the W3C Test Suite License -(http://www.w3.org/Consortium/Legal/2008/04-testsuite-license) -and the W3C 3-clause BSD License -(http://www.w3.org/Consortium/Legal/2008/03-bsd-license). -To contribute to a W3C Test Suite, see the policies and contribution -forms (http://www.w3.org/2004/10/27-testcases). diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html Binary files differdeleted file mode 100644 index 3abf7a934..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html +++ /dev/null diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html Binary files differdeleted file mode 100644 index 76254c980..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html +++ /dev/null diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html deleted file mode 100644 index 83de43338..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html +++ /dev/null @@ -1,49 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <meta charset="iso-8859-15"> <title>UTF-8 BOM vs meta charset</title> -<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> -<link rel='help' href='http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream'> -<link rel="stylesheet" type="text/css" href="./generatedtests.css"> -<script src="http://w3c-test.org/resources/testharness.js"></script> -<script src="http://w3c-test.org/resources/testharnessreport.js"></script> -<meta name='flags' content='http'> -<meta name="assert" content="A page with a UTF-8 BOM will be recognized as UTF-8 even if the meta charset attribute declares a different encoding."> -<style type='text/css'> -.test div { width: 50px; }.test div { width: 90px; } -</style> -<link rel="stylesheet" type="text/css" href="the-input-byte-stream/support/encodingtests-utf8.css"> -</head> -<body> -<p class='title'>UTF-8 BOM vs meta charset</p> - - -<div id='log'></div> - - -<div class='test'><div id='box' class='ýäè'> </div></div> - - - - - -<div class='description'> -<p class="assertion" title="Assertion">A page with a UTF-8 BOM will be recognized as UTF-8 even if the meta charset attribute declares a different encoding.</p> -<div class="notes"><p><p>The page contains an encoding declaration in a meta charset attribute that attempts to set the character encoding to ISO 8859-15, but the file starts with a UTF-8 signature.</p><p>The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.ýäè</code>. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.</p></p> -</div> -</div> -<div class="nexttest"><div><a href="generate?test=the-input-byte-stream-024">Next test</a></div><div class="doctype">HTML5</div> -<p class="jump">the-input-byte-stream-038<br /><a href="/International/tests/html5/the-input-byte-stream/results-basics#precedence" target="_blank">Result summary & related tests</a><br /><a href="http://w3c-test.org/framework/details/i18n-html5/the-input-byte-stream-038" target="_blank">Detailed results for this test</a><br/> <a href="http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream" target="_blank">Link to spec</a></p> -<div class='prereq'>Assumptions: <ul><li>The default encoding for the browser you are testing is not set to ISO 8859-15.</li> - <li>The test is read from a server that supports HTTP.</li></ul></div> -</div> -<script> -test(function() { -assert_equals(document.getElementById('box').offsetWidth, 100); -}, " "); -</script> - -</body> -</html> - - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html deleted file mode 100644 index 501aac2d6..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <meta http-equiv="content-type" content="text/html; charset=iso-8859-15"> <title>UTF-8 BOM vs meta content</title> -<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> -<link rel='help' href='http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream'> -<link rel="stylesheet" type="text/css" href="./generatedtests.css"> -<script src="http://w3c-test.org/resources/testharness.js"></script> -<script src="http://w3c-test.org/resources/testharnessreport.js"></script> -<meta name='flags' content='http'> -<meta name="assert" content="A page with a UTF-8 BOM will be recognized as UTF-8 even if the meta content attribute declares a different encoding."> -<style type='text/css'> -.test div { width: 50px; }</style> -<link rel="stylesheet" type="text/css" href="the-input-byte-stream/support/encodingtests-utf8.css"> -</head> -<body> -<p class='title'>UTF-8 BOM vs meta content</p> - - -<div id='log'></div> - - -<div class='test'><div id='box' class='ýäè'> </div></div> - - - - - -<div class='description'> -<p class="assertion" title="Assertion">A page with a UTF-8 BOM will be recognized as UTF-8 even if the meta content attribute declares a different encoding.</p> -<div class="notes"><p><p>The page contains an encoding declaration in a meta content attribute that attempts to set the character encoding to ISO 8859-15, but the file starts with a UTF-8 signature.</p><p>The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.ýäè</code>. This matches the sequence of bytes above when they are interpreted as UTF-8. If the class name matches the selector then the test will pass.</p></p> -</div> -</div> -<div class="nexttest"><div><a href="generate?test=the-input-byte-stream-038">Next test</a></div><div class="doctype">HTML5</div> -<p class="jump">the-input-byte-stream-037<br /><a href="/International/tests/html5/the-input-byte-stream/results-basics#precedence" target="_blank">Result summary & related tests</a><br /><a href="http://w3c-test.org/framework/details/i18n-html5/the-input-byte-stream-037" target="_blank">Detailed results for this test</a><br/> <a href="http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream" target="_blank">Link to spec</a></p> -<div class='prereq'>Assumptions: <ul><li>The default encoding for the browser you are testing is not set to ISO 8859-15.</li> - <li>The test is read from a server that supports HTTP.</li></ul></div> -</div> -<script> -test(function() { -assert_equals(document.getElementById('box').offsetWidth, 100); -}, " "); -</script> - -</body> -</html> - - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/meta-charset-attribute.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/meta-charset-attribute.html deleted file mode 100644 index 2d7d25aba..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/meta-charset-attribute.html +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <meta charset="iso-8859-15"> <title>meta charset attribute</title> -<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> -<link rel='help' href='http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream'> -<link rel="stylesheet" type="text/css" href="./generatedtests.css"> -<script src="http://w3c-test.org/resources/testharness.js"></script> -<script src="http://w3c-test.org/resources/testharnessreport.js"></script> -<meta name='flags' content='http'> -<meta name="assert" content="The character encoding of the page can be set by a meta element with charset attribute."> -<style type='text/css'> -.test div { width: 50px; }</style> -<link rel="stylesheet" type="text/css" href="the-input-byte-stream/support/encodingtests-15.css"> -</head> -<body> -<p class='title'>meta charset attribute</p> - - -<div id='log'></div> - - -<div class='test'><div id='box' class='ýäè'> </div></div> - - - - - -<div class='description'> -<p class="assertion" title="Assertion">The character encoding of the page can be set by a meta element with charset attribute.</p> -<div class="notes"><p><p>The only character encoding declaration for this HTML file is in the charset attribute of the meta element, which declares the encoding to be ISO 8859-15.</p><p>The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.ÜÀÚ</code>. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.</p></p> -</div> -</div> -<div class="nexttest"><div><a href="generate?test=the-input-byte-stream-015">Next test</a></div><div class="doctype">HTML5</div> -<p class="jump">the-input-byte-stream-009<br /><a href="/International/tests/html5/the-input-byte-stream/results-basics#basics" target="_blank">Result summary & related tests</a><br /><a href="http://w3c-test.org/framework/details/i18n-html5/the-input-byte-stream-009" target="_blank">Detailed results for this test</a><br/> <a href="http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream" target="_blank">Link to spec</a></p> -<div class='prereq'>Assumptions: <ul><li>The default encoding for the browser you are testing is not set to ISO 8859-15.</li> - <li>The test is read from a server that supports HTTP.</li></ul></div> -</div> -<script> -test(function() { -assert_equals(document.getElementById('box').offsetWidth, 100); -}, " "); -</script> - -</body> -</html> - - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/meta-content-attribute.html b/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/meta-content-attribute.html deleted file mode 100644 index 1c3f228e7..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/charset/testdata/meta-content-attribute.html +++ /dev/null @@ -1,48 +0,0 @@ -<!DOCTYPE html> -<html lang="en" > -<head> - <meta http-equiv="content-type" content="text/html; charset=iso-8859-15"> <title>meta content attribute</title> -<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> -<link rel='help' href='http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream'> -<link rel="stylesheet" type="text/css" href="./generatedtests.css"> -<script src="http://w3c-test.org/resources/testharness.js"></script> -<script src="http://w3c-test.org/resources/testharnessreport.js"></script> -<meta name='flags' content='http'> -<meta name="assert" content="The character encoding of the page can be set by a meta element with http-equiv and content attributes."> -<style type='text/css'> -.test div { width: 50px; }</style> -<link rel="stylesheet" type="text/css" href="the-input-byte-stream/support/encodingtests-15.css"> -</head> -<body> -<p class='title'>meta content attribute</p> - - -<div id='log'></div> - - -<div class='test'><div id='box' class='ýäè'> </div></div> - - - - - -<div class='description'> -<p class="assertion" title="Assertion">The character encoding of the page can be set by a meta element with http-equiv and content attributes.</p> -<div class="notes"><p><p>The only character encoding declaration for this HTML file is in the content attribute of the meta element, which declares the encoding to be ISO 8859-15.</p><p>The test contains a div with a class name that contains the following sequence of bytes: 0xC3 0xBD 0xC3 0xA4 0xC3 0xA8. These represent different sequences of characters in ISO 8859-15, ISO 8859-1 and UTF-8. The external, UTF-8-encoded stylesheet contains a selector <code>.test div.ÜÀÚ</code>. This matches the sequence of bytes above when they are interpreted as ISO 8859-15. If the class name matches the selector then the test will pass.</p></p> -</div> -</div> -<div class="nexttest"><div><a href="generate?test=the-input-byte-stream-009">Next test</a></div><div class="doctype">HTML5</div> -<p class="jump">the-input-byte-stream-007<br /><a href="/International/tests/html5/the-input-byte-stream/results-basics#basics" target="_blank">Result summary & related tests</a><br /><a href="http://w3c-test.org/framework/details/i18n-html5/the-input-byte-stream-007" target="_blank">Detailed results for this test</a><br/> <a href="http://www.w3.org/TR/html5/syntax.html#the-input-byte-stream" target="_blank">Link to spec</a></p> -<div class='prereq'>Assumptions: <ul><li>The default encoding for the browser you are testing is not set to ISO 8859-15.</li> - <li>The test is read from a server that supports HTTP.</li></ul></div> -</div> -<script> -test(function() { -assert_equals(document.getElementById('box').offsetWidth, 100); -}, " "); -</script> - -</body> -</html> - - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/entity_test.go b/Godeps/_workspace/src/golang.org/x/net/html/entity_test.go deleted file mode 100644 index b53f866fa..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/entity_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "testing" - "unicode/utf8" -) - -func TestEntityLength(t *testing.T) { - // We verify that the length of UTF-8 encoding of each value is <= 1 + len(key). - // The +1 comes from the leading "&". This property implies that the length of - // unescaped text is <= the length of escaped text. - for k, v := range entity { - if 1+len(k) < utf8.RuneLen(v) { - t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v)) - } - if len(k) > longestEntityWithoutSemicolon && k[len(k)-1] != ';' { - t.Errorf("entity name %s is %d characters, but longestEntityWithoutSemicolon=%d", k, len(k), longestEntityWithoutSemicolon) - } - } - for k, v := range entity2 { - if 1+len(k) < utf8.RuneLen(v[0])+utf8.RuneLen(v[1]) { - t.Error("escaped entity &" + k + " is shorter than its UTF-8 encoding " + string(v[0]) + string(v[1])) - } - } -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/escape_test.go b/Godeps/_workspace/src/golang.org/x/net/html/escape_test.go deleted file mode 100644 index b405d4b4a..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/escape_test.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import "testing" - -type unescapeTest struct { - // A short description of the test case. - desc string - // The HTML text. - html string - // The unescaped text. - unescaped string -} - -var unescapeTests = []unescapeTest{ - // Handle no entities. - { - "copy", - "A\ttext\nstring", - "A\ttext\nstring", - }, - // Handle simple named entities. - { - "simple", - "& > <", - "& > <", - }, - // Handle hitting the end of the string. - { - "stringEnd", - "& &", - "& &", - }, - // Handle entities with two codepoints. - { - "multiCodepoint", - "text ⋛︀ blah", - "text \u22db\ufe00 blah", - }, - // Handle decimal numeric entities. - { - "decimalEntity", - "Delta = Δ ", - "Delta = Δ ", - }, - // Handle hexadecimal numeric entities. - { - "hexadecimalEntity", - "Lambda = λ = λ ", - "Lambda = λ = λ ", - }, - // Handle numeric early termination. - { - "numericEnds", - "&# &#x €43 © = ©f = ©", - "&# &#x €43 © = ©f = ©", - }, - // Handle numeric ISO-8859-1 entity replacements. - { - "numericReplacements", - "Footnote‡", - "Footnote‡", - }, -} - -func TestUnescape(t *testing.T) { - for _, tt := range unescapeTests { - unescaped := UnescapeString(tt.html) - if unescaped != tt.unescaped { - t.Errorf("TestUnescape %s: want %q, got %q", tt.desc, tt.unescaped, unescaped) - } - } -} - -func TestUnescapeEscape(t *testing.T) { - ss := []string{ - ``, - `abc def`, - `a & b`, - `a&b`, - `a & b`, - `"`, - `"`, - `"<&>"`, - `"<&>"`, - `3&5==1 && 0<1, "0<1", a+acute=á`, - `The special characters are: <, >, &, ' and "`, - } - for _, s := range ss { - if got := UnescapeString(EscapeString(s)); got != s { - t.Errorf("got %q want %q", got, s) - } - } -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/example_test.go b/Godeps/_workspace/src/golang.org/x/net/html/example_test.go deleted file mode 100644 index 0b06ed773..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/example_test.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This example demonstrates parsing HTML data and walking the resulting tree. -package html_test - -import ( - "fmt" - "log" - "strings" - - "golang.org/x/net/html" -) - -func ExampleParse() { - s := `<p>Links:</p><ul><li><a href="foo">Foo</a><li><a href="/bar/baz">BarBaz</a></ul>` - doc, err := html.Parse(strings.NewReader(s)) - if err != nil { - log.Fatal(err) - } - var f func(*html.Node) - f = func(n *html.Node) { - if n.Type == html.ElementNode && n.Data == "a" { - for _, a := range n.Attr { - if a.Key == "href" { - fmt.Println(a.Val) - break - } - } - } - for c := n.FirstChild; c != nil; c = c.NextSibling { - f(c) - } - } - f(doc) - // Output: - // foo - // /bar/baz -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/node_test.go b/Godeps/_workspace/src/golang.org/x/net/html/node_test.go deleted file mode 100644 index 471102f3a..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/node_test.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "fmt" -) - -// checkTreeConsistency checks that a node and its descendants are all -// consistent in their parent/child/sibling relationships. -func checkTreeConsistency(n *Node) error { - return checkTreeConsistency1(n, 0) -} - -func checkTreeConsistency1(n *Node, depth int) error { - if depth == 1e4 { - return fmt.Errorf("html: tree looks like it contains a cycle") - } - if err := checkNodeConsistency(n); err != nil { - return err - } - for c := n.FirstChild; c != nil; c = c.NextSibling { - if err := checkTreeConsistency1(c, depth+1); err != nil { - return err - } - } - return nil -} - -// checkNodeConsistency checks that a node's parent/child/sibling relationships -// are consistent. -func checkNodeConsistency(n *Node) error { - if n == nil { - return nil - } - - nParent := 0 - for p := n.Parent; p != nil; p = p.Parent { - nParent++ - if nParent == 1e4 { - return fmt.Errorf("html: parent list looks like an infinite loop") - } - } - - nForward := 0 - for c := n.FirstChild; c != nil; c = c.NextSibling { - nForward++ - if nForward == 1e6 { - return fmt.Errorf("html: forward list of children looks like an infinite loop") - } - if c.Parent != n { - return fmt.Errorf("html: inconsistent child/parent relationship") - } - } - - nBackward := 0 - for c := n.LastChild; c != nil; c = c.PrevSibling { - nBackward++ - if nBackward == 1e6 { - return fmt.Errorf("html: backward list of children looks like an infinite loop") - } - if c.Parent != n { - return fmt.Errorf("html: inconsistent child/parent relationship") - } - } - - if n.Parent != nil { - if n.Parent == n { - return fmt.Errorf("html: inconsistent parent relationship") - } - if n.Parent == n.FirstChild { - return fmt.Errorf("html: inconsistent parent/first relationship") - } - if n.Parent == n.LastChild { - return fmt.Errorf("html: inconsistent parent/last relationship") - } - if n.Parent == n.PrevSibling { - return fmt.Errorf("html: inconsistent parent/prev relationship") - } - if n.Parent == n.NextSibling { - return fmt.Errorf("html: inconsistent parent/next relationship") - } - - parentHasNAsAChild := false - for c := n.Parent.FirstChild; c != nil; c = c.NextSibling { - if c == n { - parentHasNAsAChild = true - break - } - } - if !parentHasNAsAChild { - return fmt.Errorf("html: inconsistent parent/child relationship") - } - } - - if n.PrevSibling != nil && n.PrevSibling.NextSibling != n { - return fmt.Errorf("html: inconsistent prev/next relationship") - } - if n.NextSibling != nil && n.NextSibling.PrevSibling != n { - return fmt.Errorf("html: inconsistent next/prev relationship") - } - - if (n.FirstChild == nil) != (n.LastChild == nil) { - return fmt.Errorf("html: inconsistent first/last relationship") - } - if n.FirstChild != nil && n.FirstChild == n.LastChild { - // We have a sole child. - if n.FirstChild.PrevSibling != nil || n.FirstChild.NextSibling != nil { - return fmt.Errorf("html: inconsistent sole child's sibling relationship") - } - } - - seen := map[*Node]bool{} - - var last *Node - for c := n.FirstChild; c != nil; c = c.NextSibling { - if seen[c] { - return fmt.Errorf("html: inconsistent repeated child") - } - seen[c] = true - last = c - } - if last != n.LastChild { - return fmt.Errorf("html: inconsistent last relationship") - } - - var first *Node - for c := n.LastChild; c != nil; c = c.PrevSibling { - if !seen[c] { - return fmt.Errorf("html: inconsistent missing child") - } - delete(seen, c) - first = c - } - if first != n.FirstChild { - return fmt.Errorf("html: inconsistent first relationship") - } - - if len(seen) != 0 { - return fmt.Errorf("html: inconsistent forwards/backwards child list") - } - - return nil -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/parse_test.go b/Godeps/_workspace/src/golang.org/x/net/html/parse_test.go deleted file mode 100644 index 7e47d11be..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/parse_test.go +++ /dev/null @@ -1,388 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "runtime" - "sort" - "strings" - "testing" - - "golang.org/x/net/html/atom" -) - -// readParseTest reads a single test case from r. -func readParseTest(r *bufio.Reader) (text, want, context string, err error) { - line, err := r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - var b []byte - - // Read the HTML. - if string(line) != "#data\n" { - return "", "", "", fmt.Errorf(`got %q want "#data\n"`, line) - } - for { - line, err = r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - if line[0] == '#' { - break - } - b = append(b, line...) - } - text = strings.TrimSuffix(string(b), "\n") - b = b[:0] - - // Skip the error list. - if string(line) != "#errors\n" { - return "", "", "", fmt.Errorf(`got %q want "#errors\n"`, line) - } - for { - line, err = r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - if line[0] == '#' { - break - } - } - - if string(line) == "#document-fragment\n" { - line, err = r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - context = strings.TrimSpace(string(line)) - line, err = r.ReadSlice('\n') - if err != nil { - return "", "", "", err - } - } - - // Read the dump of what the parse tree should be. - if string(line) != "#document\n" { - return "", "", "", fmt.Errorf(`got %q want "#document\n"`, line) - } - inQuote := false - for { - line, err = r.ReadSlice('\n') - if err != nil && err != io.EOF { - return "", "", "", err - } - trimmed := bytes.Trim(line, "| \n") - if len(trimmed) > 0 { - if line[0] == '|' && trimmed[0] == '"' { - inQuote = true - } - if trimmed[len(trimmed)-1] == '"' && !(line[0] == '|' && len(trimmed) == 1) { - inQuote = false - } - } - if len(line) == 0 || len(line) == 1 && line[0] == '\n' && !inQuote { - break - } - b = append(b, line...) - } - return text, string(b), context, nil -} - -func dumpIndent(w io.Writer, level int) { - io.WriteString(w, "| ") - for i := 0; i < level; i++ { - io.WriteString(w, " ") - } -} - -type sortedAttributes []Attribute - -func (a sortedAttributes) Len() int { - return len(a) -} - -func (a sortedAttributes) Less(i, j int) bool { - if a[i].Namespace != a[j].Namespace { - return a[i].Namespace < a[j].Namespace - } - return a[i].Key < a[j].Key -} - -func (a sortedAttributes) Swap(i, j int) { - a[i], a[j] = a[j], a[i] -} - -func dumpLevel(w io.Writer, n *Node, level int) error { - dumpIndent(w, level) - switch n.Type { - case ErrorNode: - return errors.New("unexpected ErrorNode") - case DocumentNode: - return errors.New("unexpected DocumentNode") - case ElementNode: - if n.Namespace != "" { - fmt.Fprintf(w, "<%s %s>", n.Namespace, n.Data) - } else { - fmt.Fprintf(w, "<%s>", n.Data) - } - attr := sortedAttributes(n.Attr) - sort.Sort(attr) - for _, a := range attr { - io.WriteString(w, "\n") - dumpIndent(w, level+1) - if a.Namespace != "" { - fmt.Fprintf(w, `%s %s="%s"`, a.Namespace, a.Key, a.Val) - } else { - fmt.Fprintf(w, `%s="%s"`, a.Key, a.Val) - } - } - case TextNode: - fmt.Fprintf(w, `"%s"`, n.Data) - case CommentNode: - fmt.Fprintf(w, "<!-- %s -->", n.Data) - case DoctypeNode: - fmt.Fprintf(w, "<!DOCTYPE %s", n.Data) - if n.Attr != nil { - var p, s string - for _, a := range n.Attr { - switch a.Key { - case "public": - p = a.Val - case "system": - s = a.Val - } - } - if p != "" || s != "" { - fmt.Fprintf(w, ` "%s"`, p) - fmt.Fprintf(w, ` "%s"`, s) - } - } - io.WriteString(w, ">") - case scopeMarkerNode: - return errors.New("unexpected scopeMarkerNode") - default: - return errors.New("unknown node type") - } - io.WriteString(w, "\n") - for c := n.FirstChild; c != nil; c = c.NextSibling { - if err := dumpLevel(w, c, level+1); err != nil { - return err - } - } - return nil -} - -func dump(n *Node) (string, error) { - if n == nil || n.FirstChild == nil { - return "", nil - } - var b bytes.Buffer - for c := n.FirstChild; c != nil; c = c.NextSibling { - if err := dumpLevel(&b, c, 0); err != nil { - return "", err - } - } - return b.String(), nil -} - -const testDataDir = "testdata/webkit/" - -func TestParser(t *testing.T) { - testFiles, err := filepath.Glob(testDataDir + "*.dat") - if err != nil { - t.Fatal(err) - } - for _, tf := range testFiles { - f, err := os.Open(tf) - if err != nil { - t.Fatal(err) - } - defer f.Close() - r := bufio.NewReader(f) - - for i := 0; ; i++ { - text, want, context, err := readParseTest(r) - if err == io.EOF { - break - } - if err != nil { - t.Fatal(err) - } - - err = testParseCase(text, want, context) - - if err != nil { - t.Errorf("%s test #%d %q, %s", tf, i, text, err) - } - } - } -} - -// testParseCase tests one test case from the test files. If the test does not -// pass, it returns an error that explains the failure. -// text is the HTML to be parsed, want is a dump of the correct parse tree, -// and context is the name of the context node, if any. -func testParseCase(text, want, context string) (err error) { - defer func() { - if x := recover(); x != nil { - switch e := x.(type) { - case error: - err = e - default: - err = fmt.Errorf("%v", e) - } - } - }() - - var doc *Node - if context == "" { - doc, err = Parse(strings.NewReader(text)) - if err != nil { - return err - } - } else { - contextNode := &Node{ - Type: ElementNode, - DataAtom: atom.Lookup([]byte(context)), - Data: context, - } - nodes, err := ParseFragment(strings.NewReader(text), contextNode) - if err != nil { - return err - } - doc = &Node{ - Type: DocumentNode, - } - for _, n := range nodes { - doc.AppendChild(n) - } - } - - if err := checkTreeConsistency(doc); err != nil { - return err - } - - got, err := dump(doc) - if err != nil { - return err - } - // Compare the parsed tree to the #document section. - if got != want { - return fmt.Errorf("got vs want:\n----\n%s----\n%s----", got, want) - } - - if renderTestBlacklist[text] || context != "" { - return nil - } - - // Check that rendering and re-parsing results in an identical tree. - pr, pw := io.Pipe() - go func() { - pw.CloseWithError(Render(pw, doc)) - }() - doc1, err := Parse(pr) - if err != nil { - return err - } - got1, err := dump(doc1) - if err != nil { - return err - } - if got != got1 { - return fmt.Errorf("got vs got1:\n----\n%s----\n%s----", got, got1) - } - - return nil -} - -// Some test input result in parse trees are not 'well-formed' despite -// following the HTML5 recovery algorithms. Rendering and re-parsing such a -// tree will not result in an exact clone of that tree. We blacklist such -// inputs from the render test. -var renderTestBlacklist = map[string]bool{ - // The second <a> will be reparented to the first <table>'s parent. This - // results in an <a> whose parent is an <a>, which is not 'well-formed'. - `<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y`: true, - // The same thing with a <p>: - `<p><table></p>`: true, - // More cases of <a> being reparented: - `<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe`: true, - `<a><table><a></table><p><a><div><a>`: true, - `<a><table><td><a><table></table><a></tr><a></table><a>`: true, - // A similar reparenting situation involving <nobr>: - `<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3`: true, - // A <plaintext> element is reparented, putting it before a table. - // A <plaintext> element can't have anything after it in HTML. - `<table><plaintext><td>`: true, - `<!doctype html><table><plaintext></plaintext>`: true, - `<!doctype html><table><tbody><plaintext></plaintext>`: true, - `<!doctype html><table><tbody><tr><plaintext></plaintext>`: true, - // A form inside a table inside a form doesn't work either. - `<!doctype html><form><table></form><form></table></form>`: true, - // A script that ends at EOF may escape its own closing tag when rendered. - `<!doctype html><script><!--<script `: true, - `<!doctype html><script><!--<script <`: true, - `<!doctype html><script><!--<script <a`: true, - `<!doctype html><script><!--<script </`: true, - `<!doctype html><script><!--<script </s`: true, - `<!doctype html><script><!--<script </script`: true, - `<!doctype html><script><!--<script </scripta`: true, - `<!doctype html><script><!--<script -`: true, - `<!doctype html><script><!--<script -a`: true, - `<!doctype html><script><!--<script -<`: true, - `<!doctype html><script><!--<script --`: true, - `<!doctype html><script><!--<script --a`: true, - `<!doctype html><script><!--<script --<`: true, - `<script><!--<script `: true, - `<script><!--<script <a`: true, - `<script><!--<script </script`: true, - `<script><!--<script </scripta`: true, - `<script><!--<script -`: true, - `<script><!--<script -a`: true, - `<script><!--<script --`: true, - `<script><!--<script --a`: true, - `<script><!--<script <`: true, - `<script><!--<script </`: true, - `<script><!--<script </s`: true, - // Reconstructing the active formatting elements results in a <plaintext> - // element that contains an <a> element. - `<!doctype html><p><a><plaintext>b`: true, -} - -func TestNodeConsistency(t *testing.T) { - // inconsistentNode is a Node whose DataAtom and Data do not agree. - inconsistentNode := &Node{ - Type: ElementNode, - DataAtom: atom.Frameset, - Data: "table", - } - _, err := ParseFragment(strings.NewReader("<p>hello</p>"), inconsistentNode) - if err == nil { - t.Errorf("got nil error, want non-nil") - } -} - -func BenchmarkParser(b *testing.B) { - buf, err := ioutil.ReadFile("testdata/go1.html") - if err != nil { - b.Fatalf("could not read testdata/go1.html: %v", err) - } - b.SetBytes(int64(len(buf))) - runtime.GC() - b.ReportAllocs() - b.ResetTimer() - for i := 0; i < b.N; i++ { - Parse(bytes.NewBuffer(buf)) - } -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/render.go b/Godeps/_workspace/src/golang.org/x/net/html/render.go index 4a833b440..d34564f49 100644 --- a/Godeps/_workspace/src/golang.org/x/net/html/render.go +++ b/Godeps/_workspace/src/golang.org/x/net/html/render.go @@ -14,7 +14,7 @@ import ( type writer interface { io.Writer - WriteByte(c byte) error // in Go 1.1, use io.ByteWriter + io.ByteWriter WriteString(string) (int, error) } diff --git a/Godeps/_workspace/src/golang.org/x/net/html/render_test.go b/Godeps/_workspace/src/golang.org/x/net/html/render_test.go deleted file mode 100644 index 11da54b31..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/render_test.go +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "bytes" - "testing" -) - -func TestRenderer(t *testing.T) { - nodes := [...]*Node{ - 0: { - Type: ElementNode, - Data: "html", - }, - 1: { - Type: ElementNode, - Data: "head", - }, - 2: { - Type: ElementNode, - Data: "body", - }, - 3: { - Type: TextNode, - Data: "0<1", - }, - 4: { - Type: ElementNode, - Data: "p", - Attr: []Attribute{ - { - Key: "id", - Val: "A", - }, - { - Key: "foo", - Val: `abc"def`, - }, - }, - }, - 5: { - Type: TextNode, - Data: "2", - }, - 6: { - Type: ElementNode, - Data: "b", - Attr: []Attribute{ - { - Key: "empty", - Val: "", - }, - }, - }, - 7: { - Type: TextNode, - Data: "3", - }, - 8: { - Type: ElementNode, - Data: "i", - Attr: []Attribute{ - { - Key: "backslash", - Val: `\`, - }, - }, - }, - 9: { - Type: TextNode, - Data: "&4", - }, - 10: { - Type: TextNode, - Data: "5", - }, - 11: { - Type: ElementNode, - Data: "blockquote", - }, - 12: { - Type: ElementNode, - Data: "br", - }, - 13: { - Type: TextNode, - Data: "6", - }, - } - - // Build a tree out of those nodes, based on a textual representation. - // Only the ".\t"s are significant. The trailing HTML-like text is - // just commentary. The "0:" prefixes are for easy cross-reference with - // the nodes array. - treeAsText := [...]string{ - 0: `<html>`, - 1: `. <head>`, - 2: `. <body>`, - 3: `. . "0<1"`, - 4: `. . <p id="A" foo="abc"def">`, - 5: `. . . "2"`, - 6: `. . . <b empty="">`, - 7: `. . . . "3"`, - 8: `. . . <i backslash="\">`, - 9: `. . . . "&4"`, - 10: `. . "5"`, - 11: `. . <blockquote>`, - 12: `. . <br>`, - 13: `. . "6"`, - } - if len(nodes) != len(treeAsText) { - t.Fatal("len(nodes) != len(treeAsText)") - } - var stack [8]*Node - for i, line := range treeAsText { - level := 0 - for line[0] == '.' { - // Strip a leading ".\t". - line = line[2:] - level++ - } - n := nodes[i] - if level == 0 { - if stack[0] != nil { - t.Fatal("multiple root nodes") - } - stack[0] = n - } else { - stack[level-1].AppendChild(n) - stack[level] = n - for i := level + 1; i < len(stack); i++ { - stack[i] = nil - } - } - // At each stage of tree construction, we check all nodes for consistency. - for j, m := range nodes { - if err := checkNodeConsistency(m); err != nil { - t.Fatalf("i=%d, j=%d: %v", i, j, err) - } - } - } - - want := `<html><head></head><body>0<1<p id="A" foo="abc"def">` + - `2<b empty="">3</b><i backslash="\">&4</i></p>` + - `5<blockquote></blockquote><br/>6</body></html>` - b := new(bytes.Buffer) - if err := Render(b, nodes[0]); err != nil { - t.Fatal(err) - } - if got := b.String(); got != want { - t.Errorf("got vs want:\n%s\n%s\n", got, want) - } -} diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/go1.html b/Godeps/_workspace/src/golang.org/x/net/html/testdata/go1.html deleted file mode 100644 index a782cc71d..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/go1.html +++ /dev/null @@ -1,2237 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - - <title>Go 1 Release Notes - The Go Programming Language</title> - -<link type="text/css" rel="stylesheet" href="/doc/style.css"> -<script type="text/javascript" src="/doc/godocs.js"></script> - -<link rel="search" type="application/opensearchdescription+xml" title="godoc" href="/opensearch.xml" /> - -<script type="text/javascript"> -var _gaq = _gaq || []; -_gaq.push(["_setAccount", "UA-11222381-2"]); -_gaq.push(["_trackPageview"]); -</script> -</head> -<body> - -<div id="topbar"><div class="container wide"> - -<form method="GET" action="/search"> -<div id="menu"> -<a href="/doc/">Documents</a> -<a href="/ref/">References</a> -<a href="/pkg/">Packages</a> -<a href="/project/">The Project</a> -<a href="/help/">Help</a> -<input type="text" id="search" name="q" class="inactive" value="Search"> -</div> -<div id="heading"><a href="/">The Go Programming Language</a></div> -</form> - -</div></div> - -<div id="page" class="wide"> - - - <div id="plusone"><g:plusone size="small" annotation="none"></g:plusone></div> - <h1>Go 1 Release Notes</h1> - - - - -<div id="nav"></div> - - - - -<h2 id="introduction">Introduction to Go 1</h2> - -<p> -Go version 1, Go 1 for short, defines a language and a set of core libraries -that provide a stable foundation for creating reliable products, projects, and -publications. -</p> - -<p> -The driving motivation for Go 1 is stability for its users. People should be able to -write Go programs and expect that they will continue to compile and run without -change, on a time scale of years, including in production environments such as -Google App Engine. Similarly, people should be able to write books about Go, be -able to say which version of Go the book is describing, and have that version -number still be meaningful much later. -</p> - -<p> -Code that compiles in Go 1 should, with few exceptions, continue to compile and -run throughout the lifetime of that version, even as we issue updates and bug -fixes such as Go version 1.1, 1.2, and so on. Other than critical fixes, changes -made to the language and library for subsequent releases of Go 1 may -add functionality but will not break existing Go 1 programs. -<a href="go1compat.html">The Go 1 compatibility document</a> -explains the compatibility guidelines in more detail. -</p> - -<p> -Go 1 is a representation of Go as it used today, not a wholesale rethinking of -the language. We avoided designing new features and instead focused on cleaning -up problems and inconsistencies and improving portability. There are a number -changes to the Go language and packages that we had considered for some time and -prototyped but not released primarily because they are significant and -backwards-incompatible. Go 1 was an opportunity to get them out, which is -helpful for the long term, but also means that Go 1 introduces incompatibilities -for old programs. Fortunately, the <code>go</code> <code>fix</code> tool can -automate much of the work needed to bring programs up to the Go 1 standard. -</p> - -<p> -This document outlines the major changes in Go 1 that will affect programmers -updating existing code; its reference point is the prior release, r60 (tagged as -r60.3). It also explains how to update code from r60 to run under Go 1. -</p> - -<h2 id="language">Changes to the language</h2> - -<h3 id="append">Append</h3> - -<p> -The <code>append</code> predeclared variadic function makes it easy to grow a slice -by adding elements to the end. -A common use is to add bytes to the end of a byte slice when generating output. -However, <code>append</code> did not provide a way to append a string to a <code>[]byte</code>, -which is another common case. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/greeting := ..byte/` `/append.*hello/`}} ---> greeting := []byte{} - greeting = append(greeting, []byte("hello ")...)</pre> - -<p> -By analogy with the similar property of <code>copy</code>, Go 1 -permits a string to be appended (byte-wise) directly to a byte -slice, reducing the friction between strings and byte slices. -The conversion is no longer necessary: -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/append.*world/`}} ---> greeting = append(greeting, "world"...)</pre> - -<p> -<em>Updating</em>: -This is a new feature, so existing code needs no changes. -</p> - -<h3 id="close">Close</h3> - -<p> -The <code>close</code> predeclared function provides a mechanism -for a sender to signal that no more values will be sent. -It is important to the implementation of <code>for</code> <code>range</code> -loops over channels and is helpful in other situations. -Partly by design and partly because of race conditions that can occur otherwise, -it is intended for use only by the goroutine sending on the channel, -not by the goroutine receiving data. -However, before Go 1 there was no compile-time checking that <code>close</code> -was being used correctly. -</p> - -<p> -To close this gap, at least in part, Go 1 disallows <code>close</code> on receive-only channels. -Attempting to close such a channel is a compile-time error. -</p> - -<pre> - var c chan int - var csend chan<- int = c - var crecv <-chan int = c - close(c) // legal - close(csend) // legal - close(crecv) // illegal -</pre> - -<p> -<em>Updating</em>: -Existing code that attempts to close a receive-only channel was -erroneous even before Go 1 and should be fixed. The compiler will -now reject such code. -</p> - -<h3 id="literals">Composite literals</h3> - -<p> -In Go 1, a composite literal of array, slice, or map type can elide the -type specification for the elements' initializers if they are of pointer type. -All four of the initializations in this example are legal; the last one was illegal before Go 1. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/type Date struct/` `/STOP/`}} ---> type Date struct { - month string - day int - } - <span class="comment">// Struct values, fully qualified; always legal.</span> - holiday1 := []Date{ - Date{"Feb", 14}, - Date{"Nov", 11}, - Date{"Dec", 25}, - } - <span class="comment">// Struct values, type name elided; always legal.</span> - holiday2 := []Date{ - {"Feb", 14}, - {"Nov", 11}, - {"Dec", 25}, - } - <span class="comment">// Pointers, fully qualified, always legal.</span> - holiday3 := []*Date{ - &Date{"Feb", 14}, - &Date{"Nov", 11}, - &Date{"Dec", 25}, - } - <span class="comment">// Pointers, type name elided; legal in Go 1.</span> - holiday4 := []*Date{ - {"Feb", 14}, - {"Nov", 11}, - {"Dec", 25}, - }</pre> - -<p> -<em>Updating</em>: -This change has no effect on existing code, but the command -<code>gofmt</code> <code>-s</code> applied to existing source -will, among other things, elide explicit element types wherever permitted. -</p> - - -<h3 id="init">Goroutines during init</h3> - -<p> -The old language defined that <code>go</code> statements executed during initialization created goroutines but that they did not begin to run until initialization of the entire program was complete. -This introduced clumsiness in many places and, in effect, limited the utility -of the <code>init</code> construct: -if it was possible for another package to use the library during initialization, the library -was forced to avoid goroutines. -This design was done for reasons of simplicity and safety but, -as our confidence in the language grew, it seemed unnecessary. -Running goroutines during initialization is no more complex or unsafe than running them during normal execution. -</p> - -<p> -In Go 1, code that uses goroutines can be called from -<code>init</code> routines and global initialization expressions -without introducing a deadlock. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/PackageGlobal/` `/^}/`}} --->var PackageGlobal int - -func init() { - c := make(chan int) - go initializationFunction(c) - PackageGlobal = <-c -}</pre> - -<p> -<em>Updating</em>: -This is a new feature, so existing code needs no changes, -although it's possible that code that depends on goroutines not starting before <code>main</code> will break. -There was no such code in the standard repository. -</p> - -<h3 id="rune">The rune type</h3> - -<p> -The language spec allows the <code>int</code> type to be 32 or 64 bits wide, but current implementations set <code>int</code> to 32 bits even on 64-bit platforms. -It would be preferable to have <code>int</code> be 64 bits on 64-bit platforms. -(There are important consequences for indexing large slices.) -However, this change would waste space when processing Unicode characters with -the old language because the <code>int</code> type was also used to hold Unicode code points: each code point would waste an extra 32 bits of storage if <code>int</code> grew from 32 bits to 64. -</p> - -<p> -To make changing to 64-bit <code>int</code> feasible, -Go 1 introduces a new basic type, <code>rune</code>, to represent -individual Unicode code points. -It is an alias for <code>int32</code>, analogous to <code>byte</code> -as an alias for <code>uint8</code>. -</p> - -<p> -Character literals such as <code>'a'</code>, <code>'語'</code>, and <code>'\u0345'</code> -now have default type <code>rune</code>, -analogous to <code>1.0</code> having default type <code>float64</code>. -A variable initialized to a character constant will therefore -have type <code>rune</code> unless otherwise specified. -</p> - -<p> -Libraries have been updated to use <code>rune</code> rather than <code>int</code> -when appropriate. For instance, the functions <code>unicode.ToLower</code> and -relatives now take and return a <code>rune</code>. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/STARTRUNE/` `/ENDRUNE/`}} ---> delta := 'δ' <span class="comment">// delta has type rune.</span> - var DELTA rune - DELTA = unicode.ToUpper(delta) - epsilon := unicode.ToLower(DELTA + 1) - if epsilon != 'δ'+1 { - log.Fatal("inconsistent casing for Greek") - }</pre> - -<p> -<em>Updating</em>: -Most source code will be unaffected by this because the type inference from -<code>:=</code> initializers introduces the new type silently, and it propagates -from there. -Some code may get type errors that a trivial conversion will resolve. -</p> - -<h3 id="error">The error type</h3> - -<p> -Go 1 introduces a new built-in type, <code>error</code>, which has the following definition: -</p> - -<pre> - type error interface { - Error() string - } -</pre> - -<p> -Since the consequences of this type are all in the package library, -it is discussed <a href="#errors">below</a>. -</p> - -<h3 id="delete">Deleting from maps</h3> - -<p> -In the old language, to delete the entry with key <code>k</code> from map <code>m</code>, one wrote the statement, -</p> - -<pre> - m[k] = value, false -</pre> - -<p> -This syntax was a peculiar special case, the only two-to-one assignment. -It required passing a value (usually ignored) that is evaluated but discarded, -plus a boolean that was nearly always the constant <code>false</code>. -It did the job but was odd and a point of contention. -</p> - -<p> -In Go 1, that syntax has gone; instead there is a new built-in -function, <code>delete</code>. The call -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/delete\(m, k\)/`}} ---> delete(m, k)</pre> - -<p> -will delete the map entry retrieved by the expression <code>m[k]</code>. -There is no return value. Deleting a non-existent entry is a no-op. -</p> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will convert expressions of the form <code>m[k] = value, -false</code> into <code>delete(m, k)</code> when it is clear that -the ignored value can be safely discarded from the program and -<code>false</code> refers to the predefined boolean constant. -The fix tool -will flag other uses of the syntax for inspection by the programmer. -</p> - -<h3 id="iteration">Iterating in maps</h3> - -<p> -The old language specification did not define the order of iteration for maps, -and in practice it differed across hardware platforms. -This caused tests that iterated over maps to be fragile and non-portable, with the -unpleasant property that a test might always pass on one machine but break on another. -</p> - -<p> -In Go 1, the order in which elements are visited when iterating -over a map using a <code>for</code> <code>range</code> statement -is defined to be unpredictable, even if the same loop is run multiple -times with the same map. -Code should not assume that the elements are visited in any particular order. -</p> - -<p> -This change means that code that depends on iteration order is very likely to break early and be fixed long before it becomes a problem. -Just as important, it allows the map implementation to ensure better map balancing even when programs are using range loops to select an element from a map. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/Sunday/` `/^ }/`}} ---> m := map[string]int{"Sunday": 0, "Monday": 1} - for name, value := range m { - <span class="comment">// This loop should not assume Sunday will be visited first.</span> - f(name, value) - }</pre> - -<p> -<em>Updating</em>: -This is one change where tools cannot help. Most existing code -will be unaffected, but some programs may break or misbehave; we -recommend manual checking of all range statements over maps to -verify they do not depend on iteration order. There were a few such -examples in the standard repository; they have been fixed. -Note that it was already incorrect to depend on the iteration order, which -was unspecified. This change codifies the unpredictability. -</p> - -<h3 id="multiple_assignment">Multiple assignment</h3> - -<p> -The language specification has long guaranteed that in assignments -the right-hand-side expressions are all evaluated before any left-hand-side expressions are assigned. -To guarantee predictable behavior, -Go 1 refines the specification further. -</p> - -<p> -If the left-hand side of the assignment -statement contains expressions that require evaluation, such as -function calls or array indexing operations, these will all be done -using the usual left-to-right rule before any variables are assigned -their value. Once everything is evaluated, the actual assignments -proceed in left-to-right order. -</p> - -<p> -These examples illustrate the behavior. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/sa :=/` `/then sc.0. = 2/`}} ---> sa := []int{1, 2, 3} - i := 0 - i, sa[i] = 1, 2 <span class="comment">// sets i = 1, sa[0] = 2</span> - - sb := []int{1, 2, 3} - j := 0 - sb[j], j = 2, 1 <span class="comment">// sets sb[0] = 2, j = 1</span> - - sc := []int{1, 2, 3} - sc[0], sc[0] = 1, 2 <span class="comment">// sets sc[0] = 1, then sc[0] = 2 (so sc[0] = 2 at end)</span></pre> - -<p> -<em>Updating</em>: -This is one change where tools cannot help, but breakage is unlikely. -No code in the standard repository was broken by this change, and code -that depended on the previous unspecified behavior was already incorrect. -</p> - -<h3 id="shadowing">Returns and shadowed variables</h3> - -<p> -A common mistake is to use <code>return</code> (without arguments) after an assignment to a variable that has the same name as a result variable but is not the same variable. -This situation is called <em>shadowing</em>: the result variable has been shadowed by another variable with the same name declared in an inner scope. -</p> - -<p> -In functions with named return values, -the Go 1 compilers disallow return statements without arguments if any of the named return values is shadowed at the point of the return statement. -(It isn't part of the specification, because this is one area we are still exploring; -the situation is analogous to the compilers rejecting functions that do not end with an explicit return statement.) -</p> - -<p> -This function implicitly returns a shadowed return value and will be rejected by the compiler: -</p> - -<pre> - func Bug() (i, j, k int) { - for i = 0; i < 5; i++ { - for j := 0; j < 5; j++ { // Redeclares j. - k += i*j - if k > 100 { - return // Rejected: j is shadowed here. - } - } - } - return // OK: j is not shadowed here. - } -</pre> - -<p> -<em>Updating</em>: -Code that shadows return values in this way will be rejected by the compiler and will need to be fixed by hand. -The few cases that arose in the standard repository were mostly bugs. -</p> - -<h3 id="unexported">Copying structs with unexported fields</h3> - -<p> -The old language did not allow a package to make a copy of a struct value containing unexported fields belonging to a different package. -There was, however, a required exception for a method receiver; -also, the implementations of <code>copy</code> and <code>append</code> have never honored the restriction. -</p> - -<p> -Go 1 will allow packages to copy struct values containing unexported fields from other packages. -Besides resolving the inconsistency, -this change admits a new kind of API: a package can return an opaque value without resorting to a pointer or interface. -The new implementations of <code>time.Time</code> and -<code>reflect.Value</code> are examples of types taking advantage of this new property. -</p> - -<p> -As an example, if package <code>p</code> includes the definitions, -</p> - -<pre> - type Struct struct { - Public int - secret int - } - func NewStruct(a int) Struct { // Note: not a pointer. - return Struct{a, f(a)} - } - func (s Struct) String() string { - return fmt.Sprintf("{%d (secret %d)}", s.Public, s.secret) - } -</pre> - -<p> -a package that imports <code>p</code> can assign and copy values of type -<code>p.Struct</code> at will. -Behind the scenes the unexported fields will be assigned and copied just -as if they were exported, -but the client code will never be aware of them. The code -</p> - -<pre> - import "p" - - myStruct := p.NewStruct(23) - copyOfMyStruct := myStruct - fmt.Println(myStruct, copyOfMyStruct) -</pre> - -<p> -will show that the secret field of the struct has been copied to the new value. -</p> - -<p> -<em>Updating</em>: -This is a new feature, so existing code needs no changes. -</p> - -<h3 id="equality">Equality</h3> - -<p> -Before Go 1, the language did not define equality on struct and array values. -This meant, -among other things, that structs and arrays could not be used as map keys. -On the other hand, Go did define equality on function and map values. -Function equality was problematic in the presence of closures -(when are two closures equal?) -while map equality compared pointers, not the maps' content, which was usually -not what the user would want. -</p> - -<p> -Go 1 addressed these issues. -First, structs and arrays can be compared for equality and inequality -(<code>==</code> and <code>!=</code>), -and therefore be used as map keys, -provided they are composed from elements for which equality is also defined, -using element-wise comparison. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/type Day struct/` `/Printf/`}} ---> type Day struct { - long string - short string - } - Christmas := Day{"Christmas", "XMas"} - Thanksgiving := Day{"Thanksgiving", "Turkey"} - holiday := map[Day]bool{ - Christmas: true, - Thanksgiving: true, - } - fmt.Printf("Christmas is a holiday: %t\n", holiday[Christmas])</pre> - -<p> -Second, Go 1 removes the definition of equality for function values, -except for comparison with <code>nil</code>. -Finally, map equality is gone too, also except for comparison with <code>nil</code>. -</p> - -<p> -Note that equality is still undefined for slices, for which the -calculation is in general infeasible. Also note that the ordered -comparison operators (<code><</code> <code><=</code> -<code>></code> <code>>=</code>) are still undefined for -structs and arrays. - -<p> -<em>Updating</em>: -Struct and array equality is a new feature, so existing code needs no changes. -Existing code that depends on function or map equality will be -rejected by the compiler and will need to be fixed by hand. -Few programs will be affected, but the fix may require some -redesign. -</p> - -<h2 id="packages">The package hierarchy</h2> - -<p> -Go 1 addresses many deficiencies in the old standard library and -cleans up a number of packages, making them more internally consistent -and portable. -</p> - -<p> -This section describes how the packages have been rearranged in Go 1. -Some have moved, some have been renamed, some have been deleted. -New packages are described in later sections. -</p> - -<h3 id="hierarchy">The package hierarchy</h3> - -<p> -Go 1 has a rearranged package hierarchy that groups related items -into subdirectories. For instance, <code>utf8</code> and -<code>utf16</code> now occupy subdirectories of <code>unicode</code>. -Also, <a href="#subrepo">some packages</a> have moved into -subrepositories of -<a href="http://code.google.com/p/go"><code>code.google.com/p/go</code></a> -while <a href="#deleted">others</a> have been deleted outright. -</p> - -<table class="codetable" frame="border" summary="Moved packages"> -<colgroup align="left" width="60%"></colgroup> -<colgroup align="left" width="40%"></colgroup> -<tr> -<th align="left">Old path</th> -<th align="left">New path</th> -</tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>asn1</td> <td>encoding/asn1</td></tr> -<tr><td>csv</td> <td>encoding/csv</td></tr> -<tr><td>gob</td> <td>encoding/gob</td></tr> -<tr><td>json</td> <td>encoding/json</td></tr> -<tr><td>xml</td> <td>encoding/xml</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>exp/template/html</td> <td>html/template</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>big</td> <td>math/big</td></tr> -<tr><td>cmath</td> <td>math/cmplx</td></tr> -<tr><td>rand</td> <td>math/rand</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>http</td> <td>net/http</td></tr> -<tr><td>http/cgi</td> <td>net/http/cgi</td></tr> -<tr><td>http/fcgi</td> <td>net/http/fcgi</td></tr> -<tr><td>http/httptest</td> <td>net/http/httptest</td></tr> -<tr><td>http/pprof</td> <td>net/http/pprof</td></tr> -<tr><td>mail</td> <td>net/mail</td></tr> -<tr><td>rpc</td> <td>net/rpc</td></tr> -<tr><td>rpc/jsonrpc</td> <td>net/rpc/jsonrpc</td></tr> -<tr><td>smtp</td> <td>net/smtp</td></tr> -<tr><td>url</td> <td>net/url</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>exec</td> <td>os/exec</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>scanner</td> <td>text/scanner</td></tr> -<tr><td>tabwriter</td> <td>text/tabwriter</td></tr> -<tr><td>template</td> <td>text/template</td></tr> -<tr><td>template/parse</td> <td>text/template/parse</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>utf8</td> <td>unicode/utf8</td></tr> -<tr><td>utf16</td> <td>unicode/utf16</td></tr> -</table> - -<p> -Note that the package names for the old <code>cmath</code> and -<code>exp/template/html</code> packages have changed to <code>cmplx</code> -and <code>template</code>. -</p> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update all imports and package renames for packages that -remain inside the standard repository. Programs that import packages -that are no longer in the standard repository will need to be edited -by hand. -</p> - -<h3 id="exp">The package tree exp</h3> - -<p> -Because they are not standardized, the packages under the <code>exp</code> directory will not be available in the -standard Go 1 release distributions, although they will be available in source code form -in <a href="http://code.google.com/p/go/">the repository</a> for -developers who wish to use them. -</p> - -<p> -Several packages have moved under <code>exp</code> at the time of Go 1's release: -</p> - -<ul> -<li><code>ebnf</code></li> -<li><code>html</code><sup>†</sup></li> -<li><code>go/types</code></li> -</ul> - -<p> -(<sup>†</sup>The <code>EscapeString</code> and <code>UnescapeString</code> types remain -in package <code>html</code>.) -</p> - -<p> -All these packages are available under the same names, with the prefix <code>exp/</code>: <code>exp/ebnf</code> etc. -</p> - -<p> -Also, the <code>utf8.String</code> type has been moved to its own package, <code>exp/utf8string</code>. -</p> - -<p> -Finally, the <code>gotype</code> command now resides in <code>exp/gotype</code>, while -<code>ebnflint</code> is now in <code>exp/ebnflint</code>. -If they are installed, they now reside in <code>$GOROOT/bin/tool</code>. -</p> - -<p> -<em>Updating</em>: -Code that uses packages in <code>exp</code> will need to be updated by hand, -or else compiled from an installation that has <code>exp</code> available. -The <code>go</code> <code>fix</code> tool or the compiler will complain about such uses. -</p> - -<h3 id="old">The package tree old</h3> - -<p> -Because they are deprecated, the packages under the <code>old</code> directory will not be available in the -standard Go 1 release distributions, although they will be available in source code form for -developers who wish to use them. -</p> - -<p> -The packages in their new locations are: -</p> - -<ul> -<li><code>old/netchan</code></li> -<li><code>old/regexp</code></li> -<li><code>old/template</code></li> -</ul> - -<p> -<em>Updating</em>: -Code that uses packages now in <code>old</code> will need to be updated by hand, -or else compiled from an installation that has <code>old</code> available. -The <code>go</code> <code>fix</code> tool will warn about such uses. -</p> - -<h3 id="deleted">Deleted packages</h3> - -<p> -Go 1 deletes several packages outright: -</p> - -<ul> -<li><code>container/vector</code></li> -<li><code>exp/datafmt</code></li> -<li><code>go/typechecker</code></li> -<li><code>try</code></li> -</ul> - -<p> -and also the command <code>gotry</code>. -</p> - -<p> -<em>Updating</em>: -Code that uses <code>container/vector</code> should be updated to use -slices directly. See -<a href="http://code.google.com/p/go-wiki/wiki/SliceTricks">the Go -Language Community Wiki</a> for some suggestions. -Code that uses the other packages (there should be almost zero) will need to be rethought. -</p> - -<h3 id="subrepo">Packages moving to subrepositories</h3> - -<p> -Go 1 has moved a number of packages into other repositories, usually sub-repositories of -<a href="http://code.google.com/p/go/">the main Go repository</a>. -This table lists the old and new import paths: - -<table class="codetable" frame="border" summary="Sub-repositories"> -<colgroup align="left" width="40%"></colgroup> -<colgroup align="left" width="60%"></colgroup> -<tr> -<th align="left">Old</th> -<th align="left">New</th> -</tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>crypto/bcrypt</td> <td>code.google.com/p/go.crypto/bcrypt</tr> -<tr><td>crypto/blowfish</td> <td>code.google.com/p/go.crypto/blowfish</tr> -<tr><td>crypto/cast5</td> <td>code.google.com/p/go.crypto/cast5</tr> -<tr><td>crypto/md4</td> <td>code.google.com/p/go.crypto/md4</tr> -<tr><td>crypto/ocsp</td> <td>code.google.com/p/go.crypto/ocsp</tr> -<tr><td>crypto/openpgp</td> <td>code.google.com/p/go.crypto/openpgp</tr> -<tr><td>crypto/openpgp/armor</td> <td>code.google.com/p/go.crypto/openpgp/armor</tr> -<tr><td>crypto/openpgp/elgamal</td> <td>code.google.com/p/go.crypto/openpgp/elgamal</tr> -<tr><td>crypto/openpgp/errors</td> <td>code.google.com/p/go.crypto/openpgp/errors</tr> -<tr><td>crypto/openpgp/packet</td> <td>code.google.com/p/go.crypto/openpgp/packet</tr> -<tr><td>crypto/openpgp/s2k</td> <td>code.google.com/p/go.crypto/openpgp/s2k</tr> -<tr><td>crypto/ripemd160</td> <td>code.google.com/p/go.crypto/ripemd160</tr> -<tr><td>crypto/twofish</td> <td>code.google.com/p/go.crypto/twofish</tr> -<tr><td>crypto/xtea</td> <td>code.google.com/p/go.crypto/xtea</tr> -<tr><td>exp/ssh</td> <td>code.google.com/p/go.crypto/ssh</tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>image/bmp</td> <td>code.google.com/p/go.image/bmp</tr> -<tr><td>image/tiff</td> <td>code.google.com/p/go.image/tiff</tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>net/dict</td> <td>code.google.com/p/go.net/dict</tr> -<tr><td>net/websocket</td> <td>code.google.com/p/go.net/websocket</tr> -<tr><td>exp/spdy</td> <td>code.google.com/p/go.net/spdy</tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>encoding/git85</td> <td>code.google.com/p/go.codereview/git85</tr> -<tr><td>patch</td> <td>code.google.com/p/go.codereview/patch</tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>exp/wingui</td> <td>code.google.com/p/gowingui</tr> -</table> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update imports of these packages to use the new import paths. -Installations that depend on these packages will need to install them using -a <code>go get</code> command. -</p> - -<h2 id="major">Major changes to the library</h2> - -<p> -This section describes significant changes to the core libraries, the ones that -affect the most programs. -</p> - -<h3 id="errors">The error type and errors package</h3> - -<p> -The placement of <code>os.Error</code> in package <code>os</code> is mostly historical: errors first came up when implementing package <code>os</code>, and they seemed system-related at the time. -Since then it has become clear that errors are more fundamental than the operating system. For example, it would be nice to use <code>Errors</code> in packages that <code>os</code> depends on, like <code>syscall</code>. -Also, having <code>Error</code> in <code>os</code> introduces many dependencies on <code>os</code> that would otherwise not exist. -</p> - -<p> -Go 1 solves these problems by introducing a built-in <code>error</code> interface type and a separate <code>errors</code> package (analogous to <code>bytes</code> and <code>strings</code>) that contains utility functions. -It replaces <code>os.NewError</code> with -<a href="/pkg/errors/#New"><code>errors.New</code></a>, -giving errors a more central place in the environment. -</p> - -<p> -So the widely-used <code>String</code> method does not cause accidental satisfaction -of the <code>error</code> interface, the <code>error</code> interface uses instead -the name <code>Error</code> for that method: -</p> - -<pre> - type error interface { - Error() string - } -</pre> - -<p> -The <code>fmt</code> library automatically invokes <code>Error</code>, as it already -does for <code>String</code>, for easy printing of error values. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/START ERROR EXAMPLE/` `/END ERROR EXAMPLE/`}} --->type SyntaxError struct { - File string - Line int - Message string -} - -func (se *SyntaxError) Error() string { - return fmt.Sprintf("%s:%d: %s", se.File, se.Line, se.Message) -}</pre> - -<p> -All standard packages have been updated to use the new interface; the old <code>os.Error</code> is gone. -</p> - -<p> -A new package, <a href="/pkg/errors/"><code>errors</code></a>, contains the function -</p> - -<pre> -func New(text string) error -</pre> - -<p> -to turn a string into an error. It replaces the old <code>os.NewError</code>. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/ErrSyntax/`}} ---> var ErrSyntax = errors.New("syntax error")</pre> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update almost all code affected by the change. -Code that defines error types with a <code>String</code> method will need to be updated -by hand to rename the methods to <code>Error</code>. -</p> - -<h3 id="errno">System call errors</h3> - -<p> -The old <code>syscall</code> package, which predated <code>os.Error</code> -(and just about everything else), -returned errors as <code>int</code> values. -In turn, the <code>os</code> package forwarded many of these errors, such -as <code>EINVAL</code>, but using a different set of errors on each platform. -This behavior was unpleasant and unportable. -</p> - -<p> -In Go 1, the -<a href="/pkg/syscall/"><code>syscall</code></a> -package instead returns an <code>error</code> for system call errors. -On Unix, the implementation is done by a -<a href="/pkg/syscall/#Errno"><code>syscall.Errno</code></a> type -that satisfies <code>error</code> and replaces the old <code>os.Errno</code>. -</p> - -<p> -The changes affecting <code>os.EINVAL</code> and relatives are -described <a href="#os">elsewhere</a>. - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update almost all code affected by the change. -Regardless, most code should use the <code>os</code> package -rather than <code>syscall</code> and so will be unaffected. -</p> - -<h3 id="time">Time</h3> - -<p> -Time is always a challenge to support well in a programming language. -The old Go <code>time</code> package had <code>int64</code> units, no -real type safety, -and no distinction between absolute times and durations. -</p> - -<p> -One of the most sweeping changes in the Go 1 library is therefore a -complete redesign of the -<a href="/pkg/time/"><code>time</code></a> package. -Instead of an integer number of nanoseconds as an <code>int64</code>, -and a separate <code>*time.Time</code> type to deal with human -units such as hours and years, -there are now two fundamental types: -<a href="/pkg/time/#Time"><code>time.Time</code></a> -(a value, so the <code>*</code> is gone), which represents a moment in time; -and <a href="/pkg/time/#Duration"><code>time.Duration</code></a>, -which represents an interval. -Both have nanosecond resolution. -A <code>Time</code> can represent any time into the ancient -past and remote future, while a <code>Duration</code> can -span plus or minus only about 290 years. -There are methods on these types, plus a number of helpful -predefined constant durations such as <code>time.Second</code>. -</p> - -<p> -Among the new methods are things like -<a href="/pkg/time/#Time.Add"><code>Time.Add</code></a>, -which adds a <code>Duration</code> to a <code>Time</code>, and -<a href="/pkg/time/#Time.Sub"><code>Time.Sub</code></a>, -which subtracts two <code>Times</code> to yield a <code>Duration</code>. -</p> - -<p> -The most important semantic change is that the Unix epoch (Jan 1, 1970) is now -relevant only for those functions and methods that mention Unix: -<a href="/pkg/time/#Unix"><code>time.Unix</code></a> -and the <a href="/pkg/time/#Time.Unix"><code>Unix</code></a> -and <a href="/pkg/time/#Time.UnixNano"><code>UnixNano</code></a> methods -of the <code>Time</code> type. -In particular, -<a href="/pkg/time/#Now"><code>time.Now</code></a> -returns a <code>time.Time</code> value rather than, in the old -API, an integer nanosecond count since the Unix epoch. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/sleepUntil/` `/^}/`}} ---><span class="comment">// sleepUntil sleeps until the specified time. It returns immediately if it's too late.</span> -func sleepUntil(wakeup time.Time) { - now := time.Now() <span class="comment">// A Time.</span> - if !wakeup.After(now) { - return - } - delta := wakeup.Sub(now) <span class="comment">// A Duration.</span> - fmt.Printf("Sleeping for %.3fs\n", delta.Seconds()) - time.Sleep(delta) -}</pre> - -<p> -The new types, methods, and constants have been propagated through -all the standard packages that use time, such as <code>os</code> and -its representation of file time stamps. -</p> - -<p> -<em>Updating</em>: -The <code>go</code> <code>fix</code> tool will update many uses of the old <code>time</code> package to use the new -types and methods, although it does not replace values such as <code>1e9</code> -representing nanoseconds per second. -Also, because of type changes in some of the values that arise, -some of the expressions rewritten by the fix tool may require -further hand editing; in such cases the rewrite will include -the correct function or method for the old functionality, but -may have the wrong type or require further analysis. -</p> - -<h2 id="minor">Minor changes to the library</h2> - -<p> -This section describes smaller changes, such as those to less commonly -used packages or that affect -few programs beyond the need to run <code>go</code> <code>fix</code>. -This category includes packages that are new in Go 1. -Collectively they improve portability, regularize behavior, and -make the interfaces more modern and Go-like. -</p> - -<h3 id="archive_zip">The archive/zip package</h3> - -<p> -In Go 1, <a href="/pkg/archive/zip/#Writer"><code>*zip.Writer</code></a> no -longer has a <code>Write</code> method. Its presence was a mistake. -</p> - -<p> -<em>Updating</em>: -What little code is affected will be caught by the compiler and must be updated by hand. -</p> - -<h3 id="bufio">The bufio package</h3> - -<p> -In Go 1, <a href="/pkg/bufio/#NewReaderSize"><code>bufio.NewReaderSize</code></a> -and -<a href="/pkg/bufio/#NewWriterSize"><code>bufio.NewWriterSize</code></a> -functions no longer return an error for invalid sizes. -If the argument size is too small or invalid, it is adjusted. -</p> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update calls that assign the error to _. -Calls that aren't fixed will be caught by the compiler and must be updated by hand. -</p> - -<h3 id="compress">The compress/flate, compress/gzip and compress/zlib packages</h3> - -<p> -In Go 1, the <code>NewWriterXxx</code> functions in -<a href="/pkg/compress/flate"><code>compress/flate</code></a>, -<a href="/pkg/compress/gzip"><code>compress/gzip</code></a> and -<a href="/pkg/compress/zlib"><code>compress/zlib</code></a> -all return <code>(*Writer, error)</code> if they take a compression level, -and <code>*Writer</code> otherwise. Package <code>gzip</code>'s -<code>Compressor</code> and <code>Decompressor</code> types have been renamed -to <code>Writer</code> and <code>Reader</code>. Package <code>flate</code>'s -<code>WrongValueError</code> type has been removed. -</p> - -<p> -<em>Updating</em> -Running <code>go</code> <code>fix</code> will update old names and calls that assign the error to _. -Calls that aren't fixed will be caught by the compiler and must be updated by hand. -</p> - -<h3 id="crypto_aes_des">The crypto/aes and crypto/des packages</h3> - -<p> -In Go 1, the <code>Reset</code> method has been removed. Go does not guarantee -that memory is not copied and therefore this method was misleading. -</p> - -<p> -The cipher-specific types <code>*aes.Cipher</code>, <code>*des.Cipher</code>, -and <code>*des.TripleDESCipher</code> have been removed in favor of -<code>cipher.Block</code>. -</p> - -<p> -<em>Updating</em>: -Remove the calls to Reset. Replace uses of the specific cipher types with -cipher.Block. -</p> - -<h3 id="crypto_elliptic">The crypto/elliptic package</h3> - -<p> -In Go 1, <a href="/pkg/crypto/elliptic/#Curve"><code>elliptic.Curve</code></a> -has been made an interface to permit alternative implementations. The curve -parameters have been moved to the -<a href="/pkg/crypto/elliptic/#CurveParams"><code>elliptic.CurveParams</code></a> -structure. -</p> - -<p> -<em>Updating</em>: -Existing users of <code>*elliptic.Curve</code> will need to change to -simply <code>elliptic.Curve</code>. Calls to <code>Marshal</code>, -<code>Unmarshal</code> and <code>GenerateKey</code> are now functions -in <code>crypto/elliptic</code> that take an <code>elliptic.Curve</code> -as their first argument. -</p> - -<h3 id="crypto_hmac">The crypto/hmac package</h3> - -<p> -In Go 1, the hash-specific functions, such as <code>hmac.NewMD5</code>, have -been removed from <code>crypto/hmac</code>. Instead, <code>hmac.New</code> takes -a function that returns a <code>hash.Hash</code>, such as <code>md5.New</code>. -</p> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will perform the needed changes. -</p> - -<h3 id="crypto_x509">The crypto/x509 package</h3> - -<p> -In Go 1, the -<a href="/pkg/crypto/x509/#CreateCertificate"><code>CreateCertificate</code></a> -and -<a href="/pkg/crypto/x509/#CreateCRL"><code>CreateCRL</code></a> -functions in <code>crypto/x509</code> have been altered to take an -<code>interface{}</code> where they previously took a <code>*rsa.PublicKey</code> -or <code>*rsa.PrivateKey</code>. This will allow other public key algorithms -to be implemented in the future. -</p> - -<p> -<em>Updating</em>: -No changes will be needed. -</p> - -<h3 id="encoding_binary">The encoding/binary package</h3> - -<p> -In Go 1, the <code>binary.TotalSize</code> function has been replaced by -<a href="/pkg/encoding/binary/#Size"><code>Size</code></a>, -which takes an <code>interface{}</code> argument rather than -a <code>reflect.Value</code>. -</p> - -<p> -<em>Updating</em>: -What little code is affected will be caught by the compiler and must be updated by hand. -</p> - -<h3 id="encoding_xml">The encoding/xml package</h3> - -<p> -In Go 1, the <a href="/pkg/encoding/xml/"><code>xml</code></a> package -has been brought closer in design to the other marshaling packages such -as <a href="/pkg/encoding/gob/"><code>encoding/gob</code></a>. -</p> - -<p> -The old <code>Parser</code> type is renamed -<a href="/pkg/encoding/xml/#Decoder"><code>Decoder</code></a> and has a new -<a href="/pkg/encoding/xml/#Decoder.Decode"><code>Decode</code></a> method. An -<a href="/pkg/encoding/xml/#Encoder"><code>Encoder</code></a> type was also introduced. -</p> - -<p> -The functions <a href="/pkg/encoding/xml/#Marshal"><code>Marshal</code></a> -and <a href="/pkg/encoding/xml/#Unmarshal"><code>Unmarshal</code></a> -work with <code>[]byte</code> values now. To work with streams, -use the new <a href="/pkg/encoding/xml/#Encoder"><code>Encoder</code></a> -and <a href="/pkg/encoding/xml/#Decoder"><code>Decoder</code></a> types. -</p> - -<p> -When marshaling or unmarshaling values, the format of supported flags in -field tags has changed to be closer to the -<a href="/pkg/encoding/json"><code>json</code></a> package -(<code>`xml:"name,flag"`</code>). The matching done between field tags, field -names, and the XML attribute and element names is now case-sensitive. -The <code>XMLName</code> field tag, if present, must also match the name -of the XML element being marshaled. -</p> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update most uses of the package except for some calls to -<code>Unmarshal</code>. Special care must be taken with field tags, -since the fix tool will not update them and if not fixed by hand they will -misbehave silently in some cases. For example, the old -<code>"attr"</code> is now written <code>",attr"</code> while plain -<code>"attr"</code> remains valid but with a different meaning. -</p> - -<h3 id="expvar">The expvar package</h3> - -<p> -In Go 1, the <code>RemoveAll</code> function has been removed. -The <code>Iter</code> function and Iter method on <code>*Map</code> have -been replaced by -<a href="/pkg/expvar/#Do"><code>Do</code></a> -and -<a href="/pkg/expvar/#Map.Do"><code>(*Map).Do</code></a>. -</p> - -<p> -<em>Updating</em>: -Most code using <code>expvar</code> will not need changing. The rare code that used -<code>Iter</code> can be updated to pass a closure to <code>Do</code> to achieve the same effect. -</p> - -<h3 id="flag">The flag package</h3> - -<p> -In Go 1, the interface <a href="/pkg/flag/#Value"><code>flag.Value</code></a> has changed slightly. -The <code>Set</code> method now returns an <code>error</code> instead of -a <code>bool</code> to indicate success or failure. -</p> - -<p> -There is also a new kind of flag, <code>Duration</code>, to support argument -values specifying time intervals. -Values for such flags must be given units, just as <code>time.Duration</code> -formats them: <code>10s</code>, <code>1h30m</code>, etc. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/timeout/`}} --->var timeout = flag.Duration("timeout", 30*time.Second, "how long to wait for completion")</pre> - -<p> -<em>Updating</em>: -Programs that implement their own flags will need minor manual fixes to update their -<code>Set</code> methods. -The <code>Duration</code> flag is new and affects no existing code. -</p> - - -<h3 id="go">The go/* packages</h3> - -<p> -Several packages under <code>go</code> have slightly revised APIs. -</p> - -<p> -A concrete <code>Mode</code> type was introduced for configuration mode flags -in the packages -<a href="/pkg/go/scanner/"><code>go/scanner</code></a>, -<a href="/pkg/go/parser/"><code>go/parser</code></a>, -<a href="/pkg/go/printer/"><code>go/printer</code></a>, and -<a href="/pkg/go/doc/"><code>go/doc</code></a>. -</p> - -<p> -The modes <code>AllowIllegalChars</code> and <code>InsertSemis</code> have been removed -from the <a href="/pkg/go/scanner/"><code>go/scanner</code></a> package. They were mostly -useful for scanning text other then Go source files. Instead, the -<a href="/pkg/text/scanner/"><code>text/scanner</code></a> package should be used -for that purpose. -</p> - -<p> -The <a href="/pkg/go/scanner/#ErrorHandler"><code>ErrorHandler</code></a> provided -to the scanner's <a href="/pkg/go/scanner/#Scanner.Init"><code>Init</code></a> method is -now simply a function rather than an interface. The <code>ErrorVector</code> type has -been removed in favor of the (existing) <a href="/pkg/go/scanner/#ErrorList"><code>ErrorList</code></a> -type, and the <code>ErrorVector</code> methods have been migrated. Instead of embedding -an <code>ErrorVector</code> in a client of the scanner, now a client should maintain -an <code>ErrorList</code>. -</p> - -<p> -The set of parse functions provided by the <a href="/pkg/go/parser/"><code>go/parser</code></a> -package has been reduced to the primary parse function -<a href="/pkg/go/parser/#ParseFile"><code>ParseFile</code></a>, and a couple of -convenience functions <a href="/pkg/go/parser/#ParseDir"><code>ParseDir</code></a> -and <a href="/pkg/go/parser/#ParseExpr"><code>ParseExpr</code></a>. -</p> - -<p> -The <a href="/pkg/go/printer/"><code>go/printer</code></a> package supports an additional -configuration mode <a href="/pkg/go/printer/#Mode"><code>SourcePos</code></a>; -if set, the printer will emit <code>//line</code> comments such that the generated -output contains the original source code position information. The new type -<a href="/pkg/go/printer/#CommentedNode"><code>CommentedNode</code></a> can be -used to provide comments associated with an arbitrary -<a href="/pkg/go/ast/#Node"><code>ast.Node</code></a> (until now only -<a href="/pkg/go/ast/#File"><code>ast.File</code></a> carried comment information). -</p> - -<p> -The type names of the <a href="/pkg/go/doc/"><code>go/doc</code></a> package have been -streamlined by removing the <code>Doc</code> suffix: <code>PackageDoc</code> -is now <code>Package</code>, <code>ValueDoc</code> is <code>Value</code>, etc. -Also, all types now consistently have a <code>Name</code> field (or <code>Names</code>, -in the case of type <code>Value</code>) and <code>Type.Factories</code> has become -<code>Type.Funcs</code>. -Instead of calling <code>doc.NewPackageDoc(pkg, importpath)</code>, -documentation for a package is created with: -</p> - -<pre> - doc.New(pkg, importpath, mode) -</pre> - -<p> -where the new <code>mode</code> parameter specifies the operation mode: -if set to <a href="/pkg/go/doc/#AllDecls"><code>AllDecls</code></a>, all declarations -(not just exported ones) are considered. -The function <code>NewFileDoc</code> was removed, and the function -<code>CommentText</code> has become the method -<a href="/pkg/go/ast/#Text"><code>Text</code></a> of -<a href="/pkg/go/ast/#CommentGroup"><code>ast.CommentGroup</code></a>. -</p> - -<p> -In package <a href="/pkg/go/token/"><code>go/token</code></a>, the -<a href="/pkg/go/token/#FileSet"><code>token.FileSet</code></a> method <code>Files</code> -(which originally returned a channel of <code>*token.File</code>s) has been replaced -with the iterator <a href="/pkg/go/token/#FileSet.Iterate"><code>Iterate</code></a> that -accepts a function argument instead. -</p> - -<p> -In package <a href="/pkg/go/build/"><code>go/build</code></a>, the API -has been nearly completely replaced. -The package still computes Go package information -but it does not run the build: the <code>Cmd</code> and <code>Script</code> -types are gone. -(To build code, use the new -<a href="/cmd/go/"><code>go</code></a> command instead.) -The <code>DirInfo</code> type is now named -<a href="/pkg/go/build/#Package"><code>Package</code></a>. -<code>FindTree</code> and <code>ScanDir</code> are replaced by -<a href="/pkg/go/build/#Import"><code>Import</code></a> -and -<a href="/pkg/go/build/#ImportDir"><code>ImportDir</code></a>. -</p> - -<p> -<em>Updating</em>: -Code that uses packages in <code>go</code> will have to be updated by hand; the -compiler will reject incorrect uses. Templates used in conjunction with any of the -<code>go/doc</code> types may need manual fixes; the renamed fields will lead -to run-time errors. -</p> - -<h3 id="hash">The hash package</h3> - -<p> -In Go 1, the definition of <a href="/pkg/hash/#Hash"><code>hash.Hash</code></a> includes -a new method, <code>BlockSize</code>. This new method is used primarily in the -cryptographic libraries. -</p> - -<p> -The <code>Sum</code> method of the -<a href="/pkg/hash/#Hash"><code>hash.Hash</code></a> interface now takes a -<code>[]byte</code> argument, to which the hash value will be appended. -The previous behavior can be recreated by adding a <code>nil</code> argument to the call. -</p> - -<p> -<em>Updating</em>: -Existing implementations of <code>hash.Hash</code> will need to add a -<code>BlockSize</code> method. Hashes that process the input one byte at -a time can implement <code>BlockSize</code> to return 1. -Running <code>go</code> <code>fix</code> will update calls to the <code>Sum</code> methods of the various -implementations of <code>hash.Hash</code>. -</p> - -<p> -<em>Updating</em>: -Since the package's functionality is new, no updating is necessary. -</p> - -<h3 id="http">The http package</h3> - -<p> -In Go 1 the <a href="/pkg/net/http/"><code>http</code></a> package is refactored, -putting some of the utilities into a -<a href="/pkg/net/http/httputil/"><code>httputil</code></a> subdirectory. -These pieces are only rarely needed by HTTP clients. -The affected items are: -</p> - -<ul> -<li>ClientConn</li> -<li>DumpRequest</li> -<li>DumpRequestOut</li> -<li>DumpResponse</li> -<li>NewChunkedReader</li> -<li>NewChunkedWriter</li> -<li>NewClientConn</li> -<li>NewProxyClientConn</li> -<li>NewServerConn</li> -<li>NewSingleHostReverseProxy</li> -<li>ReverseProxy</li> -<li>ServerConn</li> -</ul> - -<p> -The <code>Request.RawURL</code> field has been removed; it was a -historical artifact. -</p> - -<p> -The <code>Handle</code> and <code>HandleFunc</code> -functions, and the similarly-named methods of <code>ServeMux</code>, -now panic if an attempt is made to register the same pattern twice. -</p> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update the few programs that are affected except for -uses of <code>RawURL</code>, which must be fixed by hand. -</p> - -<h3 id="image">The image package</h3> - -<p> -The <a href="/pkg/image/"><code>image</code></a> package has had a number of -minor changes, rearrangements and renamings. -</p> - -<p> -Most of the color handling code has been moved into its own package, -<a href="/pkg/image/color/"><code>image/color</code></a>. -For the elements that moved, a symmetry arises; for instance, -each pixel of an -<a href="/pkg/image/#RGBA"><code>image.RGBA</code></a> -is a -<a href="/pkg/image/color/#RGBA"><code>color.RGBA</code></a>. -</p> - -<p> -The old <code>image/ycbcr</code> package has been folded, with some -renamings, into the -<a href="/pkg/image/"><code>image</code></a> -and -<a href="/pkg/image/color/"><code>image/color</code></a> -packages. -</p> - -<p> -The old <code>image.ColorImage</code> type is still in the <code>image</code> -package but has been renamed -<a href="/pkg/image/#Uniform"><code>image.Uniform</code></a>, -while <code>image.Tiled</code> has been removed. -</p> - -<p> -This table lists the renamings. -</p> - -<table class="codetable" frame="border" summary="image renames"> -<colgroup align="left" width="50%"></colgroup> -<colgroup align="left" width="50%"></colgroup> -<tr> -<th align="left">Old</th> -<th align="left">New</th> -</tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>image.Color</td> <td>color.Color</td></tr> -<tr><td>image.ColorModel</td> <td>color.Model</td></tr> -<tr><td>image.ColorModelFunc</td> <td>color.ModelFunc</td></tr> -<tr><td>image.PalettedColorModel</td> <td>color.Palette</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>image.RGBAColor</td> <td>color.RGBA</td></tr> -<tr><td>image.RGBA64Color</td> <td>color.RGBA64</td></tr> -<tr><td>image.NRGBAColor</td> <td>color.NRGBA</td></tr> -<tr><td>image.NRGBA64Color</td> <td>color.NRGBA64</td></tr> -<tr><td>image.AlphaColor</td> <td>color.Alpha</td></tr> -<tr><td>image.Alpha16Color</td> <td>color.Alpha16</td></tr> -<tr><td>image.GrayColor</td> <td>color.Gray</td></tr> -<tr><td>image.Gray16Color</td> <td>color.Gray16</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>image.RGBAColorModel</td> <td>color.RGBAModel</td></tr> -<tr><td>image.RGBA64ColorModel</td> <td>color.RGBA64Model</td></tr> -<tr><td>image.NRGBAColorModel</td> <td>color.NRGBAModel</td></tr> -<tr><td>image.NRGBA64ColorModel</td> <td>color.NRGBA64Model</td></tr> -<tr><td>image.AlphaColorModel</td> <td>color.AlphaModel</td></tr> -<tr><td>image.Alpha16ColorModel</td> <td>color.Alpha16Model</td></tr> -<tr><td>image.GrayColorModel</td> <td>color.GrayModel</td></tr> -<tr><td>image.Gray16ColorModel</td> <td>color.Gray16Model</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>ycbcr.RGBToYCbCr</td> <td>color.RGBToYCbCr</td></tr> -<tr><td>ycbcr.YCbCrToRGB</td> <td>color.YCbCrToRGB</td></tr> -<tr><td>ycbcr.YCbCrColorModel</td> <td>color.YCbCrModel</td></tr> -<tr><td>ycbcr.YCbCrColor</td> <td>color.YCbCr</td></tr> -<tr><td>ycbcr.YCbCr</td> <td>image.YCbCr</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>ycbcr.SubsampleRatio444</td> <td>image.YCbCrSubsampleRatio444</td></tr> -<tr><td>ycbcr.SubsampleRatio422</td> <td>image.YCbCrSubsampleRatio422</td></tr> -<tr><td>ycbcr.SubsampleRatio420</td> <td>image.YCbCrSubsampleRatio420</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>image.ColorImage</td> <td>image.Uniform</td></tr> -</table> - -<p> -The image package's <code>New</code> functions -(<a href="/pkg/image/#NewRGBA"><code>NewRGBA</code></a>, -<a href="/pkg/image/#NewRGBA64"><code>NewRGBA64</code></a>, etc.) -take an <a href="/pkg/image/#Rectangle"><code>image.Rectangle</code></a> as an argument -instead of four integers. -</p> - -<p> -Finally, there are new predefined <code>color.Color</code> variables -<a href="/pkg/image/color/#Black"><code>color.Black</code></a>, -<a href="/pkg/image/color/#White"><code>color.White</code></a>, -<a href="/pkg/image/color/#Opaque"><code>color.Opaque</code></a> -and -<a href="/pkg/image/color/#Transparent"><code>color.Transparent</code></a>. -</p> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update almost all code affected by the change. -</p> - -<h3 id="log_syslog">The log/syslog package</h3> - -<p> -In Go 1, the <a href="/pkg/log/syslog/#NewLogger"><code>syslog.NewLogger</code></a> -function returns an error as well as a <code>log.Logger</code>. -</p> - -<p> -<em>Updating</em>: -What little code is affected will be caught by the compiler and must be updated by hand. -</p> - -<h3 id="mime">The mime package</h3> - -<p> -In Go 1, the <a href="/pkg/mime/#FormatMediaType"><code>FormatMediaType</code></a> function -of the <code>mime</code> package has been simplified to make it -consistent with -<a href="/pkg/mime/#ParseMediaType"><code>ParseMediaType</code></a>. -It now takes <code>"text/html"</code> rather than <code>"text"</code> and <code>"html"</code>. -</p> - -<p> -<em>Updating</em>: -What little code is affected will be caught by the compiler and must be updated by hand. -</p> - -<h3 id="net">The net package</h3> - -<p> -In Go 1, the various <code>SetTimeout</code>, -<code>SetReadTimeout</code>, and <code>SetWriteTimeout</code> methods -have been replaced with -<a href="/pkg/net/#IPConn.SetDeadline"><code>SetDeadline</code></a>, -<a href="/pkg/net/#IPConn.SetReadDeadline"><code>SetReadDeadline</code></a>, and -<a href="/pkg/net/#IPConn.SetWriteDeadline"><code>SetWriteDeadline</code></a>, -respectively. Rather than taking a timeout value in nanoseconds that -apply to any activity on the connection, the new methods set an -absolute deadline (as a <code>time.Time</code> value) after which -reads and writes will time out and no longer block. -</p> - -<p> -There are also new functions -<a href="/pkg/net/#DialTimeout"><code>net.DialTimeout</code></a> -to simplify timing out dialing a network address and -<a href="/pkg/net/#ListenMulticastUDP"><code>net.ListenMulticastUDP</code></a> -to allow multicast UDP to listen concurrently across multiple listeners. -The <code>net.ListenMulticastUDP</code> function replaces the old -<code>JoinGroup</code> and <code>LeaveGroup</code> methods. -</p> - -<p> -<em>Updating</em>: -Code that uses the old methods will fail to compile and must be updated by hand. -The semantic change makes it difficult for the fix tool to update automatically. -</p> - -<h3 id="os">The os package</h3> - -<p> -The <code>Time</code> function has been removed; callers should use -the <a href="/pkg/time/#Time"><code>Time</code></a> type from the -<code>time</code> package. -</p> - -<p> -The <code>Exec</code> function has been removed; callers should use -<code>Exec</code> from the <code>syscall</code> package, where available. -</p> - -<p> -The <code>ShellExpand</code> function has been renamed to <a -href="/pkg/os/#ExpandEnv"><code>ExpandEnv</code></a>. -</p> - -<p> -The <a href="/pkg/os/#NewFile"><code>NewFile</code></a> function -now takes a <code>uintptr</code> fd, instead of an <code>int</code>. -The <a href="/pkg/os/#File.Fd"><code>Fd</code></a> method on files now -also returns a <code>uintptr</code>. -</p> - -<p> -There are no longer error constants such as <code>EINVAL</code> -in the <code>os</code> package, since the set of values varied with -the underlying operating system. There are new portable functions like -<a href="/pkg/os/#IsPermission"><code>IsPermission</code></a> -to test common error properties, plus a few new error values -with more Go-like names, such as -<a href="/pkg/os/#ErrPermission"><code>ErrPermission</code></a> -and -<a href="/pkg/os/#ErrNoEnv"><code>ErrNoEnv</code></a>. -</p> - -<p> -The <code>Getenverror</code> function has been removed. To distinguish -between a non-existent environment variable and an empty string, -use <a href="/pkg/os/#Environ"><code>os.Environ</code></a> or -<a href="/pkg/syscall/#Getenv"><code>syscall.Getenv</code></a>. -</p> - - -<p> -The <a href="/pkg/os/#Process.Wait"><code>Process.Wait</code></a> method has -dropped its option argument and the associated constants are gone -from the package. -Also, the function <code>Wait</code> is gone; only the method of -the <code>Process</code> type persists. -</p> - -<p> -The <code>Waitmsg</code> type returned by -<a href="/pkg/os/#Process.Wait"><code>Process.Wait</code></a> -has been replaced with a more portable -<a href="/pkg/os/#ProcessState"><code>ProcessState</code></a> -type with accessor methods to recover information about the -process. -Because of changes to <code>Wait</code>, the <code>ProcessState</code> -value always describes an exited process. -Portability concerns simplified the interface in other ways, but the values returned by the -<a href="/pkg/os/#ProcessState.Sys"><code>ProcessState.Sys</code></a> and -<a href="/pkg/os/#ProcessState.SysUsage"><code>ProcessState.SysUsage</code></a> -methods can be type-asserted to underlying system-specific data structures such as -<a href="/pkg/syscall/#WaitStatus"><code>syscall.WaitStatus</code></a> and -<a href="/pkg/syscall/#Rusage"><code>syscall.Rusage</code></a> on Unix. -</p> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will drop a zero argument to <code>Process.Wait</code>. -All other changes will be caught by the compiler and must be updated by hand. -</p> - -<h4 id="os_fileinfo">The os.FileInfo type</h4> - -<p> -Go 1 redefines the <a href="/pkg/os/#FileInfo"><code>os.FileInfo</code></a> type, -changing it from a struct to an interface: -</p> - -<pre> - type FileInfo interface { - Name() string // base name of the file - Size() int64 // length in bytes - Mode() FileMode // file mode bits - ModTime() time.Time // modification time - IsDir() bool // abbreviation for Mode().IsDir() - Sys() interface{} // underlying data source (can return nil) - } -</pre> - -<p> -The file mode information has been moved into a subtype called -<a href="/pkg/os/#FileMode"><code>os.FileMode</code></a>, -a simple integer type with <code>IsDir</code>, <code>Perm</code>, and <code>String</code> -methods. -</p> - -<p> -The system-specific details of file modes and properties such as (on Unix) -i-number have been removed from <code>FileInfo</code> altogether. -Instead, each operating system's <code>os</code> package provides an -implementation of the <code>FileInfo</code> interface, which -has a <code>Sys</code> method that returns the -system-specific representation of file metadata. -For instance, to discover the i-number of a file on a Unix system, unpack -the <code>FileInfo</code> like this: -</p> - -<pre> - fi, err := os.Stat("hello.go") - if err != nil { - log.Fatal(err) - } - // Check that it's a Unix file. - unixStat, ok := fi.Sys().(*syscall.Stat_t) - if !ok { - log.Fatal("hello.go: not a Unix file") - } - fmt.Printf("file i-number: %d\n", unixStat.Ino) -</pre> - -<p> -Assuming (which is unwise) that <code>"hello.go"</code> is a Unix file, -the i-number expression could be contracted to -</p> - -<pre> - fi.Sys().(*syscall.Stat_t).Ino -</pre> - -<p> -The vast majority of uses of <code>FileInfo</code> need only the methods -of the standard interface. -</p> - -<p> -The <code>os</code> package no longer contains wrappers for the POSIX errors -such as <code>ENOENT</code>. -For the few programs that need to verify particular error conditions, there are -now the boolean functions -<a href="/pkg/os/#IsExist"><code>IsExist</code></a>, -<a href="/pkg/os/#IsNotExist"><code>IsNotExist</code></a> -and -<a href="/pkg/os/#IsPermission"><code>IsPermission</code></a>. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/os\.Open/` `/}/`}} ---> f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600) - if os.IsExist(err) { - log.Printf("%s already exists", name) - }</pre> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update code that uses the old equivalent of the current <code>os.FileInfo</code> -and <code>os.FileMode</code> API. -Code that needs system-specific file details will need to be updated by hand. -Code that uses the old POSIX error values from the <code>os</code> package -will fail to compile and will also need to be updated by hand. -</p> - -<h3 id="os_signal">The os/signal package</h3> - -<p> -The <code>os/signal</code> package in Go 1 replaces the -<code>Incoming</code> function, which returned a channel -that received all incoming signals, -with the selective <code>Notify</code> function, which asks -for delivery of specific signals on an existing channel. -</p> - -<p> -<em>Updating</em>: -Code must be updated by hand. -A literal translation of -</p> -<pre> -c := signal.Incoming() -</pre> -<p> -is -</p> -<pre> -c := make(chan os.Signal) -signal.Notify(c) // ask for all signals -</pre> -<p> -but most code should list the specific signals it wants to handle instead: -</p> -<pre> -c := make(chan os.Signal) -signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT) -</pre> - -<h3 id="path_filepath">The path/filepath package</h3> - -<p> -In Go 1, the <a href="/pkg/path/filepath/#Walk"><code>Walk</code></a> function of the -<code>path/filepath</code> package -has been changed to take a function value of type -<a href="/pkg/path/filepath/#WalkFunc"><code>WalkFunc</code></a> -instead of a <code>Visitor</code> interface value. -<code>WalkFunc</code> unifies the handling of both files and directories. -</p> - -<pre> - type WalkFunc func(path string, info os.FileInfo, err error) error -</pre> - -<p> -The <code>WalkFunc</code> function will be called even for files or directories that could not be opened; -in such cases the error argument will describe the failure. -If a directory's contents are to be skipped, -the function should return the value <a href="/pkg/path/filepath/#variables"><code>filepath.SkipDir</code></a> -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/STARTWALK/` `/ENDWALK/`}} ---> markFn := func(path string, info os.FileInfo, err error) error { - if path == "pictures" { <span class="comment">// Will skip walking of directory pictures and its contents.</span> - return filepath.SkipDir - } - if err != nil { - return err - } - log.Println(path) - return nil - } - err := filepath.Walk(".", markFn) - if err != nil { - log.Fatal(err) - }</pre> - -<p> -<em>Updating</em>: -The change simplifies most code but has subtle consequences, so affected programs -will need to be updated by hand. -The compiler will catch code using the old interface. -</p> - -<h3 id="regexp">The regexp package</h3> - -<p> -The <a href="/pkg/regexp/"><code>regexp</code></a> package has been rewritten. -It has the same interface but the specification of the regular expressions -it supports has changed from the old "egrep" form to that of -<a href="http://code.google.com/p/re2/">RE2</a>. -</p> - -<p> -<em>Updating</em>: -Code that uses the package should have its regular expressions checked by hand. -</p> - -<h3 id="runtime">The runtime package</h3> - -<p> -In Go 1, much of the API exported by package -<code>runtime</code> has been removed in favor of -functionality provided by other packages. -Code using the <code>runtime.Type</code> interface -or its specific concrete type implementations should -now use package <a href="/pkg/reflect/"><code>reflect</code></a>. -Code using <code>runtime.Semacquire</code> or <code>runtime.Semrelease</code> -should use channels or the abstractions in package <a href="/pkg/sync/"><code>sync</code></a>. -The <code>runtime.Alloc</code>, <code>runtime.Free</code>, -and <code>runtime.Lookup</code> functions, an unsafe API created for -debugging the memory allocator, have no replacement. -</p> - -<p> -Before, <code>runtime.MemStats</code> was a global variable holding -statistics about memory allocation, and calls to <code>runtime.UpdateMemStats</code> -ensured that it was up to date. -In Go 1, <code>runtime.MemStats</code> is a struct type, and code should use -<a href="/pkg/runtime/#ReadMemStats"><code>runtime.ReadMemStats</code></a> -to obtain the current statistics. -</p> - -<p> -The package adds a new function, -<a href="/pkg/runtime/#NumCPU"><code>runtime.NumCPU</code></a>, that returns the number of CPUs available -for parallel execution, as reported by the operating system kernel. -Its value can inform the setting of <code>GOMAXPROCS</code>. -The <code>runtime.Cgocalls</code> and <code>runtime.Goroutines</code> functions -have been renamed to <code>runtime.NumCgoCall</code> and <code>runtime.NumGoroutine</code>. -</p> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update code for the function renamings. -Other code will need to be updated by hand. -</p> - -<h3 id="strconv">The strconv package</h3> - -<p> -In Go 1, the -<a href="/pkg/strconv/"><code>strconv</code></a> -package has been significantly reworked to make it more Go-like and less C-like, -although <code>Atoi</code> lives on (it's similar to -<code>int(ParseInt(x, 10, 0))</code>, as does -<code>Itoa(x)</code> (<code>FormatInt(int64(x), 10)</code>). -There are also new variants of some of the functions that append to byte slices rather than -return strings, to allow control over allocation. -</p> - -<p> -This table summarizes the renamings; see the -<a href="/pkg/strconv/">package documentation</a> -for full details. -</p> - -<table class="codetable" frame="border" summary="strconv renames"> -<colgroup align="left" width="50%"></colgroup> -<colgroup align="left" width="50%"></colgroup> -<tr> -<th align="left">Old call</th> -<th align="left">New call</th> -</tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Atob(x)</td> <td>ParseBool(x)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Atof32(x)</td> <td>ParseFloat(x, 32)§</td></tr> -<tr><td>Atof64(x)</td> <td>ParseFloat(x, 64)</td></tr> -<tr><td>AtofN(x, n)</td> <td>ParseFloat(x, n)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Atoi(x)</td> <td>Atoi(x)</td></tr> -<tr><td>Atoi(x)</td> <td>ParseInt(x, 10, 0)§</td></tr> -<tr><td>Atoi64(x)</td> <td>ParseInt(x, 10, 64)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Atoui(x)</td> <td>ParseUint(x, 10, 0)§</td></tr> -<tr><td>Atoui64(x)</td> <td>ParseUint(x, 10, 64)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Btoi64(x, b)</td> <td>ParseInt(x, b, 64)</td></tr> -<tr><td>Btoui64(x, b)</td> <td>ParseUint(x, b, 64)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Btoa(x)</td> <td>FormatBool(x)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Ftoa32(x, f, p)</td> <td>FormatFloat(float64(x), f, p, 32)</td></tr> -<tr><td>Ftoa64(x, f, p)</td> <td>FormatFloat(x, f, p, 64)</td></tr> -<tr><td>FtoaN(x, f, p, n)</td> <td>FormatFloat(x, f, p, n)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Itoa(x)</td> <td>Itoa(x)</td></tr> -<tr><td>Itoa(x)</td> <td>FormatInt(int64(x), 10)</td></tr> -<tr><td>Itoa64(x)</td> <td>FormatInt(x, 10)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Itob(x, b)</td> <td>FormatInt(int64(x), b)</td></tr> -<tr><td>Itob64(x, b)</td> <td>FormatInt(x, b)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Uitoa(x)</td> <td>FormatUint(uint64(x), 10)</td></tr> -<tr><td>Uitoa64(x)</td> <td>FormatUint(x, 10)</td></tr> -<tr> -<td colspan="2"><hr></td> -</tr> -<tr><td>Uitob(x, b)</td> <td>FormatUint(uint64(x), b)</td></tr> -<tr><td>Uitob64(x, b)</td> <td>FormatUint(x, b)</td></tr> -</table> - -<p> -<em>Updating</em>: -Running <code>go</code> <code>fix</code> will update almost all code affected by the change. -<br> -§ <code>Atoi</code> persists but <code>Atoui</code> and <code>Atof32</code> do not, so -they may require -a cast that must be added by hand; the <code>go</code> <code>fix</code> tool will warn about it. -</p> - - -<h3 id="templates">The template packages</h3> - -<p> -The <code>template</code> and <code>exp/template/html</code> packages have moved to -<a href="/pkg/text/template/"><code>text/template</code></a> and -<a href="/pkg/html/template/"><code>html/template</code></a>. -More significant, the interface to these packages has been simplified. -The template language is the same, but the concept of "template set" is gone -and the functions and methods of the packages have changed accordingly, -often by elimination. -</p> - -<p> -Instead of sets, a <code>Template</code> object -may contain multiple named template definitions, -in effect constructing -name spaces for template invocation. -A template can invoke any other template associated with it, but only those -templates associated with it. -The simplest way to associate templates is to parse them together, something -made easier with the new structure of the packages. -</p> - -<p> -<em>Updating</em>: -The imports will be updated by fix tool. -Single-template uses will be otherwise be largely unaffected. -Code that uses multiple templates in concert will need to be updated by hand. -The <a href="/pkg/text/template/#examples">examples</a> in -the documentation for <code>text/template</code> can provide guidance. -</p> - -<h3 id="testing">The testing package</h3> - -<p> -The testing package has a type, <code>B</code>, passed as an argument to benchmark functions. -In Go 1, <code>B</code> has new methods, analogous to those of <code>T</code>, enabling -logging and failure reporting. -</p> - -<pre><!--{{code "/doc/progs/go1.go" `/func.*Benchmark/` `/^}/`}} --->func BenchmarkSprintf(b *testing.B) { - <span class="comment">// Verify correctness before running benchmark.</span> - b.StopTimer() - got := fmt.Sprintf("%x", 23) - const expect = "17" - if expect != got { - b.Fatalf("expected %q; got %q", expect, got) - } - b.StartTimer() - for i := 0; i < b.N; i++ { - fmt.Sprintf("%x", 23) - } -}</pre> - -<p> -<em>Updating</em>: -Existing code is unaffected, although benchmarks that use <code>println</code> -or <code>panic</code> should be updated to use the new methods. -</p> - -<h3 id="testing_script">The testing/script package</h3> - -<p> -The testing/script package has been deleted. It was a dreg. -</p> - -<p> -<em>Updating</em>: -No code is likely to be affected. -</p> - -<h3 id="unsafe">The unsafe package</h3> - -<p> -In Go 1, the functions -<code>unsafe.Typeof</code>, <code>unsafe.Reflect</code>, -<code>unsafe.Unreflect</code>, <code>unsafe.New</code>, and -<code>unsafe.NewArray</code> have been removed; -they duplicated safer functionality provided by -package <a href="/pkg/reflect/"><code>reflect</code></a>. -</p> - -<p> -<em>Updating</em>: -Code using these functions must be rewritten to use -package <a href="/pkg/reflect/"><code>reflect</code></a>. -The changes to <a href="http://code.google.com/p/go/source/detail?r=2646dc956207">encoding/gob</a> and the <a href="http://code.google.com/p/goprotobuf/source/detail?r=5340ad310031">protocol buffer library</a> -may be helpful as examples. -</p> - -<h3 id="url">The url package</h3> - -<p> -In Go 1 several fields from the <a href="/pkg/net/url/#URL"><code>url.URL</code></a> type -were removed or replaced. -</p> - -<p> -The <a href="/pkg/net/url/#URL.String"><code>String</code></a> method now -predictably rebuilds an encoded URL string using all of <code>URL</code>'s -fields as necessary. The resulting string will also no longer have -passwords escaped. -</p> - -<p> -The <code>Raw</code> field has been removed. In most cases the <code>String</code> -method may be used in its place. -</p> - -<p> -The old <code>RawUserinfo</code> field is replaced by the <code>User</code> -field, of type <a href="/pkg/net/url/#Userinfo"><code>*net.Userinfo</code></a>. -Values of this type may be created using the new <a href="/pkg/net/url/#User"><code>net.User</code></a> -and <a href="/pkg/net/url/#UserPassword"><code>net.UserPassword</code></a> -functions. The <code>EscapeUserinfo</code> and <code>UnescapeUserinfo</code> -functions are also gone. -</p> - -<p> -The <code>RawAuthority</code> field has been removed. The same information is -available in the <code>Host</code> and <code>User</code> fields. -</p> - -<p> -The <code>RawPath</code> field and the <code>EncodedPath</code> method have -been removed. The path information in rooted URLs (with a slash following the -schema) is now available only in decoded form in the <code>Path</code> field. -Occasionally, the encoded data may be required to obtain information that -was lost in the decoding process. These cases must be handled by accessing -the data the URL was built from. -</p> - -<p> -URLs with non-rooted paths, such as <code>"mailto:dev@golang.org?subject=Hi"</code>, -are also handled differently. The <code>OpaquePath</code> boolean field has been -removed and a new <code>Opaque</code> string field introduced to hold the encoded -path for such URLs. In Go 1, the cited URL parses as: -</p> - -<pre> - URL{ - Scheme: "mailto", - Opaque: "dev@golang.org", - RawQuery: "subject=Hi", - } -</pre> - -<p> -A new <a href="/pkg/net/url/#URL.RequestURI"><code>RequestURI</code></a> method was -added to <code>URL</code>. -</p> - -<p> -The <code>ParseWithReference</code> function has been renamed to <code>ParseWithFragment</code>. -</p> - -<p> -<em>Updating</em>: -Code that uses the old fields will fail to compile and must be updated by hand. -The semantic changes make it difficult for the fix tool to update automatically. -</p> - -<h2 id="cmd_go">The go command</h2> - -<p> -Go 1 introduces the <a href="/cmd/go/">go command</a>, a tool for fetching, -building, and installing Go packages and commands. The <code>go</code> command -does away with makefiles, instead using Go source code to find dependencies and -determine build conditions. Most existing Go programs will no longer require -makefiles to be built. -</p> - -<p> -See <a href="/doc/code.html">How to Write Go Code</a> for a primer on the -<code>go</code> command and the <a href="/cmd/go/">go command documentation</a> -for the full details. -</p> - -<p> -<em>Updating</em>: -Projects that depend on the Go project's old makefile-based build -infrastructure (<code>Make.pkg</code>, <code>Make.cmd</code>, and so on) should -switch to using the <code>go</code> command for building Go code and, if -necessary, rewrite their makefiles to perform any auxiliary build tasks. -</p> - -<h2 id="cmd_cgo">The cgo command</h2> - -<p> -In Go 1, the <a href="/cmd/cgo">cgo command</a> -uses a different <code>_cgo_export.h</code> -file, which is generated for packages containing <code>//export</code> lines. -The <code>_cgo_export.h</code> file now begins with the C preamble comment, -so that exported function definitions can use types defined there. -This has the effect of compiling the preamble multiple times, so a -package using <code>//export</code> must not put function definitions -or variable initializations in the C preamble. -</p> - -<h2 id="releases">Packaged releases</h2> - -<p> -One of the most significant changes associated with Go 1 is the availability -of prepackaged, downloadable distributions. -They are available for many combinations of architecture and operating system -(including Windows) and the list will grow. -Installation details are described on the -<a href="/doc/install">Getting Started</a> page, while -the distributions themselves are listed on the -<a href="http://code.google.com/p/go/downloads/list">downloads page</a>. - - -</div> - -<div id="footer"> -Build version go1.0.1.<br> -Except as <a href="http://code.google.com/policies.html#restrictions">noted</a>, -the content of this page is licensed under the -Creative Commons Attribution 3.0 License, -and code is licensed under a <a href="/LICENSE">BSD license</a>.<br> -<a href="/doc/tos.html">Terms of Service</a> | -<a href="http://www.google.com/intl/en/privacy/privacy-policy.html">Privacy Policy</a> -</div> - -<script type="text/javascript"> -(function() { - var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true; - ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js"; - var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s); -})(); -</script> -</body> -<script type="text/javascript"> - (function() { - var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; - po.src = 'https://apis.google.com/js/plusone.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); - })(); -</script> -</html> - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/README b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/README deleted file mode 100644 index 9b4c2d8be..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/README +++ /dev/null @@ -1,28 +0,0 @@ -The *.dat files in this directory are copied from The WebKit Open Source -Project, specifically $WEBKITROOT/LayoutTests/html5lib/resources. -WebKit is licensed under a BSD style license. -http://webkit.org/coding/bsd-license.html says: - -Copyright (C) 2009 Apple Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS "AS IS" AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/adoption01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/adoption01.dat deleted file mode 100644 index 787e1b01e..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/adoption01.dat +++ /dev/null @@ -1,194 +0,0 @@ -#data -<a><p></a></p> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <p> -| <a> - -#data -<a>1<p>2</a>3</p> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <p> -| <a> -| "2" -| "3" - -#data -<a>1<button>2</a>3</button> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <button> -| <a> -| "2" -| "3" - -#data -<a>1<b>2</a>3</b> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <b> -| "2" -| <b> -| "3" - -#data -<a>1<div>2<div>3</a>4</div>5</div> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <div> -| <a> -| "2" -| <div> -| <a> -| "3" -| "4" -| "5" - -#data -<table><a>1<p>2</a>3</p> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <p> -| <a> -| "2" -| "3" -| <table> - -#data -<b><b><a><p></a> -#errors -#document -| <html> -| <head> -| <body> -| <b> -| <b> -| <a> -| <p> -| <a> - -#data -<b><a><b><p></a> -#errors -#document -| <html> -| <head> -| <body> -| <b> -| <a> -| <b> -| <b> -| <p> -| <a> - -#data -<a><b><b><p></a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <b> -| <b> -| <p> -| <a> - -#data -<p>1<s id="A">2<b id="B">3</p>4</s>5</b> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| "1" -| <s> -| id="A" -| "2" -| <b> -| id="B" -| "3" -| <s> -| id="A" -| <b> -| id="B" -| "4" -| <b> -| id="B" -| "5" - -#data -<table><a>1<td>2</td>3</table> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "1" -| <a> -| "3" -| <table> -| <tbody> -| <tr> -| <td> -| "2" - -#data -<table>A<td>B</td>C</table> -#errors -#document -| <html> -| <head> -| <body> -| "AC" -| <table> -| <tbody> -| <tr> -| <td> -| "B" - -#data -<a><svg><tr><input></a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <svg svg> -| <svg tr> -| <svg input> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/adoption02.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/adoption02.dat deleted file mode 100644 index d18151b44..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/adoption02.dat +++ /dev/null @@ -1,31 +0,0 @@ -#data -<b>1<i>2<p>3</b>4 -#errors -#document -| <html> -| <head> -| <body> -| <b> -| "1" -| <i> -| "2" -| <i> -| <p> -| <b> -| "3" -| "4" - -#data -<a><div><style></style><address><a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <div> -| <a> -| <style> -| <address> -| <a> -| <a> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/comments01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/comments01.dat deleted file mode 100644 index 44f187683..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/comments01.dat +++ /dev/null @@ -1,135 +0,0 @@ -#data -FOO<!-- BAR -->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR --> -| "BAZ" - -#data -FOO<!-- BAR --!>BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR --> -| "BAZ" - -#data -FOO<!-- BAR -- >BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- >BAZ --> - -#data -FOO<!-- BAR -- <QUX> -- MUX -->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- <QUX> -- MUX --> -| "BAZ" - -#data -FOO<!-- BAR -- <QUX> -- MUX --!>BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- <QUX> -- MUX --> -| "BAZ" - -#data -FOO<!-- BAR -- <QUX> -- MUX -- >BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- BAR -- <QUX> -- MUX -- >BAZ --> - -#data -FOO<!---->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- --> -| "BAZ" - -#data -FOO<!--->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- --> -| "BAZ" - -#data -FOO<!-->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- --> -| "BAZ" - -#data -<?xml version="1.0">Hi -#errors -#document -| <!-- ?xml version="1.0" --> -| <html> -| <head> -| <body> -| "Hi" - -#data -<?xml version="1.0"> -#errors -#document -| <!-- ?xml version="1.0" --> -| <html> -| <head> -| <body> - -#data -<?xml version -#errors -#document -| <!-- ?xml version --> -| <html> -| <head> -| <body> - -#data -FOO<!----->BAZ -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <!-- - --> -| "BAZ" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/doctype01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/doctype01.dat deleted file mode 100644 index ae457328a..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/doctype01.dat +++ /dev/null @@ -1,370 +0,0 @@ -#data -<!DOCTYPE html>Hello -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!dOctYpE HtMl>Hello -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPEhtml>Hello -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE>Hello -#errors -#document -| <!DOCTYPE > -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE >Hello -#errors -#document -| <!DOCTYPE > -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato >Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato taco>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato taco "ddd>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato sYstEM>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato sYstEM >Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato sYstEM ggg>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM taco >Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM 'taco"'>Hello -#errors -#document -| <!DOCTYPE potato "" "taco""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM "taco">Hello -#errors -#document -| <!DOCTYPE potato "" "taco"> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEM "tai'co">Hello -#errors -#document -| <!DOCTYPE potato "" "tai'co"> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato SYSTEMtaco "ddd">Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato grass SYSTEM taco>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato pUbLIc>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato pUbLIc >Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato pUbLIcgoof>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC goof>Hello -#errors -#document -| <!DOCTYPE potato> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC "go'of">Hello -#errors -#document -| <!DOCTYPE potato "go'of" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC 'go'of'>Hello -#errors -#document -| <!DOCTYPE potato "go" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC 'go:hh of' >Hello -#errors -#document -| <!DOCTYPE potato "go:hh of" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE potato PUBLIC "W3C-//dfdf" SYSTEM ggg>Hello -#errors -#document -| <!DOCTYPE potato "W3C-//dfdf" ""> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" - "http://www.w3.org/TR/html4/strict.dtd">Hello -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE ...>Hello -#errors -#document -| <!DOCTYPE ...> -| <html> -| <head> -| <body> -| "Hello" - -#data -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [ -<!-- internal declarations --> -]> -#errors -#document -| <!DOCTYPE root-element> -| <html> -| <head> -| <body> -| "]>" - -#data -<!DOCTYPE html PUBLIC - "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" - "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> -#errors -#document -| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body> -#errors -#document -| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd"> -| <html> -| <head> -| <body> -| <b> -| "Mine!" - -#data -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'> -#errors -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -| <html> -| <head> -| <body> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/entities01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/entities01.dat deleted file mode 100644 index c8073b781..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/entities01.dat +++ /dev/null @@ -1,603 +0,0 @@ -#data -FOO>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO>BAR" - -#data -FOO>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO>BAR" - -#data -FOO> BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO> BAR" - -#data -FOO>;;BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO>;;BAR" - -#data -I'm ¬it; I tell you -#errors -#document -| <html> -| <head> -| <body> -| "I'm ¬it; I tell you" - -#data -I'm ∉ I tell you -#errors -#document -| <html> -| <head> -| <body> -| "I'm ∉ I tell you" - -#data -FOO& BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO& BAR" - -#data -FOO&<BAR> -#errors -#document -| <html> -| <head> -| <body> -| "FOO&" -| <bar> - -#data -FOO&&&>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO&&&>BAR" - -#data -FOO)BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO)BAR" - -#data -FOOABAR -#errors -#document -| <html> -| <head> -| <body> -| "FOOABAR" - -#data -FOOABAR -#errors -#document -| <html> -| <head> -| <body> -| "FOOABAR" - -#data -FOO&#BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO&#BAR" - -#data -FOO&#ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO&#ZOO" - -#data -FOOºR -#errors -#document -| <html> -| <head> -| <body> -| "FOOºR" - -#data -FOO&#xZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO&#xZOO" - -#data -FOO&#XZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO&#XZOO" - -#data -FOO)BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO)BAR" - -#data -FOO䆺R -#errors -#document -| <html> -| <head> -| <body> -| "FOO䆺R" - -#data -FOOAZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOAZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOOxZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOxZOO" - -#data -FOOyZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOyZOO" - -#data -FOO€ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO€ZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO‚ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‚ZOO" - -#data -FOOƒZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOƒZOO" - -#data -FOO„ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO„ZOO" - -#data -FOO…ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO…ZOO" - -#data -FOO†ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO†ZOO" - -#data -FOO‡ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‡ZOO" - -#data -FOOˆZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOˆZOO" - -#data -FOO‰ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‰ZOO" - -#data -FOOŠZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOŠZOO" - -#data -FOO‹ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‹ZOO" - -#data -FOOŒZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOŒZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOŽZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOŽZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO‘ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO‘ZOO" - -#data -FOO’ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO’ZOO" - -#data -FOO“ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO“ZOO" - -#data -FOO”ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO”ZOO" - -#data -FOO•ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO•ZOO" - -#data -FOO–ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO–ZOO" - -#data -FOO—ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO—ZOO" - -#data -FOO˜ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO˜ZOO" - -#data -FOO™ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO™ZOO" - -#data -FOOšZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOšZOO" - -#data -FOO›ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO›ZOO" - -#data -FOOœZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOœZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOžZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOžZOO" - -#data -FOOŸZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOŸZOO" - -#data -FOO ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO ZOO" - -#data -FOO퟿ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO􈟔ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOOZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOOZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" - -#data -FOO�ZOO -#errors -#document -| <html> -| <head> -| <body> -| "FOO�ZOO" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/entities02.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/entities02.dat deleted file mode 100644 index e2fb42a07..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/entities02.dat +++ /dev/null @@ -1,249 +0,0 @@ -#data -<div bar="ZZ>YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>YY" - -#data -<div bar="ZZ&"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&" - -#data -<div bar='ZZ&'></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&" - -#data -<div bar=ZZ&></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&" - -#data -<div bar="ZZ>=YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>=YY" - -#data -<div bar="ZZ>0YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>0YY" - -#data -<div bar="ZZ>9YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>9YY" - -#data -<div bar="ZZ>aYY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>aYY" - -#data -<div bar="ZZ>ZYY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>ZYY" - -#data -<div bar="ZZ> YY"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ> YY" - -#data -<div bar="ZZ>"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>" - -#data -<div bar='ZZ>'></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>" - -#data -<div bar=ZZ>></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ>" - -#data -<div bar="ZZ£_id=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ£_id=23" - -#data -<div bar="ZZ&prod_id=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&prod_id=23" - -#data -<div bar="ZZ£_id=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ£_id=23" - -#data -<div bar="ZZ∏_id=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ∏_id=23" - -#data -<div bar="ZZ£=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ£=23" - -#data -<div bar="ZZ&prod=23"></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| bar="ZZ&prod=23" - -#data -<div>ZZ£_id=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ£_id=23" - -#data -<div>ZZ&prod_id=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ&prod_id=23" - -#data -<div>ZZ£_id=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ£_id=23" - -#data -<div>ZZ∏_id=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ∏_id=23" - -#data -<div>ZZ£=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ£=23" - -#data -<div>ZZ&prod=23</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "ZZ&prod=23" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/html5test-com.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/html5test-com.dat deleted file mode 100644 index d7cb71db0..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/html5test-com.dat +++ /dev/null @@ -1,246 +0,0 @@ -#data -<div<div> -#errors -#document -| <html> -| <head> -| <body> -| <div<div> - -#data -<div foo<bar=''> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| foo<bar="" - -#data -<div foo=`bar`> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| foo="`bar`" - -#data -<div \"foo=''> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| \"foo="" - -#data -<a href='\nbar'></a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| href="\nbar" - -#data -<!DOCTYPE html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -⟨⟩ -#errors -#document -| <html> -| <head> -| <body> -| "⟨⟩" - -#data -' -#errors -#document -| <html> -| <head> -| <body> -| "'" - -#data -ⅈ -#errors -#document -| <html> -| <head> -| <body> -| "ⅈ" - -#data -𝕂 -#errors -#document -| <html> -| <head> -| <body> -| "𝕂" - -#data -∉ -#errors -#document -| <html> -| <head> -| <body> -| "∉" - -#data -<?import namespace="foo" implementation="#bar"> -#errors -#document -| <!-- ?import namespace="foo" implementation="#bar" --> -| <html> -| <head> -| <body> - -#data -<!--foo--bar--> -#errors -#document -| <!-- foo--bar --> -| <html> -| <head> -| <body> - -#data -<![CDATA[x]]> -#errors -#document -| <!-- [CDATA[x]] --> -| <html> -| <head> -| <body> - -#data -<textarea><!--</textarea>--></textarea> -#errors -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--" -| "-->" - -#data -<textarea><!--</textarea>--> -#errors -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--" -| "-->" - -#data -<style><!--</style>--></style> -#errors -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "-->" - -#data -<style><!--</style>--> -#errors -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "-->" - -#data -<ul><li>A </li> <li>B</li></ul> -#errors -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| "A " -| " " -| <li> -| "B" - -#data -<table><form><input type=hidden><input></form><div></div></table> -#errors -#document -| <html> -| <head> -| <body> -| <input> -| <div> -| <table> -| <form> -| <input> -| type="hidden" - -#data -<i>A<b>B<p></i>C</b>D -#errors -#document -| <html> -| <head> -| <body> -| <i> -| "A" -| <b> -| "B" -| <b> -| <p> -| <b> -| <i> -| "C" -| "D" - -#data -<div></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> - -#data -<svg></svg> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<math></math> -#errors -#document -| <html> -| <head> -| <body> -| <math math> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/inbody01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/inbody01.dat deleted file mode 100644 index 3f2bd374c..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/inbody01.dat +++ /dev/null @@ -1,43 +0,0 @@ -#data -<button>1</foo> -#errors -#document -| <html> -| <head> -| <body> -| <button> -| "1" - -#data -<foo>1<p>2</foo> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| "1" -| <p> -| "2" - -#data -<dd>1</foo> -#errors -#document -| <html> -| <head> -| <body> -| <dd> -| "1" - -#data -<foo>1<dd>2</foo> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| "1" -| <dd> -| "2" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/isindex.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/isindex.dat deleted file mode 100644 index 88325ffe6..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/isindex.dat +++ /dev/null @@ -1,40 +0,0 @@ -#data -<isindex> -#errors -#document -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<isindex name="A" action="B" prompt="C" foo="D"> -#errors -#document -| <html> -| <head> -| <body> -| <form> -| action="B" -| <hr> -| <label> -| "C" -| <input> -| foo="D" -| name="isindex" -| <hr> - -#data -<form><isindex> -#errors -#document -| <html> -| <head> -| <body> -| <form> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat Binary files differdeleted file mode 100644 index a5ebb1eb2..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat +++ /dev/null diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/pending-spec-changes.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/pending-spec-changes.dat deleted file mode 100644 index 5a9208465..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/pending-spec-changes.dat +++ /dev/null @@ -1,52 +0,0 @@ -#data -<input type="hidden"><frameset> -#errors -21: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -31: “frameset” start tag seen. -31: End of file seen and there were open elements. -#document -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><table><caption><svg>foo</table>bar -#errors -47: End tag “table” did not match the name of the current open element (“svg”). -47: “table” closed but “caption” was still open. -47: End tag “table” seen, but there were open elements. -36: Unclosed element “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| "foo" -| "bar" - -#data -<table><tr><td><svg><desc><td></desc><circle> -#errors -7: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -30: A table cell was implicitly closed, but there were open elements. -26: Unclosed element “desc”. -20: Unclosed element “svg”. -37: Stray end tag “desc”. -45: End of file seen and there were open elements. -45: Unclosed element “circle”. -7: Unclosed element “table”. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg desc> -| <td> -| <circle> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/plain-text-unsafe.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/plain-text-unsafe.dat Binary files differdeleted file mode 100644 index 04cc11fb9..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/plain-text-unsafe.dat +++ /dev/null diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/scriptdata01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/scriptdata01.dat deleted file mode 100644 index 76b67f4ba..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/scriptdata01.dat +++ /dev/null @@ -1,308 +0,0 @@ -#data -FOO<script>'Hello'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'Hello'" -| "BAR" - -#data -FOO<script></script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script></script >BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script></script/>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script></script/ >BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script type="text/plain"></scriptx>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "</scriptx>BAR" - -#data -FOO<script></script foo=">" dd>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "BAR" - -#data -FOO<script>'<'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<'" -| "BAR" - -#data -FOO<script>'<!'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!'" -| "BAR" - -#data -FOO<script>'<!-'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-'" -| "BAR" - -#data -FOO<script>'<!--'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!--'" -| "BAR" - -#data -FOO<script>'<!---'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!---'" -| "BAR" - -#data -FOO<script>'<!-->'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-->'" -| "BAR" - -#data -FOO<script>'<!-->'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-->'" -| "BAR" - -#data -FOO<script>'<!-- potato'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-- potato'" -| "BAR" - -#data -FOO<script>'<!-- <sCrIpt'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-- <sCrIpt'" -| "BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt>'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt>'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> -'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> -'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> --'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> --'</script>BAR" - -#data -FOO<script>'<!-- <sCrIpt> -->'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| "'<!-- <sCrIpt> -->'" -| "BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> --!>'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> --!>'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt> -- >'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt> -- >'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt '</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt '</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt/'</script>BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt\'</script>BAR -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt\'" -| "BAR" - -#data -FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR</script>QUX -#errors -#document -| <html> -| <head> -| <body> -| "FOO" -| <script> -| type="text/plain" -| "'<!-- <sCrIpt/'</script>BAR" -| "QUX" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/scripted/adoption01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/scripted/adoption01.dat deleted file mode 100644 index 4e08d0e84..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/scripted/adoption01.dat +++ /dev/null @@ -1,15 +0,0 @@ -#data -<p><b id="A"><script>document.getElementById("A").id = "B"</script></p>TEXT</b> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| id="B" -| <script> -| "document.getElementById("A").id = "B"" -| <b> -| id="A" -| "TEXT" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/scripted/webkit01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/scripted/webkit01.dat deleted file mode 100644 index ef4a41ca0..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/scripted/webkit01.dat +++ /dev/null @@ -1,28 +0,0 @@ -#data -1<script>document.write("2")</script>3 -#errors -#document -| <html> -| <head> -| <body> -| "1" -| <script> -| "document.write("2")" -| "23" - -#data -1<script>document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")</script>4 -#errors -#document -| <html> -| <head> -| <body> -| "1" -| <script> -| "document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")" -| <script> -| "document.write('2')" -| "2" -| <script> -| "document.write('3')" -| "34" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tables01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tables01.dat deleted file mode 100644 index c4b47e48a..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tables01.dat +++ /dev/null @@ -1,212 +0,0 @@ -#data -<table><th> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <th> - -#data -<table><td> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><col foo='bar'> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <col> -| foo="bar" - -#data -<table><colgroup></html>foo -#errors -#document -| <html> -| <head> -| <body> -| "foo" -| <table> -| <colgroup> - -#data -<table></table><p>foo -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <p> -| "foo" - -#data -<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><select><option>3</select></table> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| "3" -| <table> - -#data -<table><select><table></table></select></table> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <table> -| <table> - -#data -<table><select></table> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <table> - -#data -<table><select><option>A<tr><td>B</td></tr></table> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| "A" -| <table> -| <tbody> -| <tr> -| <td> -| "B" - -#data -<table><td></body></caption></col></colgroup></html>foo -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "foo" - -#data -<table><td>A</table>B -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "A" -| "B" - -#data -<table><tr><caption> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <caption> - -#data -<table><tr></body></caption></col></colgroup></html></td></th><td>foo -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "foo" - -#data -<table><td><tr> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <tr> - -#data -<table><td><button><td> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <button> -| <td> - -#data -<table><tr><td><svg><desc><td> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg desc> -| <td> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests1.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests1.dat deleted file mode 100644 index cbf8bdda6..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests1.dat +++ /dev/null @@ -1,1952 +0,0 @@ -#data -Test -#errors -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "Test" - -#data -<p>One<p>Two -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <p> -| "One" -| <p> -| "Two" - -#data -Line1<br>Line2<br>Line3<br>Line4 -#errors -Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "Line1" -| <br> -| "Line2" -| <br> -| "Line3" -| <br> -| "Line4" - -#data -<html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<head> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<body> -#errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head></head> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head></head><body> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head></head><body></body> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head><body></body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><head></body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end tag (body). -Line: 1 Col: 26 Unexpected end tag (html). -#document -| <html> -| <head> -| <body> - -#data -<html><head><body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<html><body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<head></html> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html). Ignored. -#document -| <html> -| <head> -| <body> - -#data -</head> -#errors -Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -</body> -#errors -Line: 1 Col: 7 Unexpected end tag (body). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element. -#document -| <html> -| <head> -| <body> - -#data -</html> -#errors -Line: 1 Col: 7 Unexpected end tag (html). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element. -#document -| <html> -| <head> -| <body> - -#data -<b><table><td><i></table> -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> - -#data -<b><table><td></b><i></table>X -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 30 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> -| "X" - -#data -<h1>Hello<h2>World -#errors -4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -13: Heading cannot be a child of another heading. -18: End of file seen and there were open elements. -#document -| <html> -| <head> -| <body> -| <h1> -| "Hello" -| <h2> -| "World" - -#data -<a><p>X<a>Y</a>Z</p></a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 10 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <a> -| <p> -| <a> -| "X" -| <a> -| "Y" -| "Z" - -#data -<b><button>foo</b>bar -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <b> -| <button> -| <b> -| "foo" -| "bar" - -#data -<!DOCTYPE html><span><button>foo</span>bar -#errors -39: End tag “span” seen but there were unclosed elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <span> -| <button> -| "foobar" - -#data -<p><b><div><marquee></p></b></div>X -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -Line: 1 Col: 24 Unexpected end tag (p). Ignored. -Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <div> -| <b> -| <marquee> -| <p> -| "X" - -#data -<script><div></script></div><title><p></title><p><p> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected end tag (div). Ignored. -#document -| <html> -| <head> -| <script> -| "<div>" -| <title> -| "<p>" -| <body> -| <p> -| <p> - -#data -<!--><div>--<!--> -#errors -Line: 1 Col: 5 Incorrect comment. -Line: 1 Col: 10 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 17 Incorrect comment. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. -#document -| <!-- --> -| <html> -| <head> -| <body> -| <div> -| "--" -| <!-- --> - -#data -<p><hr></p> -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -#document -| <html> -| <head> -| <body> -| <p> -| <hr> -| <p> - -#data -<select><b><option><select><option></b></select>X -#errors -Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. -Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 48 Unexpected end tag (select). Ignored. -Line: 1 Col: 49 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> -| "X" - -#data -<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 63 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 64 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| <a> -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| <table> -| <a> -| <a> -| <b> -| "X" -| "C" -| <a> -| "Y" - -#data -<a X>0<b>1<a Y>2 -#errors -Line: 1 Col: 5 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| x="" -| "0" -| <b> -| "1" -| <b> -| <a> -| y="" -| "2" - -#data -<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X--> -#errors -Line: 1 Col: 7 Unexpected '-' after '--' found in comment. -Line: 1 Col: 14 Unexpected start tag (font). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 41 Unexpected start tag (b) in table context caused voodoo mode. -Line: 1 Col: 48 Unexpected implied end tag (b) in the table phase. -Line: 1 Col: 48 Unexpected table cell start tag (th) in the table body phase. -Line: 1 Col: 63 Got table cell end tag (th) while required end tags are missing. -Line: 1 Col: 71 Unexpected end of file. Expected table content. -#document -| <!-- - --> -| <html> -| <head> -| <body> -| <font> -| <div> -| "helloexcite!" -| <b> -| "me!" -| <table> -| <tbody> -| <tr> -| <th> -| <i> -| "please!" -| <!-- X --> - -#data -<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do--> -#errors -Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <li> -| "hello" -| <li> -| "world" -| <ul> -| "how" -| <li> -| "do" -| "you" -| <!-- do --> - -#data -<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E -#errors -Line: 1 Col: 54 Unexpected end tag (option) in the select phase. Ignored. -Line: 1 Col: 55 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "A" -| <option> -| "B" -| <optgroup> -| "C" -| <select> -| "DE" - -#data -< -#errors -Line: 1 Col: 1 Expected tag name. Got something else instead -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "<" - -#data -<# -#errors -Line: 1 Col: 1 Expected tag name. Got something else instead -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "<#" - -#data -</ -#errors -Line: 1 Col: 2 Expected closing tag. Unexpected end of file. -Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "</" - -#data -</# -#errors -Line: 1 Col: 2 Expected closing tag. Unexpected character '#' found. -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- # --> -| <html> -| <head> -| <body> - -#data -<? -#errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- ? --> -| <html> -| <head> -| <body> - -#data -<?# -#errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- ?# --> -| <html> -| <head> -| <body> - -#data -<! -#errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- --> -| <html> -| <head> -| <body> - -#data -<!# -#errors -Line: 1 Col: 3 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- # --> -| <html> -| <head> -| <body> - -#data -<?COMMENT?> -#errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- ?COMMENT? --> -| <html> -| <head> -| <body> - -#data -<!COMMENT> -#errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- COMMENT --> -| <html> -| <head> -| <body> - -#data -</ COMMENT > -#errors -Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. -Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- COMMENT --> -| <html> -| <head> -| <body> - -#data -<?COM--MENT?> -#errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- ?COM--MENT? --> -| <html> -| <head> -| <body> - -#data -<!COM--MENT> -#errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- COM--MENT --> -| <html> -| <head> -| <body> - -#data -</ COM--MENT > -#errors -Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. -Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- COM--MENT --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><style> EOF -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| " EOF" -| <body> - -#data -<!DOCTYPE html><script> <!-- </script> --> </script> EOF -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| " <!-- " -| " " -| <body> -| "--> EOF" - -#data -<b><p></b>TEST -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <b> -| <p> -| <b> -| "TEST" - -#data -<p id=a><b><p id=b></b>TEST -#errors -Line: 1 Col: 8 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end tag (p). Ignored. -Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <p> -| id="a" -| <b> -| <p> -| id="b" -| "TEST" - -#data -<b id=a><p><b id=b></p></b>TEST -#errors -Line: 1 Col: 8 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (p). Ignored. -Line: 1 Col: 27 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 31 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| id="a" -| <p> -| <b> -| id="b" -| "TEST" - -#data -<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body> -#errors -Line: 1 Col: 61 Unexpected end tag (p). Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "U-test" -| <body> -| <div> -| <p> -| "Test" -| <u> - -#data -<!DOCTYPE html><font><table></font></table></font> -#errors -Line: 1 Col: 35 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <table> - -#data -<font><p>hello<b>cruel</font>world -#errors -Line: 1 Col: 6 Unexpected start tag (font). Expected DOCTYPE. -Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 34 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <font> -| <p> -| <font> -| "hello" -| <b> -| "cruel" -| <b> -| "world" - -#data -<b>Test</i>Test -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 11 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "TestTest" - -#data -<b>A<cite>B<div>C -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "A" -| <cite> -| "B" -| <div> -| "C" - -#data -<b>A<cite>B<div>C</cite>D -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end tag (cite). Ignored. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "A" -| <cite> -| "B" -| <div> -| "CD" - -#data -<b>A<cite>B<div>C</b>D -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 21 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 22 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "A" -| <cite> -| "B" -| <div> -| <b> -| "C" -| "D" - -#data - -#errors -Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<DIV> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 5 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> - -#data -<DIV> abc -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 9 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc" - -#data -<DIV> abc <B> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 13 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> - -#data -<DIV> abc <B> def -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def" - -#data -<DIV> abc <B> def <I> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 21 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> - -#data -<DIV> abc <B> def <I> ghi -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi" - -#data -<DIV> abc <B> def <I> ghi <P> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <p> - -#data -<DIV> abc <B> def <I> ghi <P> jkl -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 33 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <p> -| " jkl" - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <b> -| " jkl " - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 42 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <b> -| " jkl " -| " mno" - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " -| " pqr" - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 56 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " -| " pqr " - -#data -<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 60 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " abc " -| <b> -| " def " -| <i> -| " ghi " -| <i> -| <p> -| <i> -| <b> -| " jkl " -| " mno " -| " pqr " -| " stu" - -#data -<test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> -#errors -Line: 1 Col: 1040 Unexpected start tag (test). Expected DOCTYPE. -Line: 1 Col: 1040 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <test> -| attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------="" - -#data -<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe -#errors -Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 39 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 39 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 39 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 45 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. - -#document -| <html> -| <head> -| <body> -| <a> -| href="blah" -| "aba" -| <a> -| href="foo" -| "br" -| <a> -| href="foo" -| "x" -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| href="foo" -| "aoe" - -#data -<a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe -#errors -Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 60 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| href="blah" -| "abax" -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| href="foo" -| "br" -| "aoe" - -#data -<table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 29 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| href="blah" -| "aba" -| <a> -| href="blah" -| "x" -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| href="foo" -| "br" -| <a> -| href="blah" -| "aoe" - -#data -<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa -#errors -Line: 1 Col: 10 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 45 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 47 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| href="a" -| "aa" -| <marquee> -| "aa" -| <a> -| href="b" -| "bb" -| "aa" - -#data -<wbr><strike><code></strike><code><strike></code> -#errors -Line: 1 Col: 5 Unexpected start tag (wbr). Expected DOCTYPE. -Line: 1 Col: 28 End tag (strike) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 49 Unexpected end tag (code). Ignored. -#document -| <html> -| <head> -| <body> -| <wbr> -| <strike> -| <code> -| <code> -| <code> -| <strike> - -#data -<!DOCTYPE html><spacer>foo -#errors -26: End of file seen and there were open elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <spacer> -| "foo" - -#data -<title><meta></title><link><title><meta></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| "<meta>" -| <link> -| <title> -| "<meta>" -| <body> - -#data -<style><!--</style><meta><script>--><link></script> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 51 Unexpected end of file. Expected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--" -| <meta> -| <script> -| "--><link>" -| <body> - -#data -<head><meta></head><link> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved. -#document -| <html> -| <head> -| <meta> -| <link> -| <body> - -#data -<table><tr><tr><td><td><span><th><span>X</table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 33 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <tr> -| <td> -| <td> -| <span> -| <th> -| <span> -| "X" - -#data -<body><body><base><link><meta><title><p></title><body><p></body> -#errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (body). -Line: 1 Col: 54 Unexpected start tag (body). -Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body). -#document -| <html> -| <head> -| <body> -| <base> -| <link> -| <meta> -| <title> -| "<p>" -| <p> - -#data -<textarea><p></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <textarea> -| "<p>" - -#data -<p><image></p> -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected start tag (image). Treated as img. -#document -| <html> -| <head> -| <body> -| <p> -| <img> - -#data -<a><table><a></table><p><a><div><a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 13 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 13 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 21 Unexpected end tag (table). Expected end tag (a). -Line: 1 Col: 27 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 27 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 32 Unexpected end tag (p). Ignored. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 35 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| <a> -| <table> -| <p> -| <a> -| <div> -| <a> - -#data -<head></p><meta><p> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end tag (p). Ignored. -#document -| <html> -| <head> -| <meta> -| <body> -| <p> - -#data -<head></html><meta><p> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected start tag (meta). -#document -| <html> -| <head> -| <body> -| <meta> -| <p> - -#data -<b><table><td><i></table> -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> - -#data -<b><table><td></b><i></table> -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| <table> -| <tbody> -| <tr> -| <td> -| <i> - -#data -<h1><h2> -#errors -4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -8: Heading cannot be a child of another heading. -8: End of file seen and there were open elements. -#document -| <html> -| <head> -| <body> -| <h1> -| <h2> - -#data -<a><p><a></a></p></a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 9 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <a> -| <p> -| <a> -| <a> - -#data -<b><button></b></button></b> -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <b> -| <button> -| <b> - -#data -<p><b><div><marquee></p></b></div> -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -Line: 1 Col: 24 Unexpected end tag (p). Ignored. -Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 34 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <div> -| <b> -| <marquee> -| <p> - -#data -<script></script></div><title></title><p><p> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (div). Ignored. -#document -| <html> -| <head> -| <script> -| <title> -| <body> -| <p> -| <p> - -#data -<p><hr></p> -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -#document -| <html> -| <head> -| <body> -| <p> -| <hr> -| <p> - -#data -<select><b><option><select><option></b></select> -#errors -Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. -Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 48 Unexpected end tag (select). Ignored. -Line: 1 Col: 48 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> - -#data -<html><head><title></title><body></body></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| <body> - -#data -<a><table><td><a><table></table><a></tr><a></table><a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 54 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 54 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 54 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| <a> -| <table> -| <tbody> -| <tr> -| <td> -| <a> -| <table> -| <a> -| <a> - -#data -<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul> -#errors -Line: 1 Col: 4 Unexpected start tag (ul). Expected DOCTYPE. -Line: 1 Col: 45 Missing end tag (div, li). -Line: 1 Col: 58 Missing end tag (address, li). -Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| <div> -| <li> -| <li> -| <li> -| <div> -| <li> -| <address> -| <li> -| <b> -| <em> -| <li> - -#data -<ul><li><ul></li><li>a</li></ul></li></ul> -#errors -XXX: fix me -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| <ul> -| <li> -| "a" - -#data -<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -#document -| <html> -| <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> - -#data -<h1><table><td><h3></table><h3></h1> -#errors -4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -15: “td” start tag in table body. -27: Unclosed elements. -31: Heading cannot be a child of another heading. -36: End tag “h1” seen but there were unclosed elements. -#document -| <html> -| <head> -| <body> -| <h1> -| <table> -| <tbody> -| <tr> -| <td> -| <h3> -| <h3> - -#data -<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <col> -| <colgroup> -| <col> -| <col> -| <col> -| <colgroup> -| <col> -| <col> -| <thead> -| <tr> -| <td> - -#data -<table><col><tbody><col><tr><col><td><col></table><col> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 55 Unexpected start tag col. Ignored. -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <col> -| <tbody> -| <colgroup> -| <col> -| <tbody> -| <tr> -| <colgroup> -| <col> -| <tbody> -| <tr> -| <td> -| <colgroup> -| <col> - -#data -<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 52 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 80 Unexpected start tag colgroup. Ignored. -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> -| <tbody> -| <colgroup> -| <tbody> -| <tr> -| <colgroup> -| <tbody> -| <tr> -| <td> -| <colgroup> - -#data -</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> -#errors -Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element. -Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element. -Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element. -Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element. -Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element. -Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element. -Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element. -Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element. -Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element. -Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element. -Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element. -Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element. -Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element. -Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element. -Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element. -Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element. -Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element. -Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element. -Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element. -Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element. -Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element. -Line: 1 Col: 130 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 140 This element (img) has no end tag. -Line: 1 Col: 148 Unexpected end tag (title). Ignored. -Line: 1 Col: 155 Unexpected end tag (span). Ignored. -Line: 1 Col: 163 Unexpected end tag (style). Ignored. -Line: 1 Col: 172 Unexpected end tag (script). Ignored. -Line: 1 Col: 180 Unexpected end tag (table). Ignored. -Line: 1 Col: 185 Unexpected end tag (th). Ignored. -Line: 1 Col: 190 Unexpected end tag (td). Ignored. -Line: 1 Col: 195 Unexpected end tag (tr). Ignored. -Line: 1 Col: 203 This element (frame) has no end tag. -Line: 1 Col: 210 This element (area) has no end tag. -Line: 1 Col: 217 Unexpected end tag (link). Ignored. -Line: 1 Col: 225 This element (param) has no end tag. -Line: 1 Col: 230 This element (hr) has no end tag. -Line: 1 Col: 238 This element (input) has no end tag. -Line: 1 Col: 244 Unexpected end tag (col). Ignored. -Line: 1 Col: 251 Unexpected end tag (base). Ignored. -Line: 1 Col: 258 Unexpected end tag (meta). Ignored. -Line: 1 Col: 269 This element (basefont) has no end tag. -Line: 1 Col: 279 This element (bgsound) has no end tag. -Line: 1 Col: 287 This element (embed) has no end tag. -Line: 1 Col: 296 This element (spacer) has no end tag. -Line: 1 Col: 300 Unexpected end tag (p). Ignored. -Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 320 Unexpected end tag (caption). Ignored. -Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 339 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 355 Unexpected end tag (thead). Ignored. -Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 393 Unexpected end tag (dir). Ignored. -Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 460 This element (wbr) has no end tag. -Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 513 Unexpected end tag (html). Ignored. -Line: 1 Col: 513 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 520 Unexpected end tag (head). Ignored. -Line: 1 Col: 529 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 537 This element (image) has no end tag. -Line: 1 Col: 547 This element (isindex) has no end tag. -Line: 1 Col: 557 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 568 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 579 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 599 Unexpected end tag (option). Ignored. -Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 622 Unexpected end tag (textarea). Ignored. -#document -| <html> -| <head> -| <body> -| <br> -| <p> - -#data -<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode. -Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode. -Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode. -Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode. -Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode. -Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (blink). Ignored. -Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode. -Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode. -Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag. -Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode. -Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode. -Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode. -Line: 1 Col: 99 Unexpected end tag (select). Ignored. -Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode. -Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag. -Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode. -Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag. -Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode. -Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag. -Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode. -Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag. -Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode. -Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag. -Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode. -Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag. -Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored. -Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode. -Line: 1 Col: 141 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode. -Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode. -Line: 1 Col: 151 This element (img) has no end tag. -Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode. -Line: 1 Col: 159 Unexpected end tag (title). Ignored. -Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 166 Unexpected end tag (span). Ignored. -Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode. -Line: 1 Col: 174 Unexpected end tag (style). Ignored. -Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode. -Line: 1 Col: 183 Unexpected end tag (script). Ignored. -Line: 1 Col: 196 Unexpected end tag (th). Ignored. -Line: 1 Col: 201 Unexpected end tag (td). Ignored. -Line: 1 Col: 206 Unexpected end tag (tr). Ignored. -Line: 1 Col: 214 This element (frame) has no end tag. -Line: 1 Col: 221 This element (area) has no end tag. -Line: 1 Col: 228 Unexpected end tag (link). Ignored. -Line: 1 Col: 236 This element (param) has no end tag. -Line: 1 Col: 241 This element (hr) has no end tag. -Line: 1 Col: 249 This element (input) has no end tag. -Line: 1 Col: 255 Unexpected end tag (col). Ignored. -Line: 1 Col: 262 Unexpected end tag (base). Ignored. -Line: 1 Col: 269 Unexpected end tag (meta). Ignored. -Line: 1 Col: 280 This element (basefont) has no end tag. -Line: 1 Col: 290 This element (bgsound) has no end tag. -Line: 1 Col: 298 This element (embed) has no end tag. -Line: 1 Col: 307 This element (spacer) has no end tag. -Line: 1 Col: 311 Unexpected end tag (p). Ignored. -Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 331 Unexpected end tag (caption). Ignored. -Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 350 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 366 Unexpected end tag (thead). Ignored. -Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 404 Unexpected end tag (dir). Ignored. -Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 471 This element (wbr) has no end tag. -Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 524 Unexpected end tag (html). Ignored. -Line: 1 Col: 524 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 531 Unexpected end tag (head). Ignored. -Line: 1 Col: 540 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 548 This element (image) has no end tag. -Line: 1 Col: 558 This element (isindex) has no end tag. -Line: 1 Col: 568 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 579 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 590 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 610 Unexpected end tag (option). Ignored. -Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 633 Unexpected end tag (textarea). Ignored. -#document -| <html> -| <head> -| <body> -| <br> -| <table> -| <tbody> -| <tr> -| <p> - -#data -<frameset> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 10 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <frameset> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests10.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests10.dat deleted file mode 100644 index 4f8df86f2..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests10.dat +++ /dev/null @@ -1,799 +0,0 @@ -#data -<!DOCTYPE html><svg></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> - -#data -<!DOCTYPE html><svg></svg><![CDATA[a]]> -#errors -29: Bogus comment -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <!-- [CDATA[a]] --> - -#data -<!DOCTYPE html><body><svg></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> - -#data -<!DOCTYPE html><body><select><svg></svg></select> -#errors -35: Stray “svg” start tag. -42: Stray end tag “svg” -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!DOCTYPE html><body><select><option><svg></svg></option></select> -#errors -43: Stray “svg” start tag. -50: Stray end tag “svg” -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!DOCTYPE html><body><table><svg></svg></table> -#errors -34: Start tag “svg” seen in “table”. -41: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <table> - -#data -<!DOCTYPE html><body><table><svg><g>foo</g></svg></table> -#errors -34: Start tag “svg” seen in “table”. -46: Stray end tag “g”. -53: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <table> - -#data -<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table> -#errors -34: Start tag “svg” seen in “table”. -46: Stray end tag “g”. -58: Stray end tag “g”. -65: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <table> - -#data -<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table> -#errors -41: Start tag “svg” seen in “table”. -53: Stray end tag “g”. -65: Stray end tag “g”. -72: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <table> -| <tbody> - -#data -<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table> -#errors -45: Start tag “svg” seen in “table”. -57: Stray end tag “g”. -69: Stray end tag “g”. -76: Stray end tag “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" - -#data -<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -70: HTML start tag “p” in a foreign namespace context. -81: “table” closed but “caption” was still open. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux -#errors -78: “table” closed but “caption” was still open. -78: Unclosed elements on stack. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -44: Start tag “svg” seen in “table”. -56: Stray end tag “g”. -68: Stray end tag “g”. -71: HTML start tag “p” in a foreign namespace context. -71: Start tag “p” seen in “table”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" -| <table> -| <colgroup> -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -50: Stray “svg” start tag. -54: Stray “g” start tag. -62: Stray end tag “g” -66: Stray “g” start tag. -74: Stray end tag “g” -77: Stray “p” start tag. -88: “table” end tag with “select” open. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| "foobarbaz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux -#errors -36: Start tag “select” seen in “table”. -42: Stray “svg” start tag. -46: Stray “g” start tag. -54: Stray end tag “g” -58: Stray “g” start tag. -66: Stray end tag “g” -69: Stray “p” start tag. -80: “table” end tag with “select” open. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "foobarbaz" -| <table> -| <p> -| "quux" - -#data -<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz -#errors -41: Stray “svg” start tag. -68: HTML start tag “p” in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz -#errors -34: Stray “svg” start tag. -61: HTML start tag “p” in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg g> -| "foo" -| <svg g> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><frameset><svg><g></g><g></g><p><span> -#errors -31: Stray “svg” start tag. -35: Stray “g” start tag. -40: Stray end tag “g” -44: Stray “g” start tag. -49: Stray end tag “g” -52: Stray “p” start tag. -58: Stray “span” start tag. -58: End of file seen and there were open elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span> -#errors -42: Stray “svg” start tag. -46: Stray “g” start tag. -51: Stray end tag “g” -55: Stray “g” start tag. -60: Stray end tag “g” -63: Stray “p” start tag. -69: Stray “span” start tag. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| <svg svg> -| xlink href="foo" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <svg svg> -| <svg g> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <svg svg> -| <svg g> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <svg svg> -| <svg g> -| xlink href="foo" -| xml lang="en" -| "bar" - -#data -<svg></path> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<div><svg></div>a -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| "a" - -#data -<div><svg><path></div>a -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| "a" - -#data -<div><svg><path></svg><path> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <path> - -#data -<div><svg><path><foreignObject><math></div>a -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <svg foreignObject> -| <math math> -| "a" - -#data -<div><svg><path><foreignObject><p></div>a -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <svg foreignObject> -| <p> -| "a" - -#data -<!DOCTYPE html><svg><desc><div><svg><ul>a -#errors -40: HTML start tag “ul” in a foreign namespace context. -41: End of file in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg desc> -| <div> -| <svg svg> -| <ul> -| "a" - -#data -<!DOCTYPE html><svg><desc><svg><ul>a -#errors -35: HTML start tag “ul” in a foreign namespace context. -36: End of file in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg desc> -| <svg svg> -| <ul> -| "a" - -#data -<!DOCTYPE html><p><svg><desc><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <svg svg> -| <svg desc> -| <p> - -#data -<!DOCTYPE html><p><svg><title><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <svg svg> -| <svg title> -| <p> - -#data -<div><svg><path><foreignObject><p></foreignObject><p> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <svg svg> -| <svg path> -| <svg foreignObject> -| <p> -| <p> - -#data -<math><mi><div><object><div><span></span></div></object></div></mi><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <div> -| <object> -| <div> -| <span> -| <math mi> - -#data -<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <svg svg> -| <svg foreignObject> -| <div> -| <div> -| <math mi> - -#data -<svg><script></script><path> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg script> -| <svg path> - -#data -<table><svg></svg><tr> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <table> -| <tbody> -| <tr> - -#data -<math><mi><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <math mglyph> - -#data -<math><mi><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| <math malignmark> - -#data -<math><mo><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mo> -| <math mglyph> - -#data -<math><mo><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mo> -| <math malignmark> - -#data -<math><mn><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| <math mglyph> - -#data -<math><mn><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| <math malignmark> - -#data -<math><ms><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math ms> -| <math mglyph> - -#data -<math><ms><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math ms> -| <math malignmark> - -#data -<math><mtext><mglyph> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mtext> -| <math mglyph> - -#data -<math><mtext><malignmark> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mtext> -| <math malignmark> - -#data -<math><annotation-xml><svg></svg></annotation-xml><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <math mi> - -#data -<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <svg foreignObject> -| <div> -| <math math> -| <math mi> -| <span> -| <svg path> -| <math mi> - -#data -<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <svg foreignObject> -| <math math> -| <math mi> -| <svg svg> -| <math mo> -| <span> -| <svg path> -| <math mi> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests11.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests11.dat deleted file mode 100644 index 638cde479..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests11.dat +++ /dev/null @@ -1,482 +0,0 @@ -#data -<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data -<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' DIFFUSECONSTANT='' EDGEMODE='' EXTERNALRESOURCESREQUIRED='' FILTERRES='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data -<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' contentscripttype='' contentstyletype='' diffuseconstant='' edgemode='' externalresourcesrequired='' filterres='' filterunits='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| attributeName="" -| attributeType="" -| baseFrequency="" -| baseProfile="" -| calcMode="" -| clipPathUnits="" -| contentScriptType="" -| contentStyleType="" -| diffuseConstant="" -| edgeMode="" -| externalResourcesRequired="" -| filterRes="" -| filterUnits="" -| glyphRef="" -| gradientTransform="" -| gradientUnits="" -| kernelMatrix="" -| kernelUnitLength="" -| keyPoints="" -| keySplines="" -| keyTimes="" -| lengthAdjust="" -| limitingConeAngle="" -| markerHeight="" -| markerUnits="" -| markerWidth="" -| maskContentUnits="" -| maskUnits="" -| numOctaves="" -| pathLength="" -| patternContentUnits="" -| patternTransform="" -| patternUnits="" -| pointsAtX="" -| pointsAtY="" -| pointsAtZ="" -| preserveAlpha="" -| preserveAspectRatio="" -| primitiveUnits="" -| refX="" -| refY="" -| repeatCount="" -| repeatDur="" -| requiredExtensions="" -| requiredFeatures="" -| specularConstant="" -| specularExponent="" -| spreadMethod="" -| startOffset="" -| stdDeviation="" -| stitchTiles="" -| surfaceScale="" -| systemLanguage="" -| tableValues="" -| targetX="" -| targetY="" -| textLength="" -| viewBox="" -| viewTarget="" -| xChannelSelector="" -| yChannelSelector="" -| zoomAndPan="" - -#data -<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| attributename="" -| attributetype="" -| basefrequency="" -| baseprofile="" -| calcmode="" -| clippathunits="" -| contentscripttype="" -| contentstyletype="" -| diffuseconstant="" -| edgemode="" -| externalresourcesrequired="" -| filterres="" -| filterunits="" -| glyphref="" -| gradienttransform="" -| gradientunits="" -| kernelmatrix="" -| kernelunitlength="" -| keypoints="" -| keysplines="" -| keytimes="" -| lengthadjust="" -| limitingconeangle="" -| markerheight="" -| markerunits="" -| markerwidth="" -| maskcontentunits="" -| maskunits="" -| numoctaves="" -| pathlength="" -| patterncontentunits="" -| patterntransform="" -| patternunits="" -| pointsatx="" -| pointsaty="" -| pointsatz="" -| preservealpha="" -| preserveaspectratio="" -| primitiveunits="" -| refx="" -| refy="" -| repeatcount="" -| repeatdur="" -| requiredextensions="" -| requiredfeatures="" -| specularconstant="" -| specularexponent="" -| spreadmethod="" -| startoffset="" -| stddeviation="" -| stitchtiles="" -| surfacescale="" -| systemlanguage="" -| tablevalues="" -| targetx="" -| targety="" -| textlength="" -| viewbox="" -| viewtarget="" -| xchannelselector="" -| ychannelselector="" -| zoomandpan="" - -#data -<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg altGlyph> -| <svg altGlyphDef> -| <svg altGlyphItem> -| <svg animateColor> -| <svg animateMotion> -| <svg animateTransform> -| <svg clipPath> -| <svg feBlend> -| <svg feColorMatrix> -| <svg feComponentTransfer> -| <svg feComposite> -| <svg feConvolveMatrix> -| <svg feDiffuseLighting> -| <svg feDisplacementMap> -| <svg feDistantLight> -| <svg feFlood> -| <svg feFuncA> -| <svg feFuncB> -| <svg feFuncG> -| <svg feFuncR> -| <svg feGaussianBlur> -| <svg feImage> -| <svg feMerge> -| <svg feMergeNode> -| <svg feMorphology> -| <svg feOffset> -| <svg fePointLight> -| <svg feSpecularLighting> -| <svg feSpotLight> -| <svg feTile> -| <svg feTurbulence> -| <svg foreignObject> -| <svg glyphRef> -| <svg linearGradient> -| <svg radialGradient> -| <svg textPath> - -#data -<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg altGlyph> -| <svg altGlyphDef> -| <svg altGlyphItem> -| <svg animateColor> -| <svg animateMotion> -| <svg animateTransform> -| <svg clipPath> -| <svg feBlend> -| <svg feColorMatrix> -| <svg feComponentTransfer> -| <svg feComposite> -| <svg feConvolveMatrix> -| <svg feDiffuseLighting> -| <svg feDisplacementMap> -| <svg feDistantLight> -| <svg feFlood> -| <svg feFuncA> -| <svg feFuncB> -| <svg feFuncG> -| <svg feFuncR> -| <svg feGaussianBlur> -| <svg feImage> -| <svg feMerge> -| <svg feMergeNode> -| <svg feMorphology> -| <svg feOffset> -| <svg fePointLight> -| <svg feSpecularLighting> -| <svg feSpotLight> -| <svg feTile> -| <svg feTurbulence> -| <svg foreignObject> -| <svg glyphRef> -| <svg linearGradient> -| <svg radialGradient> -| <svg textPath> - -#data -<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg altGlyph> -| <svg altGlyphDef> -| <svg altGlyphItem> -| <svg animateColor> -| <svg animateMotion> -| <svg animateTransform> -| <svg clipPath> -| <svg feBlend> -| <svg feColorMatrix> -| <svg feComponentTransfer> -| <svg feComposite> -| <svg feConvolveMatrix> -| <svg feDiffuseLighting> -| <svg feDisplacementMap> -| <svg feDistantLight> -| <svg feFlood> -| <svg feFuncA> -| <svg feFuncB> -| <svg feFuncG> -| <svg feFuncR> -| <svg feGaussianBlur> -| <svg feImage> -| <svg feMerge> -| <svg feMergeNode> -| <svg feMorphology> -| <svg feOffset> -| <svg fePointLight> -| <svg feSpecularLighting> -| <svg feSpotLight> -| <svg feTile> -| <svg feTurbulence> -| <svg foreignObject> -| <svg glyphRef> -| <svg linearGradient> -| <svg radialGradient> -| <svg textPath> - -#data -<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math altglyph> -| <math altglyphdef> -| <math altglyphitem> -| <math animatecolor> -| <math animatemotion> -| <math animatetransform> -| <math clippath> -| <math feblend> -| <math fecolormatrix> -| <math fecomponenttransfer> -| <math fecomposite> -| <math feconvolvematrix> -| <math fediffuselighting> -| <math fedisplacementmap> -| <math fedistantlight> -| <math feflood> -| <math fefunca> -| <math fefuncb> -| <math fefuncg> -| <math fefuncr> -| <math fegaussianblur> -| <math feimage> -| <math femerge> -| <math femergenode> -| <math femorphology> -| <math feoffset> -| <math fepointlight> -| <math fespecularlighting> -| <math fespotlight> -| <math fetile> -| <math feturbulence> -| <math foreignobject> -| <math glyphref> -| <math lineargradient> -| <math radialgradient> -| <math textpath> - -#data -<!DOCTYPE html><body><svg><solidColor /></svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg solidcolor> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests12.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests12.dat deleted file mode 100644 index 63107d277..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests12.dat +++ /dev/null @@ -1,62 +0,0 @@ -#data -<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "foo" -| <math math> -| <math mtext> -| <i> -| "baz" -| <math annotation-xml> -| <svg svg> -| <svg desc> -| <b> -| "eggs" -| <svg g> -| <svg foreignObject> -| <p> -| "spam" -| <table> -| <tbody> -| <tr> -| <td> -| <img> -| <svg g> -| "quux" -| "bar" - -#data -<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "foo" -| <math math> -| <math mtext> -| <i> -| "baz" -| <math annotation-xml> -| <svg svg> -| <svg desc> -| <b> -| "eggs" -| <svg g> -| <svg foreignObject> -| <p> -| "spam" -| <table> -| <tbody> -| <tr> -| <td> -| <img> -| <svg g> -| "quux" -| "bar" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests14.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests14.dat deleted file mode 100644 index b8713f885..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests14.dat +++ /dev/null @@ -1,74 +0,0 @@ -#data -<!DOCTYPE html><html><body><xyz:abc></xyz:abc> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xyz:abc> - -#data -<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xyz:abc> -| <span> - -#data -<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc> -#errors -15: Unexpected start tag html -#document -| <!DOCTYPE html> -| <html> -| abc:def="gh" -| <head> -| <body> -| <xyz:abc> - -#data -<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo> -#errors -15: Unexpected start tag html -#document -| <!DOCTYPE html> -| <html> -| xml:lang="bar" -| <head> -| <body> - -#data -<!DOCTYPE html><html 123=456> -#errors -#document -| <!DOCTYPE html> -| <html> -| 123="456" -| <head> -| <body> - -#data -<!DOCTYPE html><html 123=456><html 789=012> -#errors -#document -| <!DOCTYPE html> -| <html> -| 123="456" -| 789="012" -| <head> -| <body> - -#data -<!DOCTYPE html><html><body 789=012> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| 789="012" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests15.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests15.dat deleted file mode 100644 index 6ce1c0d16..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests15.dat +++ /dev/null @@ -1,208 +0,0 @@ -#data -<!DOCTYPE html><p><b><i><u></p> <p>X -#errors -Line: 1 Col: 31 Unexpected end tag (p). Ignored. -Line: 1 Col: 36 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " " -| <p> -| "X" - -#data -<p><b><i><u></p> -<p>X -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag (p). Ignored. -Line: 2 Col: 4 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " -" -| <p> -| "X" - -#data -<!doctype html></html> <head> -#errors -Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " " - -#data -<!doctype html></body><meta> -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> - -#data -<html></html><!-- foo --> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html) after the (implied) root element. -#document -| <html> -| <head> -| <body> -| <!-- foo --> - -#data -<!doctype html></body><title>X</title> -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" - -#data -<!doctype html><table> X<meta></table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " X" -| <meta> -| <table> - -#data -<!doctype html><table> x</table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> - -#data -<!doctype html><table> x </table> -#errors -Line: 1 Col: 25 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x " -| <table> - -#data -<!doctype html><table><tr> x</table> -#errors -Line: 1 Col: 28 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " x" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table>X<style> <tr>x </style> </table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <style> -| " <tr>x " -| " " - -#data -<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div> -#errors -Line: 1 Col: 30 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 37 Unexpected end tag (a) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <a> -| "foo" -| <table> -| " " -| <tbody> -| <tr> -| <td> -| "bar" -| " " - -#data -<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> -#errors -6: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -13: Stray start tag “frame”. -21: Stray end tag “frame”. -29: Stray end tag “frame”. -39: “frameset” start tag after “body” already open. -105: End of file seen inside an [R]CDATA element. -105: End of file seen and there were open elements. -XXX: These errors are wrong, please fix me! -#document -| <html> -| <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> -| "</frameset><noframes>" - -#data -<!DOCTYPE html><object></html> -#errors -1: Expected closing tag. Unexpected end of file -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests16.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests16.dat deleted file mode 100644 index c8ef66f0e..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests16.dat +++ /dev/null @@ -1,2299 +0,0 @@ -#data -<!doctype html><script> -#errors -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script>a -#errors -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<!doctype html><script>< -#errors -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<!doctype html><script></ -#errors -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<!doctype html><script></S -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<!doctype html><script></SC -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<!doctype html><script></SCR -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<!doctype html><script></SCRI -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<!doctype html><script></SCRIP -#errors -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<!doctype html><script></SCRIPT -#errors -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script></s -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<!doctype html><script></sc -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<!doctype html><script></scr -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<!doctype html><script></scri -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<!doctype html><script></scrip -#errors -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<!doctype html><script></script -#errors -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<!doctype html><script></script -#errors -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| <body> - -#data -<!doctype html><script><! -#errors -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<!doctype html><script><!a -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<!doctype html><script><!- -#errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<!doctype html><script><!-a -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<!doctype html><script><!-- -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--a -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<!doctype html><script><!--< -#errors -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<!doctype html><script><!--<a -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<!doctype html><script><!--</ -#errors -Line: 1 Col: 27 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<!doctype html><script><!--</script -#errors -Line: 1 Col: 35 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<!doctype html><script><!--</script -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<!doctype html><script><!--<s -#errors -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<!doctype html><script><!--<script -#errors -Line: 1 Col: 34 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<!doctype html><script><!--<script -#errors -Line: 1 Col: 35 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<!doctype html><script><!--<script < -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<!doctype html><script><!--<script <a -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<!doctype html><script><!--<script </ -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<!doctype html><script><!--<script </s -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -Line: 1 Col: 43 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<!doctype html><script><!--<script </scripta -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<!doctype html><script><!--<script </script -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script> -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<!doctype html><script><!--<script </script/ -#errors -Line: 1 Col: 44 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<!doctype html><script><!--<script </script < -#errors -Line: 1 Col: 45 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<!doctype html><script><!--<script </script <a -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<!doctype html><script><!--<script </script </ -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -Line: 1 Col: 52 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<!doctype html><script><!--<script </script </script -#errors -Line: 1 Col: 53 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script/ -#errors -Line: 1 Col: 53 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script </script </script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<!doctype html><script><!--<script - -#errors -Line: 1 Col: 36 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<!doctype html><script><!--<script -a -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<!doctype html><script><!--<script -< -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -<" -| <body> - -#data -<!doctype html><script><!--<script -- -#errors -Line: 1 Col: 37 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<!doctype html><script><!--<script --a -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<!doctype html><script><!--<script --< -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --<" -| <body> - -#data -<!doctype html><script><!--<script --> -#errors -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script -->< -#errors -Line: 1 Col: 39 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<!doctype html><script><!--<script --></ -#errors -Line: 1 Col: 40 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -Line: 1 Col: 46 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<!doctype html><script><!--<script --></script -#errors -Line: 1 Col: 47 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script/ -#errors -Line: 1 Col: 47 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script --></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<!doctype html><script><!--<script><\/script>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<!doctype html><script><!--<script></scr'+'ipt>--></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>--><!--</script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-- ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- -></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>- - ></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<!doctype html><script><!--<script></script><script></script>-></script> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<!doctype html><script><!--<script>--!></script>X -#errors -Line: 1 Col: 49 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<!doctype html><script><!--<scr'+'ipt></script>--></script> -#errors -Line: 1 Col: 59 Unexpected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<!doctype html><script><!--<script></scr'+'ipt></script>X -#errors -Line: 1 Col: 57 Unexpected end of file. Expected end tag (script). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<!doctype html><style><!--<style></style>--></style> -#errors -Line: 1 Col: 52 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<!doctype html><style><!--</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<!doctype html><style><!--...</style>...--></style> -#errors -Line: 1 Col: 51 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<!doctype html><style><!--...<style><!--...--!></style>--></style> -#errors -Line: 1 Col: 66 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<!doctype html><style><!--...</style><!-- --><style>@import ...</style> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<!doctype html><style>...<style><!--...</style><!-- --></style> -#errors -Line: 1 Col: 63 Unexpected end tag (style). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<!doctype html><style>...<!--[if IE]><style>...</style>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<!doctype html><title><!--<title></title>--></title> -#errors -Line: 1 Col: 52 Unexpected end tag (title). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "<!--<title>" -| <body> -| "-->" - -#data -<!doctype html><title></title></title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "</title>" -| <body> - -#data -<!doctype html><title>foo/title><link></head><body>X -#errors -Line: 1 Col: 52 Unexpected end of file. Expected end tag (title). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<!doctype html><noscript><!--<noscript></noscript>--></noscript> -#errors -Line: 1 Col: 64 Unexpected end tag (noscript). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<!doctype html><noscript><!--</noscript>X<noscript>--></noscript> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<!doctype html><noscript><iframe></noscript>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<!doctype html><noframes><!--<noframes></noframes>--></noframes> -#errors -Line: 1 Col: 64 Unexpected end tag (noframes). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<!doctype html><noframes><body><script><!--...</script></body></noframes></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<!doctype html><textarea><!--<textarea></textarea>--></textarea> -#errors -Line: 1 Col: 64 Unexpected end tag (textarea). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<!doctype html><textarea></textarea></textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<!doctype html><textarea><</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "<" - -#data -<!doctype html><textarea>a<b</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "a<b" - -#data -<!doctype html><iframe><!--<iframe></iframe>--></iframe> -#errors -Line: 1 Col: 56 Unexpected end tag (iframe). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<!doctype html><iframe>...<!--X->...<!--/X->...</iframe> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<!doctype html><xmp><!--<xmp></xmp>--></xmp> -#errors -Line: 1 Col: 44 Unexpected end tag (xmp). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<!doctype html><noembed><!--<noembed></noembed>--></noembed> -#errors -Line: 1 Col: 60 Unexpected end tag (noembed). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script>a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "a" -| <body> - -#data -<script>< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<" -| <body> - -#data -<script></ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</" -| <body> - -#data -<script></S -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</S" -| <body> - -#data -<script></SC -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SC" -| <body> - -#data -<script></SCR -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCR" -| <body> - -#data -<script></SCRI -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRI" -| <body> - -#data -<script></SCRIP -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRIP" -| <body> - -#data -<script></SCRIPT -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</SCRIPT" -| <body> - -#data -<script></SCRIPT -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script></s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</s" -| <body> - -#data -<script></sc -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</sc" -| <body> - -#data -<script></scr -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scr" -| <body> - -#data -<script></scri -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scri" -| <body> - -#data -<script></scrip -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</scrip" -| <body> - -#data -<script></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</script" -| <body> - -#data -<script></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| <body> - -#data -<script><! -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!" -| <body> - -#data -<script><!a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!a" -| <body> - -#data -<script><!- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!-" -| <body> - -#data -<script><!-a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!-a" -| <body> - -#data -<script><!-- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--a" -| <body> - -#data -<script><!--< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<" -| <body> - -#data -<script><!--<a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<a" -| <body> - -#data -<script><!--</ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--</" -| <body> - -#data -<script><!--</script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--</script" -| <body> - -#data -<script><!--</script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--" -| <body> - -#data -<script><!--<s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<s" -| <body> - -#data -<script><!--<script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script" -| <body> - -#data -<script><!--<script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script " -| <body> - -#data -<script><!--<script < -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script <" -| <body> - -#data -<script><!--<script <a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script <a" -| <body> - -#data -<script><!--<script </ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </" -| <body> - -#data -<script><!--<script </s -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </s" -| <body> - -#data -<script><!--<script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script" -| <body> - -#data -<script><!--<script </scripta -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </scripta" -| <body> - -#data -<script><!--<script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script>" -| <body> - -#data -<script><!--<script </script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script/" -| <body> - -#data -<script><!--<script </script < -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 30 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script <" -| <body> - -#data -<script><!--<script </script <a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script <a" -| <body> - -#data -<script><!--<script </script </ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script </" -| <body> - -#data -<script><!--<script </script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script </script" -| <body> - -#data -<script><!--<script </script </script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script </script </script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script </script " -| <body> - -#data -<script><!--<script - -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -" -| <body> - -#data -<script><!--<script -a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -a" -| <body> - -#data -<script><!--<script -- -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --" -| <body> - -#data -<script><!--<script --a -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --a" -| <body> - -#data -<script><!--<script --> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script -->< -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --><" -| <body> - -#data -<script><!--<script --></ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --></" -| <body> - -#data -<script><!--<script --></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script --></script" -| <body> - -#data -<script><!--<script --></script -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script/ -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 32 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script --></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script -->" -| <body> - -#data -<script><!--<script><\/script>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script><\/script>-->" -| <body> - -#data -<script><!--<script></scr'+'ipt>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt>-->" -| <body> - -#data -<script><!--<script></script><script></script></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>" -| <body> - -#data -<script><!--<script></script><script></script>--><!--</script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>--><!--" -| <body> - -#data -<script><!--<script></script><script></script>-- ></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>-- >" -| <body> - -#data -<script><!--<script></script><script></script>- -></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- ->" -| <body> - -#data -<script><!--<script></script><script></script>- - ></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>- - >" -| <body> - -#data -<script><!--<script></script><script></script>-></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| "<!--<script></script><script></script>->" -| <body> - -#data -<script><!--<script>--!></script>X -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 34 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script>--!></script>X" -| <body> - -#data -<script><!--<scr'+'ipt></script>--></script> -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 44 Unexpected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<scr'+'ipt>" -| <body> -| "-->" - -#data -<script><!--<script></scr'+'ipt></script>X -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 42 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "<!--<script></scr'+'ipt></script>X" -| <body> - -#data -<style><!--<style></style>--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--<style>" -| <body> -| "-->" - -#data -<style><!--</style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--" -| <body> -| "X" - -#data -<style><!--...</style>...--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 36 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--..." -| <body> -| "...-->" - -#data -<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" -| <body> -| "X" - -#data -<style><!--...<style><!--...--!></style>--></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 51 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "<!--...<style><!--...--!>" -| <body> -| "-->" - -#data -<style><!--...</style><!-- --><style>@import ...</style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "<!--..." -| <!-- --> -| <style> -| "@import ..." -| <body> - -#data -<style>...<style><!--...</style><!-- --></style> -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 48 Unexpected end tag (style). -#document -| <html> -| <head> -| <style> -| "...<style><!--..." -| <!-- --> -| <body> - -#data -<style>...<!--[if IE]><style>...</style>X -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| "...<!--[if IE]><style>..." -| <body> -| "X" - -#data -<title><!--<title></title>--></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end tag (title). -#document -| <html> -| <head> -| <title> -| "<!--<title>" -| <body> -| "-->" - -#data -<title></title></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| "</title>" -| <body> - -#data -<title>foo/title><link></head><body>X -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected end of file. Expected end tag (title). -#document -| <html> -| <head> -| <title> -| "foo/title><link></head><body>X" -| <body> - -#data -<noscript><!--<noscript></noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (noscript). -#document -| <html> -| <head> -| <noscript> -| "<!--<noscript>" -| <body> -| "-->" - -#data -<noscript><!--</noscript>X<noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "X" -| <noscript> -| "-->" - -#data -<noscript><iframe></noscript>X -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<iframe>" -| <body> -| "X" - -#data -<noframes><!--<noframes></noframes>--></noframes> -#errors -Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (noframes). -#document -| <html> -| <head> -| <noframes> -| "<!--<noframes>" -| <body> -| "-->" - -#data -<noframes><body><script><!--...</script></body></noframes></html> -#errors -Line: 1 Col: 10 Unexpected start tag (noframes). Expected DOCTYPE. -#document -| <html> -| <head> -| <noframes> -| "<body><script><!--...</script></body>" -| <body> - -#data -<textarea><!--<textarea></textarea>--></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 49 Unexpected end tag (textarea). -#document -| <html> -| <head> -| <body> -| <textarea> -| "<!--<textarea>" -| "-->" - -#data -<textarea></textarea></textarea> -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <textarea> -| "</textarea>" - -#data -<iframe><!--<iframe></iframe>--></iframe> -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -Line: 1 Col: 41 Unexpected end tag (iframe). -#document -| <html> -| <head> -| <body> -| <iframe> -| "<!--<iframe>" -| "-->" - -#data -<iframe>...<!--X->...<!--/X->...</iframe> -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <iframe> -| "...<!--X->...<!--/X->..." - -#data -<xmp><!--<xmp></xmp>--></xmp> -#errors -Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. -Line: 1 Col: 29 Unexpected end tag (xmp). -#document -| <html> -| <head> -| <body> -| <xmp> -| "<!--<xmp>" -| "-->" - -#data -<noembed><!--<noembed></noembed>--></noembed> -#errors -Line: 1 Col: 9 Unexpected start tag (noembed). Expected DOCTYPE. -Line: 1 Col: 45 Unexpected end tag (noembed). -#document -| <html> -| <head> -| <body> -| <noembed> -| "<!--<noembed>" -| "-->" - -#data -<!doctype html><table> - -#errors -Line 2 Col 0 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " -" - -#data -<!doctype html><table><td><span><font></span><span> -#errors -Line 1 Col 26 Unexpected table cell start tag (td) in the table body phase. -Line 1 Col 45 Unexpected end tag (span). -Line 1 Col 51 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <span> -| <font> -| <font> -| <span> - -#data -<!doctype html><form><table></form><form></table></form> -#errors -35: Stray end tag “form”. -41: Start tag “form” seen in “table”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <table> -| <form> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests17.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests17.dat deleted file mode 100644 index 7b555f888..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests17.dat +++ /dev/null @@ -1,153 +0,0 @@ -#data -<!doctype html><table><tbody><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><tr><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<!doctype html><table><tr><td><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| <td> - -#data -<!doctype html><table><tr><th><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <th> -| <select> -| <td> - -#data -<!doctype html><table><caption><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <select> -| <tbody> -| <tr> - -#data -<!doctype html><select><tr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><th> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tbody> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><thead> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><tfoot> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><select><caption> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><table><tr></table>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| "a" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests18.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests18.dat deleted file mode 100644 index 680e1f068..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests18.dat +++ /dev/null @@ -1,269 +0,0 @@ -#data -<!doctype html><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> - -#data -<!doctype html><table><tbody><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> - -#data -<!doctype html><table><tbody><tr><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><tbody><tr><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><caption><plaintext></plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <plaintext> -| "</plaintext>" - -#data -<!doctype html><table><tr><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <style> -| "</script>" - -#data -<!doctype html><table><tr><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <tbody> -| <tr> -| <script> -| "</style>" - -#data -<!doctype html><table><caption><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><table><td><style></script></style>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <style> -| "</script>" -| "abc" - -#data -<!doctype html><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" - -#data -<!doctype html><table><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> - -#data -<!doctype html><table><tr><select><script></style></script>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <script> -| "</style>" -| "abc" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><frameset></frameset><noframes>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><frameset></frameset></html><noframes>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" - -#data -<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <noframes> -| "abc" -| <!-- abc --> - -#data -<!doctype html><table><tr></tbody><tfoot> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <tfoot> - -#data -<!doctype html><table><td><svg></svg>abc<td> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| "abc" -| <td> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests19.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests19.dat deleted file mode 100644 index 0d62f5a5b..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests19.dat +++ /dev/null @@ -1,1237 +0,0 @@ -#data -<!doctype html><math><mn DefinitionUrl="foo"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mn> -| definitionURL="foo" - -#data -<!doctype html><html></p><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <!-- foo --> -| <head> -| <body> - -#data -<!doctype html><head></head></p><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- foo --> -| <body> - -#data -<!doctype html><body><p><pre> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <pre> - -#data -<!doctype html><body><p><listing> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <listing> - -#data -<!doctype html><p><plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <plaintext> - -#data -<!doctype html><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <h1> - -#data -<!doctype html><form><isindex> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> - -#data -<!doctype html><isindex action="POST"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| action="POST" -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex prompt="this is isindex"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "this is isindex" -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><isindex type="hidden"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| type="hidden" -| <hr> - -#data -<!doctype html><isindex name="foo"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<!doctype html><ruby><p><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rp> - -#data -<!doctype html><ruby><div><span><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rp> - -#data -<!doctype html><ruby><div><p><rp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rp> - -#data -<!doctype html><ruby><p><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <p> -| <rt> - -#data -<!doctype html><ruby><div><span><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <span> -| <rt> - -#data -<!doctype html><ruby><div><p><rt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <p> -| <rt> - -#data -<!doctype html><math/><foo> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <foo> - -#data -<!doctype html><svg/><foo> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <foo> - -#data -<!doctype html><div></body><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <!-- foo --> - -#data -<!doctype html><h1><div><h3><span></h1>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h1> -| <div> -| <h3> -| <span> -| "foo" - -#data -<!doctype html><p></h3>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "foo" - -#data -<!doctype html><h3><li>abc</h2>foo -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <h3> -| <li> -| "abc" -| "foo" - -#data -<!doctype html><table>abc<!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "abc" -| <table> -| <!-- foo --> - -#data -<!doctype html><table> <!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <!-- foo --> - -#data -<!doctype html><table> b <!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " b " -| <table> -| <!-- foo --> - -#data -<!doctype html><select><option><option> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><select><option></optgroup> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!doctype html><p><math><mi><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mi> -| <p> -| <h1> - -#data -<!doctype html><p><math><mo><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mo> -| <p> -| <h1> - -#data -<!doctype html><p><math><mn><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <p> -| <h1> - -#data -<!doctype html><p><math><ms><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math ms> -| <p> -| <h1> - -#data -<!doctype html><p><math><mtext><p><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mtext> -| <p> -| <h1> - -#data -<!doctype html><frameset></noframes> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html c=d><body></html><html a=b> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><html c=d><frameset></frameset></html><html a=b> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><!--foo--> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <!-- foo --> - -#data -<!doctype html><html><frameset></frameset></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| " " - -#data -<!doctype html><html><frameset></frameset></html>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><html><frameset></frameset></html></p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<html><frameset></frameset></html><!doctype html> -#errors -#document -| <html> -| <head> -| <frameset> - -#data -<!doctype html><body><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html><p><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><p>a<frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "a" - -#data -<!doctype html><p> <frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><pre><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> - -#data -<!doctype html><listing><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <listing> - -#data -<!doctype html><li><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <li> - -#data -<!doctype html><dd><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dd> - -#data -<!doctype html><dt><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> - -#data -<!doctype html><button><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <button> - -#data -<!doctype html><applet><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <applet> - -#data -<!doctype html><marquee><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <marquee> - -#data -<!doctype html><object><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <object> - -#data -<!doctype html><table><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> - -#data -<!doctype html><area><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <area> - -#data -<!doctype html><basefont><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <basefont> -| <frameset> - -#data -<!doctype html><bgsound><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <bgsound> -| <frameset> - -#data -<!doctype html><br><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <br> - -#data -<!doctype html><embed><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <embed> - -#data -<!doctype html><img><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html><input><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> - -#data -<!doctype html><keygen><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <keygen> - -#data -<!doctype html><wbr><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <wbr> - -#data -<!doctype html><hr><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <hr> - -#data -<!doctype html><textarea></textarea><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> - -#data -<!doctype html><xmp></xmp><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <xmp> - -#data -<!doctype html><iframe></iframe><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <iframe> - -#data -<!doctype html><select></select><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!doctype html><svg></svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><math></math><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg><foreignObject><div> <frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<!doctype html><svg>a</svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| "a" - -#data -<!doctype html><svg> </svg><frameset><frame> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> -| <frame> - -#data -<html>aaa<frameset></frameset> -#errors -#document -| <html> -| <head> -| <body> -| "aaa" - -#data -<html> a <frameset></frameset> -#errors -#document -| <html> -| <head> -| <body> -| "a " - -#data -<!doctype html><div><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><div><body><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> - -#data -<!doctype html><p><math></p>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| "a" - -#data -<!doctype html><p><math><mn><span></p>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <math math> -| <math mn> -| <span> -| <p> -| "a" - -#data -<!doctype html><math></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!doctype html><meta charset="ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| charset="ascii" -| <body> - -#data -<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| content="text/html;charset=ascii" -| http-equiv="content-type" -| <body> - -#data -<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8"> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --> -| <meta> -| charset="utf8" -| <body> - -#data -<!doctype html><html a=b><head></head><html c=d> -#errors -#document -| <!DOCTYPE html> -| <html> -| a="b" -| c="d" -| <head> -| <body> - -#data -<!doctype html><image/> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> - -#data -<!doctype html>a<i>b<table>c<b>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "a" -| <i> -| "bc" -| <b> -| "de" -| "f" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" - -#data -<!doctype html><table><i>a<b>b<div>c</i> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <i> -| "c" -| <table> - -#data -<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <b> -| "b" -| <b> -| <div> -| <b> -| <i> -| "c" -| <a> -| "d" -| <a> -| "e" -| <a> -| "f" -| <table> - -#data -<!doctype html><table><i>a<div>b<tr>c<b>d</i>e -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <i> -| "a" -| <div> -| "b" -| <i> -| "c" -| <b> -| "d" -| <b> -| "e" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><table><td><table><i>a<div>b<b>c</i>d -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <i> -| "a" -| <div> -| <i> -| "b" -| <b> -| "c" -| <b> -| "d" -| <table> - -#data -<!doctype html><body><bgsound> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <bgsound> - -#data -<!doctype html><body><basefont> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <basefont> - -#data -<!doctype html><a><b></a><basefont> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <basefont> - -#data -<!doctype html><a><b></a><bgsound> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| <b> -| <bgsound> - -#data -<!doctype html><figcaption><article></figcaption>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <figcaption> -| <article> -| "a" - -#data -<!doctype html><summary><article></summary>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <summary> -| <article> -| "a" - -#data -<!doctype html><p><a><plaintext>b -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <a> -| <plaintext> -| <a> -| "b" - -#data -<!DOCTYPE html><div>a<a></div>b<p>c</p>d -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| "a" -| <a> -| <a> -| "b" -| <p> -| "c" -| "d" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests2.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests2.dat deleted file mode 100644 index 60d859221..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests2.dat +++ /dev/null @@ -1,763 +0,0 @@ -#data -<!DOCTYPE html>Test -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "Test" - -#data -<textarea>test</div>test -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 24 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <textarea> -| "test</div>test" - -#data -<table><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 11 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><td>test</tbody></table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "test" - -#data -<frame>test -#errors -Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected start tag frame. Ignored. -#document -| <html> -| <head> -| <body> -| "test" - -#data -<!DOCTYPE html><frameset>test -#errors -Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset><!DOCTYPE html> -#errors -Line: 1 Col: 40 Unexpected DOCTYPE. Ignored. -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><font><p><b>test</font> -#errors -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <p> -| <font> -| <b> -| "test" - -#data -<!DOCTYPE html><dt><div><dd> -#errors -Line: 1 Col: 28 Missing end tag (div, dt). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <dt> -| <div> -| <dd> - -#data -<script></x -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). -#document -| <html> -| <head> -| <script> -| "</x" -| <body> - -#data -<table><plaintext><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode. -Line: 1 Col: 22 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <plaintext> -| "<td>" -| <table> - -#data -<plaintext></plaintext> -#errors -Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <plaintext> -| "</plaintext>" - -#data -<!DOCTYPE html><table><tr>TEST -#errors -Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "TEST" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4> -#errors -Line: 1 Col: 37 Unexpected start tag (body). -Line: 1 Col: 53 Unexpected start tag (body). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| t1="1" -| t2="2" -| t3="3" -| t4="4" - -#data -</b test -#errors -Line: 1 Col: 8 Unexpected end of file in attribute name. -Line: 1 Col: 8 End tag contains unexpected attributes. -Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element. -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html></b test<b &=&>X -#errors -Line: 1 Col: 32 Named entity didn't end with ';'. -Line: 1 Col: 33 End tag contains unexpected attributes. -Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" - -#data -<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 54 Unexpected end of file in the tag name. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| type="text/x-foobar;baz" -| "X</SCRipt" -| <body> - -#data -& -#errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&" - -#data -&# -#errors -Line: 1 Col: 1 Numeric entity expected. Got end of file instead. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#" - -#data -&#X -#errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#X" - -#data -&#x -#errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&#x" - -#data -- -#errors -Line: 1 Col: 4 Numeric entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "-" - -#data -&x-test -#errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&x-test" - -#data -<!doctypehtml><p><li> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <li> - -#data -<!doctypehtml><p><dt> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dt> - -#data -<!doctypehtml><p><dd> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <dd> - -#data -<!doctypehtml><p><form> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <form> - -#data -<!DOCTYPE html><p></P>X -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| "X" - -#data -& -#errors -Line: 1 Col: 4 Named entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&" - -#data -&AMp; -#errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "&AMp;" - -#data -<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> -#errors -Line: 1 Col: 110 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly> - -#data -<!DOCTYPE html>X</body>X -#errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "XX" - -#data -<!DOCTYPE html><!-- X -#errors -Line: 1 Col: 21 Unexpected end of file in comment. -#document -| <!DOCTYPE html> -| <!-- X --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><table><caption>test TEST</caption><td>test -#errors -Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| "test TEST" -| <tbody> -| <tr> -| <td> -| "test" - -#data -<!DOCTYPE html><select><option><optgroup> -#errors -Line: 1 Col: 41 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option> -#errors -Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 76 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <option> -| <option> - -#data -<!DOCTYPE html><select><optgroup><option><optgroup> -#errors -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> -| <option> -| <optgroup> - -#data -<!DOCTYPE html><datalist><option>foo</datalist>bar -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <datalist> -| <option> -| "foo" -| "bar" - -#data -<!DOCTYPE html><font><input><input></font> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <font> -| <input> -| <input> - -#data -<!DOCTYPE html><!-- XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX -#errors -Line: 1 Col: 29 Unexpected end of file in comment (-) -#document -| <!DOCTYPE html> -| <!-- XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><!-- XXX - XXX - XXX --> -#errors -#document -| <!DOCTYPE html> -| <!-- XXX - XXX - XXX --> -| <html> -| <head> -| <body> - -#data -<isindex test=x name=x> -#errors -Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected start tag isindex. Don't use it! -#document -| <html> -| <head> -| <body> -| <form> -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| test="x" -| <hr> - -#data -test -test -#errors -Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "test -test" - -#data -<!DOCTYPE html><body><title>test</body></title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "test</body>" - -#data -<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style> -x { content:"</style" } </style> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" -| <meta> -| name="z" -| <link> -| rel="foo" -| <style> -| " -x { content:"</style" } " - -#data -<!DOCTYPE html><select><optgroup></optgroup></select> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <optgroup> - -#data - - -#errors -Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html> <html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><script> -</script> <title>x</title> </head> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <script> -| " -" -| " " -| <title> -| "x" -| " " -| <body> - -#data -<!DOCTYPE html><html><body><html id=x> -#errors -Line: 1 Col: 38 html needs to be the first start tag. -#document -| <!DOCTYPE html> -| <html> -| id="x" -| <head> -| <body> - -#data -<!DOCTYPE html>X</body><html id="x"> -#errors -Line: 1 Col: 36 Unexpected start tag token (html) in the after body phase. -Line: 1 Col: 36 html needs to be the first start tag. -#document -| <!DOCTYPE html> -| <html> -| id="x" -| <head> -| <body> -| "X" - -#data -<!DOCTYPE html><head><html id=x> -#errors -Line: 1 Col: 32 html needs to be the first start tag. -#document -| <!DOCTYPE html> -| <html> -| id="x" -| <head> -| <body> - -#data -<!DOCTYPE html>X</html>X -#errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "XX" - -#data -<!DOCTYPE html>X</html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X " - -#data -<!DOCTYPE html>X</html><p>X -#errors -Line: 1 Col: 26 Unexpected start tag (p). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <p> -| "X" - -#data -<!DOCTYPE html>X<p/x/y/z> -#errors -Line: 1 Col: 19 Expected a > after the /. -Line: 1 Col: 21 Solidus (/) incorrectly placed in tag. -Line: 1 Col: 23 Solidus (/) incorrectly placed in tag. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <p> -| x="" -| y="" -| z="" - -#data -<!DOCTYPE html><!--x-- -#errors -Line: 1 Col: 22 Unexpected end of file in comment (--). -#document -| <!DOCTYPE html> -| <!-- x --> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE html><table><tr><td></p></table> -#errors -Line: 1 Col: 34 Unexpected end tag (p). Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <p> - -#data -<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->--> -#errors -Line: 1 Col: 20 Expected space or '>'. Got '' -Line: 1 Col: 25 Erroneous DOCTYPE. -Line: 1 Col: 35 Unexpected character in comment found. -#document -| <!DOCTYPE <!doctype> -| <html> -| <head> -| <body> -| ">" -| <!-- <!--x --> -| "-->" - -#data -<!doctype html><div><form></form><div></div></div> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <form> -| <div> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests20.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests20.dat deleted file mode 100644 index 6bd825608..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests20.dat +++ /dev/null @@ -1,455 +0,0 @@ -#data -<!doctype html><p><button><button> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <button> - -#data -<!doctype html><p><button><address> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <address> - -#data -<!doctype html><p><button><blockquote> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <blockquote> - -#data -<!doctype html><p><button><menu> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <menu> - -#data -<!doctype html><p><button><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <p> - -#data -<!doctype html><p><button><ul> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <ul> - -#data -<!doctype html><p><button><h1> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <h1> - -#data -<!doctype html><p><button><h6> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <h6> - -#data -<!doctype html><p><button><listing> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <listing> - -#data -<!doctype html><p><button><pre> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <pre> - -#data -<!doctype html><p><button><form> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <form> - -#data -<!doctype html><p><button><li> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <li> - -#data -<!doctype html><p><button><dd> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <dd> - -#data -<!doctype html><p><button><dt> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <dt> - -#data -<!doctype html><p><button><plaintext> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <plaintext> - -#data -<!doctype html><p><button><table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <table> - -#data -<!doctype html><p><button><hr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <hr> - -#data -<!doctype html><p><button><xmp> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <xmp> - -#data -<!doctype html><p><button></p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <button> -| <p> - -#data -<!doctype html><address><button></address>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <address> -| <button> -| "a" - -#data -<!doctype html><address><button></address>a -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <address> -| <button> -| "a" - -#data -<p><table></p> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <p> -| <table> - -#data -<!doctype html><svg> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> - -#data -<!doctype html><p><figcaption> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <figcaption> - -#data -<!doctype html><p><summary> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <summary> - -#data -<!doctype html><form><table><form> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <table> - -#data -<!doctype html><table><form><form> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <form> - -#data -<!doctype html><table><form></table><form> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <form> - -#data -<!doctype html><svg><foreignObject><p> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg foreignObject> -| <p> - -#data -<!doctype html><svg><title>abc -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| "abc" - -#data -<option><span><option> -#errors -#document -| <html> -| <head> -| <body> -| <option> -| <span> -| <option> - -#data -<option><option> -#errors -#document -| <html> -| <head> -| <body> -| <option> -| <option> - -#data -<math><annotation-xml><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <div> - -#data -<math><annotation-xml encoding="application/svg+xml"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="application/svg+xml" -| <div> - -#data -<math><annotation-xml encoding="application/xhtml+xml"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="application/xhtml+xml" -| <div> - -#data -<math><annotation-xml encoding="aPPlication/xhtmL+xMl"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="aPPlication/xhtmL+xMl" -| <div> - -#data -<math><annotation-xml encoding="text/html"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="text/html" -| <div> - -#data -<math><annotation-xml encoding="Text/htmL"><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding="Text/htmL" -| <div> - -#data -<math><annotation-xml encoding=" text/html "><div> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| encoding=" text/html " -| <div> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests21.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests21.dat deleted file mode 100644 index 1260ec03e..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests21.dat +++ /dev/null @@ -1,221 +0,0 @@ -#data -<svg><![CDATA[foo]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "foo" - -#data -<math><![CDATA[foo]]> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| "foo" - -#data -<div><![CDATA[foo]]> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <!-- [CDATA[foo]] --> - -#data -<svg><![CDATA[foo -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "foo" - -#data -<svg><![CDATA[foo -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "foo" - -#data -<svg><![CDATA[ -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<svg><![CDATA[]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> - -#data -<svg><![CDATA[]] >]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]] >" - -#data -<svg><![CDATA[]] >]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]] >" - -#data -<svg><![CDATA[]] -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]]" - -#data -<svg><![CDATA[] -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]" - -#data -<svg><![CDATA[]>a -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "]>a" - -#data -<svg><foreignObject><div><![CDATA[foo]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg foreignObject> -| <div> -| <!-- [CDATA[foo]] --> - -#data -<svg><![CDATA[<svg>]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" - -#data -<svg><![CDATA[</svg>a]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "</svg>a" - -#data -<svg><![CDATA[<svg>a -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>a" - -#data -<svg><![CDATA[</svg>a -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "</svg>a" - -#data -<svg><![CDATA[<svg>]]><path> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" -| <svg path> - -#data -<svg><![CDATA[<svg>]]></path> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" - -#data -<svg><![CDATA[<svg>]]><!--path--> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>" -| <!-- path --> - -#data -<svg><![CDATA[<svg>]]>path -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<svg>path" - -#data -<svg><![CDATA[<!--svg-->]]> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| "<!--svg-->" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests22.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests22.dat deleted file mode 100644 index aab27b2e9..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests22.dat +++ /dev/null @@ -1,157 +0,0 @@ -#data -<a><b><big><em><strong><div>X</a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <big> -| <em> -| <strong> -| <big> -| <em> -| <strong> -| <div> -| <a> -| "X" - -#data -<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <div> -| id="1" -| <a> -| <div> -| id="2" -| <a> -| <div> -| id="3" -| <a> -| <div> -| id="4" -| <a> -| <div> -| id="5" -| <a> -| <div> -| id="6" -| <a> -| <div> -| id="7" -| <a> -| <div> -| id="8" -| <a> -| "A" - -#data -<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <div> -| id="1" -| <a> -| <div> -| id="2" -| <a> -| <div> -| id="3" -| <a> -| <div> -| id="4" -| <a> -| <div> -| id="5" -| <a> -| <div> -| id="6" -| <a> -| <div> -| id="7" -| <a> -| <div> -| id="8" -| <a> -| <div> -| id="9" -| "A" - -#data -<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <b> -| <b> -| <div> -| id="1" -| <a> -| <div> -| id="2" -| <a> -| <div> -| id="3" -| <a> -| <div> -| id="4" -| <a> -| <div> -| id="5" -| <a> -| <div> -| id="6" -| <a> -| <div> -| id="7" -| <a> -| <div> -| id="8" -| <a> -| <div> -| id="9" -| <div> -| id="10" -| "A" - -#data -<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST -#errors -Line: 1 Col: 6 Unexpected start tag (cite). Expected DOCTYPE. -Line: 1 Col: 46 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 50 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <cite> -| <b> -| <cite> -| <i> -| <cite> -| <i> -| <cite> -| <i> -| <i> -| <i> -| <div> -| <b> -| "X" -| "TEST" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests23.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests23.dat deleted file mode 100644 index 34d2a73f1..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests23.dat +++ /dev/null @@ -1,155 +0,0 @@ -#data -<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X -#errors -3: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -116: Unclosed elements. -117: End of file seen and there were open elements. -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| color="red" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| color="red" -| <p> -| <font> -| color="red" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| color="red" -| "X" - -#data -<p><font size=4><font size=4><font size=4><font size=4><p>X -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| "X" - -#data -<p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="5" -| <font> -| size="4" -| <p> -| <font> -| size="4" -| <font> -| size="4" -| <font> -| size="5" -| <font> -| size="4" -| "X" - -#data -<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <font> -| id="a" -| size="4" -| <font> -| id="b" -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| <p> -| <font> -| id="a" -| size="4" -| <font> -| id="b" -| size="4" -| <font> -| size="4" -| <font> -| size="4" -| "X" - -#data -<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| id="a" -| <b> -| id="a" -| <b> -| id="a" -| <b> -| <object> -| <b> -| id="a" -| <b> -| id="a" -| "X" -| <p> -| <b> -| id="a" -| <b> -| id="a" -| <b> -| id="a" -| <b> -| "Y" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests24.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests24.dat deleted file mode 100644 index f6dc7eb48..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests24.dat +++ /dev/null @@ -1,79 +0,0 @@ -#data -<!DOCTYPE html>≂̸ -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "≂̸" - -#data -<!DOCTYPE html>≂̸A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "≂̸A" - -#data -<!DOCTYPE html>   -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " " - -#data -<!DOCTYPE html>  A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " A" - -#data -<!DOCTYPE html>⊂⃒ -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "⊂⃒" - -#data -<!DOCTYPE html>⊂⃒A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "⊂⃒A" - -#data -<!DOCTYPE html>𝔾 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "𝔾" - -#data -<!DOCTYPE html>𝔾A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "𝔾A" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests25.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests25.dat deleted file mode 100644 index 00de7295b..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests25.dat +++ /dev/null @@ -1,219 +0,0 @@ -#data -<!DOCTYPE html><body><foo>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <foo> -| "A" - -#data -<!DOCTYPE html><body><area>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <area> -| "A" - -#data -<!DOCTYPE html><body><base>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <base> -| "A" - -#data -<!DOCTYPE html><body><basefont>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <basefont> -| "A" - -#data -<!DOCTYPE html><body><bgsound>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <bgsound> -| "A" - -#data -<!DOCTYPE html><body><br>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <br> -| "A" - -#data -<!DOCTYPE html><body><col>A -#errors -26: Stray start tag “col”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "A" - -#data -<!DOCTYPE html><body><command>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <command> -| "A" - -#data -<!DOCTYPE html><body><embed>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <embed> -| "A" - -#data -<!DOCTYPE html><body><frame>A -#errors -26: Stray start tag “frame”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "A" - -#data -<!DOCTYPE html><body><hr>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <hr> -| "A" - -#data -<!DOCTYPE html><body><img>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <img> -| "A" - -#data -<!DOCTYPE html><body><input>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> -| "A" - -#data -<!DOCTYPE html><body><keygen>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <keygen> -| "A" - -#data -<!DOCTYPE html><body><link>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <link> -| "A" - -#data -<!DOCTYPE html><body><meta>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> -| "A" - -#data -<!DOCTYPE html><body><param>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <param> -| "A" - -#data -<!DOCTYPE html><body><source>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <source> -| "A" - -#data -<!DOCTYPE html><body><track>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <track> -| "A" - -#data -<!DOCTYPE html><body><wbr>A -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <wbr> -| "A" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests26.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests26.dat deleted file mode 100644 index fae11ffdf..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests26.dat +++ /dev/null @@ -1,313 +0,0 @@ -#data -<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <a> -| href="#1" -| <nobr> -| "1" -| <nobr> -| <nobr> -| <br> -| <a> -| href="#2" -| <a> -| href="#2" -| <nobr> -| "2" -| <nobr> -| <nobr> -| <br> -| <a> -| href="#3" -| <a> -| href="#3" -| <nobr> -| "3" -| <nobr> - -#data -<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" -| <table> - -#data -<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <table> -| <tbody> -| <tr> -| <td> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <div> -| <b> -| <nobr> -| <nobr> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <div> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" -| <nobr> -| <nobr> -| "3" - -#data -<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <nobr> -| <ins> -| <nobr> -| <i> -| <i> -| <nobr> - -#data -<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2 -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| <nobr> -| "1" -| <ins> -| <nobr> -| <nobr> -| <i> -| "2" - -#data -<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <b> -| "1" -| <nobr> -| <nobr> -| <i> -| <i> -| <nobr> -| "2" - -#data -<p><code x</code></p> - -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <code> -| code="" -| x<="" -| <code> -| code="" -| x<="" -| " -" - -#data -<!DOCTYPE html><svg><foreignObject><p><i></p>a -#errors -45: End tag “p” seen, but there were open elements. -41: Unclosed element “i”. -46: End of file seen and there were open elements. -35: Unclosed element “foreignObject”. -20: Unclosed element “svg”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <svg svg> -| <svg foreignObject> -| <p> -| <i> -| <i> -| "a" - -#data -<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a -#errors -56: End tag “p” seen, but there were open elements. -52: Unclosed element “i”. -57: End of file seen and there were open elements. -46: Unclosed element “foreignObject”. -31: Unclosed element “svg”. -22: Unclosed element “table”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg foreignObject> -| <p> -| <i> -| <i> -| "a" - -#data -<!DOCTYPE html><math><mtext><p><i></p>a -#errors -38: End tag “p” seen, but there were open elements. -34: Unclosed element “i”. -39: End of file in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mtext> -| <p> -| <i> -| <i> -| "a" - -#data -<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a -#errors -53: End tag “p” seen, but there were open elements. -49: Unclosed element “i”. -54: End of file in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <math math> -| <math mtext> -| <p> -| <i> -| <i> -| "a" - -#data -<!DOCTYPE html><body><div><!/div>a -#errors -29: Bogus comment. -34: End of file seen and there were open elements. -26: Unclosed element “div”. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <div> -| <!-- /div --> -| "a" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests3.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests3.dat deleted file mode 100644 index 38dc501be..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests3.dat +++ /dev/null @@ -1,305 +0,0 @@ -#data -<head></head><style></style> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved. -#document -| <html> -| <head> -| <style> -| <body> - -#data -<head></head><script></script> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved. -#document -| <html> -| <head> -| <script> -| <body> - -#data -<head></head><!-- --><style></style><!-- --><script></script> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved. -#document -| <html> -| <head> -| <style> -| <script> -| <!-- --> -| <!-- --> -| <body> - -#data -<head></head><!-- -->x<style></style><!-- --><script></script> -#errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -#document -| <html> -| <head> -| <!-- --> -| <body> -| "x" -| <style> -| <!-- --> -| <script> - -#data -<!DOCTYPE html><html><head></head><body><pre> -</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> - -#data -<!DOCTYPE html><html><head></head><body><pre> -foo</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "foo" - -#data -<!DOCTYPE html><html><head></head><body><pre> - -foo</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| " -foo" - -#data -<!DOCTYPE html><html><head></head><body><pre> -foo -</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "foo -" - -#data -<!DOCTYPE html><html><head></head><body><pre>x</pre><span> -</span></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "x" -| <span> -| " -" - -#data -<!DOCTYPE html><html><head></head><body><pre>x -y</pre></body></html> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "x -y" - -#data -<!DOCTYPE html><html><head></head><body><pre>x<div> -y</pre></body></html> -#errors -Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| "x" -| <div> -| " -y" - -#data -<!DOCTYPE html><pre>

A</pre> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <pre> -| " -A" - -#data -<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML> -#errors -Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <meta> -| <body> - -#data -<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML> -#errors -Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<textarea>foo<span>bar</span><i>baz -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <textarea> -| "foo<span>bar</span><i>baz" - -#data -<title>foo<span>bar</em><i>baz -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 30 Unexpected end of file. Expected end tag (title). -#document -| <html> -| <head> -| <title> -| "foo<span>bar</em><i>baz" -| <body> - -#data -<!DOCTYPE html><textarea> -</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> - -#data -<!DOCTYPE html><textarea> -foo</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| "foo" - -#data -<!DOCTYPE html><textarea> - -foo</textarea> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <textarea> -| " -foo" - -#data -<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html> -#errors -Line: 1 Col: 60 Missing end tag (div, li). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <ul> -| <li> -| <div> -| <p> -| <li> - -#data -<!doctype html><nobr><nobr><nobr> -#errors -Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 33 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 33 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <nobr> -| <nobr> -| <nobr> - -#data -<!doctype html><nobr><nobr></nobr><nobr> -#errors -Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <nobr> -| <nobr> -| <nobr> - -#data -<!doctype html><html><body><p><table></table></body></html> -#errors -Not known -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <table> - -#data -<p><table></table> -#errors -Not known -#document -| <html> -| <head> -| <body> -| <p> -| <table> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests4.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests4.dat deleted file mode 100644 index 3c506326d..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests4.dat +++ /dev/null @@ -1,59 +0,0 @@ -#data -direct div content -#errors -#document-fragment -div -#document -| "direct div content" - -#data -direct textarea content -#errors -#document-fragment -textarea -#document -| "direct textarea content" - -#data -textarea content with <em>pseudo</em> <foo>markup -#errors -#document-fragment -textarea -#document -| "textarea content with <em>pseudo</em> <foo>markup" - -#data -this is CDATA inside a <style> element -#errors -#document-fragment -style -#document -| "this is CDATA inside a <style> element" - -#data -</plaintext> -#errors -#document-fragment -plaintext -#document -| "</plaintext>" - -#data -setting html's innerHTML -#errors -Line: 1 Col: 24 Unexpected EOF in inner html mode. -#document-fragment -html -#document -| <head> -| <body> -| "setting html's innerHTML" - -#data -<title>setting head's innerHTML</title> -#errors -#document-fragment -head -#document -| <title> -| "setting head's innerHTML" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests5.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests5.dat deleted file mode 100644 index d7b5128a4..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests5.dat +++ /dev/null @@ -1,191 +0,0 @@ -#data -<style> <!-- </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (style). -#document -| <html> -| <head> -| <style> -| " <!-- " -| <body> -| "x" - -#data -<style> <!-- </style> --> </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| " <!-- " -| " " -| <body> -| "--> x" - -#data -<style> <!--> </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| " <!--> " -| <body> -| "x" - -#data -<style> <!---> </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| " <!---> " -| <body> -| "x" - -#data -<iframe> <!---> </iframe>x -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <iframe> -| " <!---> " -| "x" - -#data -<iframe> <!--- </iframe>->x</iframe> --> </iframe>x -#errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <iframe> -| " <!--- " -| "->x --> x" - -#data -<script> <!-- </script> --> </script>x -#errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -#document -| <html> -| <head> -| <script> -| " <!-- " -| " " -| <body> -| "--> x" - -#data -<title> <!-- </title> --> </title>x -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| " <!-- " -| " " -| <body> -| "--> x" - -#data -<textarea> <!--- </textarea>->x</textarea> --> </textarea>x -#errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <textarea> -| " <!--- " -| "->x --> x" - -#data -<style> <!</-- </style>x -#errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -#document -| <html> -| <head> -| <style> -| " <!</-- " -| <body> -| "x" - -#data -<p><xmp></xmp> -#errors -XXX: Unknown -#document -| <html> -| <head> -| <body> -| <p> -| <xmp> - -#data -<xmp> <!-- > --> </xmp> -#errors -Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <xmp> -| " <!-- > --> " - -#data -<title>&</title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| "&" -| <body> - -#data -<title><!--&--></title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -#document -| <html> -| <head> -| <title> -| "<!--&-->" -| <body> - -#data -<title><!--</title> -#errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end of file. Expected end tag (title). -#document -| <html> -| <head> -| <title> -| "<!--" -| <body> - -#data -<noscript><!--</noscript>--></noscript> -#errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. -#document -| <html> -| <head> -| <noscript> -| "<!--" -| <body> -| "-->" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests6.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests6.dat deleted file mode 100644 index f28ece4fb..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests6.dat +++ /dev/null @@ -1,663 +0,0 @@ -#data -<!doctype html></head> <head> -#errors -Line: 1 Col: 29 Unexpected start tag head. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| " " -| <body> - -#data -<!doctype html><form><div></form><div> -#errors -33: End tag "form" seen but there were unclosed elements. -38: End of file seen and there were open elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <form> -| <div> -| <div> - -#data -<!doctype html><title>&</title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "&" -| <body> - -#data -<!doctype html><title><!--&--></title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "<!--&-->" -| <body> - -#data -<!doctype> -#errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 10 Unexpected > character. Expected DOCTYPE name. -Line: 1 Col: 10 Erroneous DOCTYPE. -#document -| <!DOCTYPE > -| <html> -| <head> -| <body> - -#data -<!---x -#errors -Line: 1 Col: 6 Unexpected end of file in comment. -Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE. -#document -| <!-- -x --> -| <html> -| <head> -| <body> - -#data -<body> -<div> -#errors -Line: 1 Col: 6 Unexpected start tag (body). -Line: 2 Col: 5 Expected closing tag. Unexpected end of file. -#document-fragment -div -#document -| " -" -| <div> - -#data -<frameset></frameset> -foo -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Ignored. -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<frameset></frameset> -<noframes> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 10 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <frameset> -| " -" -| <noframes> - -#data -<frameset></frameset> -<div> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored. -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<frameset></frameset> -</html> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<frameset></frameset> -</div> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored. -#document -| <html> -| <head> -| <frameset> -| " -" - -#data -<form><form> -#errors -Line: 1 Col: 6 Unexpected start tag (form). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (form). -Line: 1 Col: 12 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <form> - -#data -<button><button> -#errors -Line: 1 Col: 8 Unexpected start tag (button). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (button) implies end tag (button). -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <button> -| <button> - -#data -<table><tr><td></th> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (th). Ignored. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><caption><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (td). Ignored. -Line: 1 Col: 20 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <tbody> -| <tr> -| <td> - -#data -<table><caption><div> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 21 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <div> - -#data -</caption><div> -#errors -Line: 1 Col: 10 Unexpected end tag (caption). Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document-fragment -caption -#document -| <div> - -#data -<table><caption><div></caption> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end tag (caption). Missing end tag (div). -Line: 1 Col: 31 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <div> - -#data -<table><caption></table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end caption. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> - -#data -</table><div> -#errors -Line: 1 Col: 8 Unexpected end table tag in caption. Generates implied end caption. -Line: 1 Col: 8 Unexpected end tag (caption). Ignored. -Line: 1 Col: 13 Expected closing tag. Unexpected end of file. -#document-fragment -caption -#document -| <div> - -#data -<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (body). Ignored. -Line: 1 Col: 29 Unexpected end tag (col). Ignored. -Line: 1 Col: 40 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 47 Unexpected end tag (html). Ignored. -Line: 1 Col: 55 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 60 Unexpected end tag (td). Ignored. -Line: 1 Col: 68 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 73 Unexpected end tag (th). Ignored. -Line: 1 Col: 81 Unexpected end tag (thead). Ignored. -Line: 1 Col: 86 Unexpected end tag (tr). Ignored. -Line: 1 Col: 86 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> - -#data -<table><caption><div></div> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 27 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <caption> -| <div> - -#data -<table><tr><td></body></caption></col></colgroup></html> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end tag (body). Ignored. -Line: 1 Col: 32 Unexpected end tag (caption). Ignored. -Line: 1 Col: 38 Unexpected end tag (col). Ignored. -Line: 1 Col: 49 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 56 Unexpected end tag (html). Ignored. -Line: 1 Col: 56 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> - -#data -</table></tbody></tfoot></thead></tr><div> -#errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 16 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 24 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 32 Unexpected end tag (thead). Ignored. -Line: 1 Col: 37 Unexpected end tag (tr). Ignored. -Line: 1 Col: 42 Expected closing tag. Unexpected end of file. -#document-fragment -td -#document -| <div> - -#data -<table><colgroup>foo -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 20 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| "foo" -| <table> -| <colgroup> - -#data -foo<col> -#errors -Line: 1 Col: 3 Unexpected end tag (colgroup). Ignored. -#document-fragment -colgroup -#document -| <col> - -#data -<table><colgroup></col> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 23 This element (col) has no end tag. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <table> -| <colgroup> - -#data -<frameset><div> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag token (div) in the frameset phase. Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <frameset> - -#data -</frameset><frame> -#errors -Line: 1 Col: 11 Unexpected end tag token (frameset) in the frameset phase (innerHTML). -#document-fragment -frameset -#document -| <frame> - -#data -<frameset></div> -#errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag token (div) in the frameset phase. Ignored. -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <frameset> - -#data -</body><div> -#errors -Line: 1 Col: 7 Unexpected end tag (body). Ignored. -Line: 1 Col: 12 Expected closing tag. Unexpected end of file. -#document-fragment -body -#document -| <div> - -#data -<table><tr><div> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 16 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <div> -| <table> -| <tbody> -| <tr> - -#data -</tr><td> -#errors -Line: 1 Col: 5 Unexpected end tag (tr). Ignored. -#document-fragment -tr -#document -| <td> - -#data -</tbody></tfoot></thead><td> -#errors -Line: 1 Col: 8 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 16 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 24 Unexpected end tag (thead). Ignored. -#document-fragment -tr -#document -| <td> - -#data -<table><tr><div><td> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 20 Unexpected implied end tag (div) in the table row phase. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| <table> -| <tbody> -| <tr> -| <td> - -#data -<caption><col><colgroup><tbody><tfoot><thead><tr> -#errors -Line: 1 Col: 9 Unexpected start tag (caption). -Line: 1 Col: 14 Unexpected start tag (col). -Line: 1 Col: 24 Unexpected start tag (colgroup). -Line: 1 Col: 31 Unexpected start tag (tbody). -Line: 1 Col: 38 Unexpected start tag (tfoot). -Line: 1 Col: 45 Unexpected start tag (thead). -Line: 1 Col: 49 Unexpected end of file. Expected table content. -#document-fragment -tbody -#document -| <tr> - -#data -<table><tbody></thead> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end tag (thead) in the table body phase. Ignored. -Line: 1 Col: 22 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> - -#data -</table><tr> -#errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 12 Unexpected end of file. Expected table content. -#document-fragment -tbody -#document -| <tr> - -#data -<table><tbody></body></caption></col></colgroup></html></td></th></tr> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end tag (body) in the table body phase. Ignored. -Line: 1 Col: 31 Unexpected end tag (caption) in the table body phase. Ignored. -Line: 1 Col: 37 Unexpected end tag (col) in the table body phase. Ignored. -Line: 1 Col: 48 Unexpected end tag (colgroup) in the table body phase. Ignored. -Line: 1 Col: 55 Unexpected end tag (html) in the table body phase. Ignored. -Line: 1 Col: 60 Unexpected end tag (td) in the table body phase. Ignored. -Line: 1 Col: 65 Unexpected end tag (th) in the table body phase. Ignored. -Line: 1 Col: 70 Unexpected end tag (tr) in the table body phase. Ignored. -Line: 1 Col: 70 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> - -#data -<table><tbody></div> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (div) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 20 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> - -#data -<table><table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected start tag (table) implies end tag (table). -Line: 1 Col: 14 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> -| <table> - -#data -<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end tag (body). Ignored. -Line: 1 Col: 24 Unexpected end tag (caption). Ignored. -Line: 1 Col: 30 Unexpected end tag (col). Ignored. -Line: 1 Col: 41 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 48 Unexpected end tag (html). Ignored. -Line: 1 Col: 56 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 61 Unexpected end tag (td). Ignored. -Line: 1 Col: 69 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 74 Unexpected end tag (th). Ignored. -Line: 1 Col: 82 Unexpected end tag (thead). Ignored. -Line: 1 Col: 87 Unexpected end tag (tr). Ignored. -Line: 1 Col: 87 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <table> - -#data -</table><tr> -#errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 12 Unexpected end of file. Expected table content. -#document-fragment -table -#document -| <tbody> -| <tr> - -#data -<body></body></html> -#errors -Line: 1 Col: 20 Unexpected html end tag in inner html mode. -Line: 1 Col: 20 Unexpected EOF in inner html mode. -#document-fragment -html -#document -| <head> -| <body> - -#data -<html><frameset></frameset></html> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -#document -| <html> -| <head> -| <frameset> -| " " - -#data -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html> -#errors -Line: 1 Col: 50 Erroneous DOCTYPE. -Line: 1 Col: 63 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" ""> -| <html> -| <head> -| <body> - -#data -<param><frameset></frameset> -#errors -Line: 1 Col: 7 Unexpected start tag (param). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected start tag (frameset). -#document -| <html> -| <head> -| <frameset> - -#data -<source><frameset></frameset> -#errors -Line: 1 Col: 7 Unexpected start tag (source). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected start tag (frameset). -#document -| <html> -| <head> -| <frameset> - -#data -<track><frameset></frameset> -#errors -Line: 1 Col: 7 Unexpected start tag (track). Expected DOCTYPE. -Line: 1 Col: 17 Unexpected start tag (frameset). -#document -| <html> -| <head> -| <frameset> - -#data -</html><frameset></frameset> -#errors -7: End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -17: Stray “frameset” start tag. -17: “frameset” start tag seen. -#document -| <html> -| <head> -| <frameset> - -#data -</body><frameset></frameset> -#errors -7: End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”. -17: Stray “frameset” start tag. -17: “frameset” start tag seen. -#document -| <html> -| <head> -| <frameset> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests7.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests7.dat deleted file mode 100644 index f5193c660..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests7.dat +++ /dev/null @@ -1,390 +0,0 @@ -#data -<!doctype html><body><title>X</title> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" - -#data -<!doctype html><table><title>X</title></table> -#errors -Line: 1 Col: 29 Unexpected start tag (title) in table context caused voodoo mode. -Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" -| <table> - -#data -<!doctype html><head></head><title>X</title> -#errors -Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "X" -| <body> - -#data -<!doctype html></head><title>X</title> -#errors -Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <title> -| "X" -| <body> - -#data -<!doctype html><table><meta></table> -#errors -Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> -| <table> - -#data -<!doctype html><table>X<tr><td><table> <meta></table></table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <tbody> -| <tr> -| <td> -| <meta> -| <table> -| " " - -#data -<!doctype html><html> <head> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html> <head> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!doctype html><table><style> <tr>x </style> </table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <style> -| " <tr>x " -| " " - -#data -<!doctype html><table><TBODY><script> <tr>x </script> </table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <script> -| " <tr>x " -| " " - -#data -<!doctype html><p><applet><p>X</p></applet> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <applet> -| <p> -| "X" - -#data -<!doctype html><listing> -X</listing> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <listing> -| "X" - -#data -<!doctype html><select><input>X -#errors -Line: 1 Col: 30 Unexpected input start tag in the select phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <input> -| "X" - -#data -<!doctype html><select><select>X -#errors -Line: 1 Col: 31 Unexpected select start tag in the select phase treated as select end tag. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "X" - -#data -<!doctype html><table><input type=hidDEN></table> -#errors -Line: 1 Col: 41 Unexpected input with type hidden in table context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <input> -| type="hidDEN" - -#data -<!doctype html><table>X<input type=hidDEN></table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <table> -| <input> -| type="hidDEN" - -#data -<!doctype html><table> <input type=hidDEN></table> -#errors -Line: 1 Col: 43 Unexpected input with type hidden in table context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <input> -| type="hidDEN" - -#data -<!doctype html><table> <input type='hidDEN'></table> -#errors -Line: 1 Col: 45 Unexpected input with type hidden in table context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| " " -| <input> -| type="hidDEN" - -#data -<!doctype html><table><input type=" hidden"><input type=hidDEN></table> -#errors -Line: 1 Col: 44 Unexpected start tag (input) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> -| type=" hidden" -| <table> -| <input> -| type="hidDEN" - -#data -<!doctype html><table><select>X<tr> -#errors -Line: 1 Col: 30 Unexpected start tag (select) in table context caused voodoo mode. -Line: 1 Col: 35 Unexpected table element start tag (trs) in the select in table phase. -Line: 1 Col: 35 Unexpected end of file. Expected table content. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "X" -| <table> -| <tbody> -| <tr> - -#data -<!doctype html><select>X</select> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "X" - -#data -<!DOCTYPE hTmL><html></html> -#errors -Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<!DOCTYPE HTML><html></html> -#errors -Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> - -#data -<body>X</body></body> -#errors -Line: 1 Col: 21 Unexpected end tag token (body) in the after body phase. -Line: 1 Col: 21 Unexpected EOF in inner html mode. -#document-fragment -html -#document -| <head> -| <body> -| "X" - -#data -<div><p>a</x> b -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (x). Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| <p> -| "a b" - -#data -<table><tr><td><code></code> </table> -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <code> -| " " - -#data -<table><b><tr><td>aaa</td></tr>bbb</table>ccc -#errors -XXX: Fix me -#document -| <html> -| <head> -| <body> -| <b> -| <b> -| "bbb" -| <table> -| <tbody> -| <tr> -| <td> -| "aaa" -| <b> -| "ccc" - -#data -A<table><tr> B</tr> B</table> -#errors -XXX: Fix me -#document -| <html> -| <head> -| <body> -| "A B B" -| <table> -| <tbody> -| <tr> - -#data -A<table><tr> B</tr> </em>C</table> -#errors -XXX: Fix me -#document -| <html> -| <head> -| <body> -| "A BC" -| <table> -| <tbody> -| <tr> -| " " - -#data -<select><keygen> -#errors -Not known -#document -| <html> -| <head> -| <body> -| <select> -| <keygen> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests8.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests8.dat deleted file mode 100644 index 90e6c919e..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests8.dat +++ /dev/null @@ -1,148 +0,0 @@ -#data -<div> -<div></div> -</span>x -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 3 Col: 7 Unexpected end tag (span). Ignored. -Line: 3 Col: 8 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| " -" -| <div> -| " -x" - -#data -<div>x<div></div> -</span>x -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 2 Col: 7 Unexpected end tag (span). Ignored. -Line: 2 Col: 8 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| " -x" - -#data -<div>x<div></div>x</span>x -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end tag (span). Ignored. -Line: 1 Col: 26 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| "xx" - -#data -<div>x<div></div>y</span>z -#errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end tag (span). Ignored. -Line: 1 Col: 26 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| "yz" - -#data -<table><div>x<div></div>x</span>x -#errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 18 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 24 Unexpected end tag (div) in table context caused voodoo mode. -Line: 1 Col: 32 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 32 Unexpected end tag (span). Ignored. -Line: 1 Col: 33 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| <div> -| "x" -| <div> -| "xx" -| <table> - -#data -x<table>x -#errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -Line: 1 Col: 9 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 9 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| "xx" -| <table> - -#data -x<table><table>x -#errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag (table) implies end tag (table). -Line: 1 Col: 16 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 16 Unexpected end of file. Expected table content. -#document -| <html> -| <head> -| <body> -| "x" -| <table> -| "x" -| <table> - -#data -<b>a<div></div><div></b>y -#errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <b> -| "a" -| <div> -| <div> -| <b> -| "y" - -#data -<a><div><p></a> -#errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <a> -| <div> -| <a> -| <p> -| <a> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests9.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests9.dat deleted file mode 100644 index 554e27aec..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests9.dat +++ /dev/null @@ -1,457 +0,0 @@ -#data -<!DOCTYPE html><math></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!DOCTYPE html><body><math></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> - -#data -<!DOCTYPE html><math><mi> -#errors -25: End of file in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> - -#data -<!DOCTYPE html><math><annotation-xml><svg><u> -#errors -45: HTML start tag “u” in a foreign namespace context. -45: End of file seen and there were open elements. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math annotation-xml> -| <svg svg> -| <u> - -#data -<!DOCTYPE html><body><select><math></math></select> -#errors -Line: 1 Col: 35 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> - -#data -<!DOCTYPE html><body><select><option><math></math></option></select> -#errors -Line: 1 Col: 43 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| <option> - -#data -<!DOCTYPE html><body><table><math></math></table> -#errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <table> - -#data -<!DOCTYPE html><body><table><math><mi>foo</mi></math></table> -#errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <table> - -#data -<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table> -#errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <table> - -#data -<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table> -#errors -Line: 1 Col: 41 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 53 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 65 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <table> -| <tbody> - -#data -<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table> -#errors -Line: 1 Col: 45 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 57 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 69 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <table> -| <tbody> -| <tr> - -#data -<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" - -#data -<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -Line: 1 Col: 70 HTML start tag "p" in a foreign namespace context. -Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end caption. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux -#errors -Line: 1 Col: 78 Unexpected end table tag in caption. Generates implied end caption. -Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math). -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <caption> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| "baz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -Line: 1 Col: 44 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 56 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 68 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 71 HTML start tag "p" in a foreign namespace context. -Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" -| <table> -| <colgroup> -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -Line: 1 Col: 50 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 54 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 62 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 66 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 74 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 77 Unexpected start tag token (p) in the select phase. Ignored. -Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <select> -| "foobarbaz" -| <p> -| "quux" - -#data -<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux -#errors -Line: 1 Col: 36 Unexpected start tag (select) in table context caused voodoo mode. -Line: 1 Col: 42 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 46 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 54 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 58 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 66 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 69 Unexpected start tag token (p) in the select phase. Ignored. -Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table phase. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <select> -| "foobarbaz" -| <table> -| <p> -| "quux" - -#data -<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz -#errors -Line: 1 Col: 41 Unexpected start tag (math). -Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz -#errors -Line: 1 Col: 34 Unexpected start tag token (math) in the after body phase. -Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <math math> -| <math mi> -| "foo" -| <math mi> -| "bar" -| <p> -| "baz" - -#data -<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span> -#errors -Line: 1 Col: 31 Unexpected start tag token (math) in the frameset phase. Ignored. -Line: 1 Col: 35 Unexpected start tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 40 Unexpected end tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 44 Unexpected start tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 49 Unexpected end tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 52 Unexpected start tag token (p) in the frameset phase. Ignored. -Line: 1 Col: 58 Unexpected start tag token (span) in the frameset phase. Ignored. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span> -#errors -Line: 1 Col: 42 Unexpected start tag (math) in the after frameset phase. Ignored. -Line: 1 Col: 46 Unexpected start tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 51 Unexpected end tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 55 Unexpected start tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 60 Unexpected end tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 63 Unexpected start tag (p) in the after frameset phase. Ignored. -Line: 1 Col: 69 Unexpected start tag (span) in the after frameset phase. Ignored. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| <math math> -| xlink href="foo" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <math math> -| <math mi> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <math math> -| <math mi> -| xlink href="foo" -| xml lang="en" - -#data -<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| xlink:href="foo" -| xml:lang="en" -| <math math> -| <math mi> -| xlink href="foo" -| xml lang="en" -| "bar" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests_innerHTML_1.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests_innerHTML_1.dat deleted file mode 100644 index 6c78661e0..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tests_innerHTML_1.dat +++ /dev/null @@ -1,741 +0,0 @@ -#data -<body><span> -#errors -#document-fragment -body -#document -| <span> - -#data -<span><body> -#errors -#document-fragment -body -#document -| <span> - -#data -<span><body> -#errors -#document-fragment -div -#document -| <span> - -#data -<body><span> -#errors -#document-fragment -html -#document -| <head> -| <body> -| <span> - -#data -<frameset><span> -#errors -#document-fragment -body -#document -| <span> - -#data -<span><frameset> -#errors -#document-fragment -body -#document -| <span> - -#data -<span><frameset> -#errors -#document-fragment -div -#document -| <span> - -#data -<frameset><span> -#errors -#document-fragment -html -#document -| <head> -| <frameset> - -#data -<table><tr> -#errors -#document-fragment -table -#document -| <tbody> -| <tr> - -#data -</table><tr> -#errors -#document-fragment -table -#document -| <tbody> -| <tr> - -#data -<a> -#errors -#document-fragment -table -#document -| <a> - -#data -<a> -#errors -#document-fragment -table -#document -| <a> - -#data -<a><caption>a -#errors -#document-fragment -table -#document -| <a> -| <caption> -| "a" - -#data -<a><colgroup><col> -#errors -#document-fragment -table -#document -| <a> -| <colgroup> -| <col> - -#data -<a><tbody><tr> -#errors -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> - -#data -<a><tfoot><tr> -#errors -#document-fragment -table -#document -| <a> -| <tfoot> -| <tr> - -#data -<a><thead><tr> -#errors -#document-fragment -table -#document -| <a> -| <thead> -| <tr> - -#data -<a><tr> -#errors -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> - -#data -<a><th> -#errors -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> -| <th> - -#data -<a><td> -#errors -#document-fragment -table -#document -| <a> -| <tbody> -| <tr> -| <td> - -#data -<table></table><tbody> -#errors -#document-fragment -caption -#document -| <table> - -#data -</table><span> -#errors -#document-fragment -caption -#document -| <span> - -#data -<span></table> -#errors -#document-fragment -caption -#document -| <span> - -#data -</caption><span> -#errors -#document-fragment -caption -#document -| <span> - -#data -<span></caption><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><caption><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><col><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><colgroup><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><html><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><tbody><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><td><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><tfoot><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><thead><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><th><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span><tr><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -<span></table><span> -#errors -#document-fragment -caption -#document -| <span> -| <span> - -#data -</colgroup><col> -#errors -#document-fragment -colgroup -#document -| <col> - -#data -<a><col> -#errors -#document-fragment -colgroup -#document -| <col> - -#data -<caption><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<col><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<colgroup><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<tbody><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<tfoot><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<thead><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -</table><a> -#errors -#document-fragment -tbody -#document -| <a> - -#data -<a><tr> -#errors -#document-fragment -tbody -#document -| <a> -| <tr> - -#data -<a><td> -#errors -#document-fragment -tbody -#document -| <a> -| <tr> -| <td> - -#data -<a><td> -#errors -#document-fragment -tbody -#document -| <a> -| <tr> -| <td> - -#data -<a><td> -#errors -#document-fragment -tbody -#document -| <a> -| <tr> -| <td> - -#data -<td><table><tbody><a><tr> -#errors -#document-fragment -tbody -#document -| <tr> -| <td> -| <a> -| <table> -| <tbody> -| <tr> - -#data -</tr><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<td><table><a><tr></tr><tr> -#errors -#document-fragment -tr -#document -| <td> -| <a> -| <table> -| <tbody> -| <tr> -| <tr> - -#data -<caption><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<col><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<colgroup><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<tbody><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<tfoot><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<thead><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<tr><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -</table><td> -#errors -#document-fragment -tr -#document -| <td> - -#data -<td><table></table><td> -#errors -#document-fragment -tr -#document -| <td> -| <table> -| <td> - -#data -<td><table></table><td> -#errors -#document-fragment -tr -#document -| <td> -| <table> -| <td> - -#data -<caption><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<col><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<colgroup><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<tbody><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<tfoot><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<th><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<thead><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<tr><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</table><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</tbody><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</td><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</tfoot><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</thead><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</th><a> -#errors -#document-fragment -td -#document -| <a> - -#data -</tr><a> -#errors -#document-fragment -td -#document -| <a> - -#data -<table><td><td> -#errors -#document-fragment -td -#document -| <table> -| <tbody> -| <tr> -| <td> -| <td> - -#data -</select><option> -#errors -#document-fragment -select -#document -| <option> - -#data -<input><option> -#errors -#document-fragment -select -#document -| <option> - -#data -<keygen><option> -#errors -#document-fragment -select -#document -| <option> - -#data -<textarea><option> -#errors -#document-fragment -select -#document -| <option> - -#data -</html><!--abc--> -#errors -#document-fragment -html -#document -| <head> -| <body> -| <!-- abc --> - -#data -</frameset><frame> -#errors -#document-fragment -frameset -#document -| <frame> - -#data -#errors -#document-fragment -html -#document -| <head> -| <body> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tricky01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tricky01.dat deleted file mode 100644 index 084199244..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/tricky01.dat +++ /dev/null @@ -1,261 +0,0 @@ -#data -<b><p>Bold </b> Not bold</p> -Also not bold. -#errors -#document -| <html> -| <head> -| <body> -| <b> -| <p> -| <b> -| "Bold " -| " Not bold" -| " -Also not bold." - -#data -<html> -<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain -<p>I should not be red. <font color=red>Red. <i>Italic and red.</p> -<p>Italic and red. </i> Red.</font> I should not be red.</p> -<b>Bold <i>Bold and italic</b> Only Italic </i> Plain -#errors -#document -| <html> -| <head> -| <body> -| <font> -| color="red" -| <i> -| "Italic and Red" -| <i> -| <p> -| <font> -| color="red" -| "Italic and Red " -| " Just italic." -| " Italic only." -| " Plain -" -| <p> -| "I should not be red. " -| <font> -| color="red" -| "Red. " -| <i> -| "Italic and red." -| <font> -| color="red" -| <i> -| " -" -| <p> -| <font> -| color="red" -| <i> -| "Italic and red. " -| " Red." -| " I should not be red." -| " -" -| <b> -| "Bold " -| <i> -| "Bold and italic" -| <i> -| " Only Italic " -| " Plain" - -#data -<html><body> -<p><font size="7">First paragraph.</p> -<p>Second paragraph.</p></font> -<b><p><i>Bold and Italic</b> Italic</p> -#errors -#document -| <html> -| <head> -| <body> -| " -" -| <p> -| <font> -| size="7" -| "First paragraph." -| <font> -| size="7" -| " -" -| <p> -| "Second paragraph." -| " -" -| <b> -| <p> -| <b> -| <i> -| "Bold and Italic" -| <i> -| " Italic" - -#data -<html> -<dl> -<dt><b>Boo -<dd>Goo? -</dl> -</html> -#errors -#document -| <html> -| <head> -| <body> -| <dl> -| " -" -| <dt> -| <b> -| "Boo -" -| <dd> -| <b> -| "Goo? -" -| <b> -| " -" - -#data -<html><body> -<label><a><div>Hello<div>World</div></a></label> -</body></html> -#errors -#document -| <html> -| <head> -| <body> -| " -" -| <label> -| <a> -| <div> -| <a> -| "Hello" -| <div> -| "World" -| " -" - -#data -<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table> -#errors -#document -| <html> -| <head> -| <body> -| <center> -| " " -| <font> -| "a" -| <font> -| <img> -| " " -| <table> -| " " -| <tbody> -| <tr> -| <td> -| " " -| " " -| " " - -#data -<table><tr><p><a><p>You should see this text. -#errors -#document -| <html> -| <head> -| <body> -| <p> -| <a> -| <p> -| <a> -| "You should see this text." -| <table> -| <tbody> -| <tr> - -#data -<TABLE> -<TR> -<CENTER><CENTER><TD></TD></TR><TR> -<FONT> -<TABLE><tr></tr></TABLE> -</P> -<a></font><font></a> -This page contains an insanely badly-nested tag sequence. -#errors -#document -| <html> -| <head> -| <body> -| <center> -| <center> -| <font> -| " -" -| <table> -| " -" -| <tbody> -| <tr> -| " -" -| <td> -| <tr> -| " -" -| <table> -| <tbody> -| <tr> -| <font> -| " -" -| <p> -| " -" -| <a> -| <a> -| <font> -| <font> -| " -This page contains an insanely badly-nested tag sequence." - -#data -<html> -<body> -<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the -nobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre> -</body> -</html> -#errors -#document -| <html> -| <head> -| <body> -| " -" -| <b> -| <nobr> -| <div> -| <b> -| <nobr> -| "This text is in a div inside a nobr" -| "More text that should not be in the nobr, i.e., the -nobr should have closed the div inside it implicitly. " -| <pre> -| "A pre tag outside everything else." -| " - -" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/webkit01.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/webkit01.dat deleted file mode 100644 index 9d425e99d..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/webkit01.dat +++ /dev/null @@ -1,610 +0,0 @@ -#data -Test -#errors -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. -#document -| <html> -| <head> -| <body> -| "Test" - -#data -<div></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> - -#data -<div>Test</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "Test" - -#data -<di -#errors -#document -| <html> -| <head> -| <body> - -#data -<div>Hello</div> -<script> -console.log("PASS"); -</script> -<div>Bye</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "Hello" -| " -" -| <script> -| " -console.log("PASS"); -" -| " -" -| <div> -| "Bye" - -#data -<div foo="bar">Hello</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| foo="bar" -| "Hello" - -#data -<div>Hello</div> -<script> -console.log("FOO<span>BAR</span>BAZ"); -</script> -<div>Bye</div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| "Hello" -| " -" -| <script> -| " -console.log("FOO<span>BAR</span>BAZ"); -" -| " -" -| <div> -| "Bye" - -#data -<foo bar="baz"></foo><potato quack="duck"></potato> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| bar="baz" -| <potato> -| quack="duck" - -#data -<foo bar="baz"><potato quack="duck"></potato></foo> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| bar="baz" -| <potato> -| quack="duck" - -#data -<foo></foo bar="baz"><potato></potato quack="duck"> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| <potato> - -#data -</ tttt> -#errors -#document -| <!-- tttt --> -| <html> -| <head> -| <body> - -#data -<div FOO ><img><img></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| foo="" -| <img> -| <img> - -#data -<p>Test</p<p>Test2</p> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| "TestTest2" - -#data -<rdar://problem/6869687> -#errors -#document -| <html> -| <head> -| <body> -| <rdar:> -| 6869687="" -| problem="" - -#data -<A>test< /A> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| "test< /A>" - -#data -< -#errors -#document -| <html> -| <head> -| <body> -| "<" - -#data -<body foo='bar'><body foo='baz' yo='mama'> -#errors -#document -| <html> -| <head> -| <body> -| foo="bar" -| yo="mama" - -#data -<body></br foo="bar"></body> -#errors -#document -| <html> -| <head> -| <body> -| <br> - -#data -<bdy><br foo="bar"></body> -#errors -#document -| <html> -| <head> -| <body> -| <bdy> -| <br> -| foo="bar" - -#data -<body></body></br foo="bar"> -#errors -#document -| <html> -| <head> -| <body> -| <br> - -#data -<bdy></body><br foo="bar"> -#errors -#document -| <html> -| <head> -| <body> -| <bdy> -| <br> -| foo="bar" - -#data -<html><body></body></html><!-- Hi there --> -#errors -#document -| <html> -| <head> -| <body> -| <!-- Hi there --> - -#data -<html><body></body></html>x<!-- Hi there --> -#errors -#document -| <html> -| <head> -| <body> -| "x" -| <!-- Hi there --> - -#data -<html><body></body></html>x<!-- Hi there --></html><!-- Again --> -#errors -#document -| <html> -| <head> -| <body> -| "x" -| <!-- Hi there --> -| <!-- Again --> - -#data -<html><body></body></html>x<!-- Hi there --></body></html><!-- Again --> -#errors -#document -| <html> -| <head> -| <body> -| "x" -| <!-- Hi there --> -| <!-- Again --> - -#data -<html><body><ruby><div><rp>xx</rp></div></ruby></body></html> -#errors -#document -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <rp> -| "xx" - -#data -<html><body><ruby><div><rt>xx</rt></div></ruby></body></html> -#errors -#document -| <html> -| <head> -| <body> -| <ruby> -| <div> -| <rt> -| "xx" - -#data -<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6--> -#errors -#document -| <html> -| <head> -| <frameset> -| <!-- 1 --> -| <noframes> -| "A" -| <!-- 2 --> -| <!-- 3 --> -| <noframes> -| "B" -| <!-- 4 --> -| <noframes> -| "C" -| <!-- 5 --> -| <!-- 6 --> - -#data -<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select> -#errors -#document -| <html> -| <head> -| <body> -| <select> -| <option> -| "A" -| <option> -| "B" -| <select> -| <option> -| "C" -| <option> -| "D" -| <select> -| <option> -| "E" -| <option> -| "F" -| <select> -| <option> -| "G" - -#data -<dd><dd><dt><dt><dd><li><li> -#errors -#document -| <html> -| <head> -| <body> -| <dd> -| <dd> -| <dt> -| <dt> -| <dd> -| <li> -| <li> - -#data -<div><b></div><div><nobr>a<nobr> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <b> -| <div> -| <b> -| <nobr> -| "a" -| <nobr> - -#data -<head></head> -<body></body> -#errors -#document -| <html> -| <head> -| " -" -| <body> - -#data -<head></head> <style></style>ddd -#errors -#document -| <html> -| <head> -| <style> -| " " -| <body> -| "ddd" - -#data -<kbd><table></kbd><col><select><tr> -#errors -#document -| <html> -| <head> -| <body> -| <kbd> -| <select> -| <table> -| <colgroup> -| <col> -| <tbody> -| <tr> - -#data -<kbd><table></kbd><col><select><tr></table><div> -#errors -#document -| <html> -| <head> -| <body> -| <kbd> -| <select> -| <table> -| <colgroup> -| <col> -| <tbody> -| <tr> -| <div> - -#data -<a><li><style></style><title></title></a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <li> -| <a> -| <style> -| <title> - -#data -<font></p><p><meta><title></title></font> -#errors -#document -| <html> -| <head> -| <body> -| <font> -| <p> -| <p> -| <font> -| <meta> -| <title> - -#data -<a><center><title></title><a> -#errors -#document -| <html> -| <head> -| <body> -| <a> -| <center> -| <a> -| <title> -| <a> - -#data -<svg><title><div> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| <div> - -#data -<svg><title><rect><div> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| <rect> -| <div> - -#data -<svg><title><svg><div> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg title> -| <svg svg> -| <div> - -#data -<img <="" FAIL> -#errors -#document -| <html> -| <head> -| <body> -| <img> -| <="" -| fail="" - -#data -<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul> -#errors -#document -| <html> -| <head> -| <body> -| <ul> -| <li> -| <div> -| id="foo" -| "A" -| <li> -| "B" -| <div> -| "C" - -#data -<svg><em><desc></em> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <em> -| <desc> - -#data -<table><tr><td><svg><desc><td></desc><circle> -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| <svg svg> -| <svg desc> -| <td> -| <circle> - -#data -<svg><tfoot></mi><td> -#errors -#document -| <html> -| <head> -| <body> -| <svg svg> -| <svg tfoot> -| <svg td> - -#data -<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math> -#errors -#document -| <html> -| <head> -| <body> -| <math math> -| <math mrow> -| <math mrow> -| <math mn> -| "1" -| <math mi> -| "a" - -#data -<!doctype html><input type="hidden"><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <frameset> - -#data -<!doctype html><input type="button"><frameset> -#errors -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <input> -| type="button" diff --git a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/webkit02.dat b/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/webkit02.dat deleted file mode 100644 index 905783d3c..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/testdata/webkit/webkit02.dat +++ /dev/null @@ -1,159 +0,0 @@ -#data -<foo bar=qux/> -#errors -#document -| <html> -| <head> -| <body> -| <foo> -| bar="qux/" - -#data -<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p> -#errors -#document -| <html> -| <head> -| <body> -| <p> -| id="status" -| <noscript> -| "<strong>A</strong>" -| <span> -| "B" - -#data -<div><sarcasm><div></div></sarcasm></div> -#errors -#document -| <html> -| <head> -| <body> -| <div> -| <sarcasm> -| <div> - -#data -<html><body><img src="" border="0" alt="><div>A</div></body></html> -#errors -#document -| <html> -| <head> -| <body> - -#data -<table><td></tbody>A -#errors -#document -| <html> -| <head> -| <body> -| "A" -| <table> -| <tbody> -| <tr> -| <td> - -#data -<table><td></thead>A -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "A" - -#data -<table><td></tfoot>A -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <tbody> -| <tr> -| <td> -| "A" - -#data -<table><thead><td></tbody>A -#errors -#document -| <html> -| <head> -| <body> -| <table> -| <thead> -| <tr> -| <td> -| "A" - -#data -<legend>test</legend> -#errors -#document -| <html> -| <head> -| <body> -| <legend> -| "test" - -#data -<table><input> -#errors -#document -| <html> -| <head> -| <body> -| <input> -| <table> - -#data -<b><em><dcell><postfield><postfield><postfield><postfield><missing_glyph><missing_glyph><missing_glyph><missing_glyph><hkern><aside></b></em> -#errors -#document-fragment -div -#document -| <b> -| <em> -| <dcell> -| <postfield> -| <postfield> -| <postfield> -| <postfield> -| <missing_glyph> -| <missing_glyph> -| <missing_glyph> -| <missing_glyph> -| <hkern> -| <aside> -| <em> -| <b> - -#data -<isindex action="x"> -#errors -#document-fragment -table -#document -| <form> -| action="x" -| <hr> -| <label> -| "This is a searchable index. Enter search keywords: " -| <input> -| name="isindex" -| <hr> - -#data -<option><XH<optgroup></optgroup> -#errors -#document-fragment -select -#document -| <option> diff --git a/Godeps/_workspace/src/golang.org/x/net/html/token_test.go b/Godeps/_workspace/src/golang.org/x/net/html/token_test.go deleted file mode 100644 index 20221c328..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/html/token_test.go +++ /dev/null @@ -1,748 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package html - -import ( - "bytes" - "io" - "io/ioutil" - "reflect" - "runtime" - "strings" - "testing" -) - -type tokenTest struct { - // A short description of the test case. - desc string - // The HTML to parse. - html string - // The string representations of the expected tokens, joined by '$'. - golden string -} - -var tokenTests = []tokenTest{ - { - "empty", - "", - "", - }, - // A single text node. The tokenizer should not break text nodes on whitespace, - // nor should it normalize whitespace within a text node. - { - "text", - "foo bar", - "foo bar", - }, - // An entity. - { - "entity", - "one < two", - "one < two", - }, - // A start, self-closing and end tag. The tokenizer does not care if the start - // and end tokens don't match; that is the job of the parser. - { - "tags", - "<a>b<c/>d</e>", - "<a>$b$<c/>$d$</e>", - }, - // Angle brackets that aren't a tag. - { - "not a tag #0", - "<", - "<", - }, - { - "not a tag #1", - "</", - "</", - }, - { - "not a tag #2", - "</>", - "<!---->", - }, - { - "not a tag #3", - "a</>b", - "a$<!---->$b", - }, - { - "not a tag #4", - "</ >", - "<!-- -->", - }, - { - "not a tag #5", - "</.", - "<!--.-->", - }, - { - "not a tag #6", - "</.>", - "<!--.-->", - }, - { - "not a tag #7", - "a < b", - "a < b", - }, - { - "not a tag #8", - "<.>", - "<.>", - }, - { - "not a tag #9", - "a<<<b>>>c", - "a<<$<b>$>>c", - }, - { - "not a tag #10", - "if x<0 and y < 0 then x*y>0", - "if x<0 and y < 0 then x*y>0", - }, - { - "not a tag #11", - "<<p>", - "<$<p>", - }, - // EOF in a tag name. - { - "tag name eof #0", - "<a", - "", - }, - { - "tag name eof #1", - "<a ", - "", - }, - { - "tag name eof #2", - "a<b", - "a", - }, - { - "tag name eof #3", - "<a><b", - "<a>", - }, - { - "tag name eof #4", - `<a x`, - ``, - }, - // Some malformed tags that are missing a '>'. - { - "malformed tag #0", - `<p</p>`, - `<p< p="">`, - }, - { - "malformed tag #1", - `<p </p>`, - `<p <="" p="">`, - }, - { - "malformed tag #2", - `<p id`, - ``, - }, - { - "malformed tag #3", - `<p id=`, - ``, - }, - { - "malformed tag #4", - `<p id=>`, - `<p id="">`, - }, - { - "malformed tag #5", - `<p id=0`, - ``, - }, - { - "malformed tag #6", - `<p id=0</p>`, - `<p id="0</p">`, - }, - { - "malformed tag #7", - `<p id="0</p>`, - ``, - }, - { - "malformed tag #8", - `<p id="0"</p>`, - `<p id="0" <="" p="">`, - }, - { - "malformed tag #9", - `<p></p id`, - `<p>`, - }, - // Raw text and RCDATA. - { - "basic raw text", - "<script><a></b></script>", - "<script>$<a></b>$</script>", - }, - { - "unfinished script end tag", - "<SCRIPT>a</SCR", - "<script>$a</SCR", - }, - { - "broken script end tag", - "<SCRIPT>a</SCR ipt>", - "<script>$a</SCR ipt>", - }, - { - "EOF in script end tag", - "<SCRIPT>a</SCRipt", - "<script>$a</SCRipt", - }, - { - "scriptx end tag", - "<SCRIPT>a</SCRiptx", - "<script>$a</SCRiptx", - }, - { - "' ' completes script end tag", - "<SCRIPT>a</SCRipt ", - "<script>$a", - }, - { - "'>' completes script end tag", - "<SCRIPT>a</SCRipt>", - "<script>$a$</script>", - }, - { - "self-closing script end tag", - "<SCRIPT>a</SCRipt/>", - "<script>$a$</script>", - }, - { - "nested script tag", - "<SCRIPT>a</SCRipt<script>", - "<script>$a</SCRipt<script>", - }, - { - "script end tag after unfinished", - "<SCRIPT>a</SCRipt</script>", - "<script>$a</SCRipt$</script>", - }, - { - "script/style mismatched tags", - "<script>a</style>", - "<script>$a</style>", - }, - { - "style element with entity", - "<style>'", - "<style>$&apos;", - }, - { - "textarea with tag", - "<textarea><div></textarea>", - "<textarea>$<div>$</textarea>", - }, - { - "title with tag and entity", - "<title><b>K&R C</b></title>", - "<title>$<b>K&R C</b>$</title>", - }, - // DOCTYPE tests. - { - "Proper DOCTYPE", - "<!DOCTYPE html>", - "<!DOCTYPE html>", - }, - { - "DOCTYPE with no space", - "<!doctypehtml>", - "<!DOCTYPE html>", - }, - { - "DOCTYPE with two spaces", - "<!doctype html>", - "<!DOCTYPE html>", - }, - { - "looks like DOCTYPE but isn't", - "<!DOCUMENT html>", - "<!--DOCUMENT html-->", - }, - { - "DOCTYPE at EOF", - "<!DOCtype", - "<!DOCTYPE >", - }, - // XML processing instructions. - { - "XML processing instruction", - "<?xml?>", - "<!--?xml?-->", - }, - // Comments. - { - "comment0", - "abc<b><!-- skipme --></b>def", - "abc$<b>$<!-- skipme -->$</b>$def", - }, - { - "comment1", - "a<!-->z", - "a$<!---->$z", - }, - { - "comment2", - "a<!--->z", - "a$<!---->$z", - }, - { - "comment3", - "a<!--x>-->z", - "a$<!--x>-->$z", - }, - { - "comment4", - "a<!--x->-->z", - "a$<!--x->-->$z", - }, - { - "comment5", - "a<!>z", - "a$<!---->$z", - }, - { - "comment6", - "a<!->z", - "a$<!----->$z", - }, - { - "comment7", - "a<!---<>z", - "a$<!---<>z-->", - }, - { - "comment8", - "a<!--z", - "a$<!--z-->", - }, - { - "comment9", - "a<!--z-", - "a$<!--z-->", - }, - { - "comment10", - "a<!--z--", - "a$<!--z-->", - }, - { - "comment11", - "a<!--z---", - "a$<!--z--->", - }, - { - "comment12", - "a<!--z----", - "a$<!--z---->", - }, - { - "comment13", - "a<!--x--!>z", - "a$<!--x-->$z", - }, - // An attribute with a backslash. - { - "backslash", - `<p id="a\"b">`, - `<p id="a\" b"="">`, - }, - // Entities, tag name and attribute key lower-casing, and whitespace - // normalization within a tag. - { - "tricky", - "<p \t\n iD=\"a"B\" foo=\"bar\"><EM>te<&;xt</em></p>", - `<p id="a"B" foo="bar">$<em>$te<&;xt$</em>$</p>`, - }, - // A nonexistent entity. Tokenizing and converting back to a string should - // escape the "&" to become "&". - { - "noSuchEntity", - `<a b="c&noSuchEntity;d"><&alsoDoesntExist;&`, - `<a b="c&noSuchEntity;d">$<&alsoDoesntExist;&`, - }, - { - "entity without semicolon", - `¬it;∉<a b="q=z&=5¬ice=hello¬=world">`, - `¬it;∉$<a b="q=z&amp=5&notice=hello¬=world">`, - }, - { - "entity with digits", - "½", - "½", - }, - // Attribute tests: - // http://dev.w3.org/html5/pf-summary/Overview.html#attributes - { - "Empty attribute", - `<input disabled FOO>`, - `<input disabled="" foo="">`, - }, - { - "Empty attribute, whitespace", - `<input disabled FOO >`, - `<input disabled="" foo="">`, - }, - { - "Unquoted attribute value", - `<input value=yes FOO=BAR>`, - `<input value="yes" foo="BAR">`, - }, - { - "Unquoted attribute value, spaces", - `<input value = yes FOO = BAR>`, - `<input value="yes" foo="BAR">`, - }, - { - "Unquoted attribute value, trailing space", - `<input value=yes FOO=BAR >`, - `<input value="yes" foo="BAR">`, - }, - { - "Single-quoted attribute value", - `<input value='yes' FOO='BAR'>`, - `<input value="yes" foo="BAR">`, - }, - { - "Single-quoted attribute value, trailing space", - `<input value='yes' FOO='BAR' >`, - `<input value="yes" foo="BAR">`, - }, - { - "Double-quoted attribute value", - `<input value="I'm an attribute" FOO="BAR">`, - `<input value="I'm an attribute" foo="BAR">`, - }, - { - "Attribute name characters", - `<meta http-equiv="content-type">`, - `<meta http-equiv="content-type">`, - }, - { - "Mixed attributes", - `a<P V="0 1" w='2' X=3 y>z`, - `a$<p v="0 1" w="2" x="3" y="">$z`, - }, - { - "Attributes with a solitary single quote", - `<p id=can't><p id=won't>`, - `<p id="can't">$<p id="won't">`, - }, -} - -func TestTokenizer(t *testing.T) { -loop: - for _, tt := range tokenTests { - z := NewTokenizer(strings.NewReader(tt.html)) - if tt.golden != "" { - for i, s := range strings.Split(tt.golden, "$") { - if z.Next() == ErrorToken { - t.Errorf("%s token %d: want %q got error %v", tt.desc, i, s, z.Err()) - continue loop - } - actual := z.Token().String() - if s != actual { - t.Errorf("%s token %d: want %q got %q", tt.desc, i, s, actual) - continue loop - } - } - } - z.Next() - if z.Err() != io.EOF { - t.Errorf("%s: want EOF got %q", tt.desc, z.Err()) - } - } -} - -func TestMaxBuffer(t *testing.T) { - // Exceeding the maximum buffer size generates ErrBufferExceeded. - z := NewTokenizer(strings.NewReader("<" + strings.Repeat("t", 10))) - z.SetMaxBuf(5) - tt := z.Next() - if got, want := tt, ErrorToken; got != want { - t.Fatalf("token type: got: %v want: %v", got, want) - } - if got, want := z.Err(), ErrBufferExceeded; got != want { - t.Errorf("error type: got: %v want: %v", got, want) - } - if got, want := string(z.Raw()), "<tttt"; got != want { - t.Fatalf("buffered before overflow: got: %q want: %q", got, want) - } -} - -func TestMaxBufferReconstruction(t *testing.T) { - // Exceeding the maximum buffer size at any point while tokenizing permits - // reconstructing the original input. -tests: - for _, test := range tokenTests { - for maxBuf := 1; ; maxBuf++ { - r := strings.NewReader(test.html) - z := NewTokenizer(r) - z.SetMaxBuf(maxBuf) - var tokenized bytes.Buffer - for { - tt := z.Next() - tokenized.Write(z.Raw()) - if tt == ErrorToken { - if err := z.Err(); err != io.EOF && err != ErrBufferExceeded { - t.Errorf("%s: unexpected error: %v", test.desc, err) - } - break - } - } - // Anything tokenized along with untokenized input or data left in the reader. - assembled, err := ioutil.ReadAll(io.MultiReader(&tokenized, bytes.NewReader(z.Buffered()), r)) - if err != nil { - t.Errorf("%s: ReadAll: %v", test.desc, err) - continue tests - } - if got, want := string(assembled), test.html; got != want { - t.Errorf("%s: reassembled html:\n got: %q\nwant: %q", test.desc, got, want) - continue tests - } - // EOF indicates that we completed tokenization and hence found the max - // maxBuf that generates ErrBufferExceeded, so continue to the next test. - if z.Err() == io.EOF { - break - } - } // buffer sizes - } // tests -} - -func TestPassthrough(t *testing.T) { - // Accumulating the raw output for each parse event should reconstruct the - // original input. - for _, test := range tokenTests { - z := NewTokenizer(strings.NewReader(test.html)) - var parsed bytes.Buffer - for { - tt := z.Next() - parsed.Write(z.Raw()) - if tt == ErrorToken { - break - } - } - if got, want := parsed.String(), test.html; got != want { - t.Errorf("%s: parsed output:\n got: %q\nwant: %q", test.desc, got, want) - } - } -} - -func TestBufAPI(t *testing.T) { - s := "0<a>1</a>2<b>3<a>4<a>5</a>6</b>7</a>8<a/>9" - z := NewTokenizer(bytes.NewBufferString(s)) - var result bytes.Buffer - depth := 0 -loop: - for { - tt := z.Next() - switch tt { - case ErrorToken: - if z.Err() != io.EOF { - t.Error(z.Err()) - } - break loop - case TextToken: - if depth > 0 { - result.Write(z.Text()) - } - case StartTagToken, EndTagToken: - tn, _ := z.TagName() - if len(tn) == 1 && tn[0] == 'a' { - if tt == StartTagToken { - depth++ - } else { - depth-- - } - } - } - } - u := "14567" - v := string(result.Bytes()) - if u != v { - t.Errorf("TestBufAPI: want %q got %q", u, v) - } -} - -func TestConvertNewlines(t *testing.T) { - testCases := map[string]string{ - "Mac\rDOS\r\nUnix\n": "Mac\nDOS\nUnix\n", - "Unix\nMac\rDOS\r\n": "Unix\nMac\nDOS\n", - "DOS\r\nDOS\r\nDOS\r\n": "DOS\nDOS\nDOS\n", - "": "", - "\n": "\n", - "\n\r": "\n\n", - "\r": "\n", - "\r\n": "\n", - "\r\n\n": "\n\n", - "\r\n\r": "\n\n", - "\r\n\r\n": "\n\n", - "\r\r": "\n\n", - "\r\r\n": "\n\n", - "\r\r\n\n": "\n\n\n", - "\r\r\r\n": "\n\n\n", - "\r \n": "\n \n", - "xyz": "xyz", - } - for in, want := range testCases { - if got := string(convertNewlines([]byte(in))); got != want { - t.Errorf("input %q: got %q, want %q", in, got, want) - } - } -} - -func TestReaderEdgeCases(t *testing.T) { - const s = "<p>An io.Reader can return (0, nil) or (n, io.EOF).</p>" - testCases := []io.Reader{ - &zeroOneByteReader{s: s}, - &eofStringsReader{s: s}, - &stuckReader{}, - } - for i, tc := range testCases { - got := []TokenType{} - z := NewTokenizer(tc) - for { - tt := z.Next() - if tt == ErrorToken { - break - } - got = append(got, tt) - } - if err := z.Err(); err != nil && err != io.EOF { - if err != io.ErrNoProgress { - t.Errorf("i=%d: %v", i, err) - } - continue - } - want := []TokenType{ - StartTagToken, - TextToken, - EndTagToken, - } - if !reflect.DeepEqual(got, want) { - t.Errorf("i=%d: got %v, want %v", i, got, want) - continue - } - } -} - -// zeroOneByteReader is like a strings.Reader that alternates between -// returning 0 bytes and 1 byte at a time. -type zeroOneByteReader struct { - s string - n int -} - -func (r *zeroOneByteReader) Read(p []byte) (int, error) { - if len(p) == 0 { - return 0, nil - } - if len(r.s) == 0 { - return 0, io.EOF - } - r.n++ - if r.n%2 != 0 { - return 0, nil - } - p[0], r.s = r.s[0], r.s[1:] - return 1, nil -} - -// eofStringsReader is like a strings.Reader but can return an (n, err) where -// n > 0 && err != nil. -type eofStringsReader struct { - s string -} - -func (r *eofStringsReader) Read(p []byte) (int, error) { - n := copy(p, r.s) - r.s = r.s[n:] - if r.s != "" { - return n, nil - } - return n, io.EOF -} - -// stuckReader is an io.Reader that always returns no data and no error. -type stuckReader struct{} - -func (*stuckReader) Read(p []byte) (int, error) { - return 0, nil -} - -const ( - rawLevel = iota - lowLevel - highLevel -) - -func benchmarkTokenizer(b *testing.B, level int) { - buf, err := ioutil.ReadFile("testdata/go1.html") - if err != nil { - b.Fatalf("could not read testdata/go1.html: %v", err) - } - b.SetBytes(int64(len(buf))) - runtime.GC() - b.ReportAllocs() - b.ResetTimer() - for i := 0; i < b.N; i++ { - z := NewTokenizer(bytes.NewBuffer(buf)) - for { - tt := z.Next() - if tt == ErrorToken { - if err := z.Err(); err != nil && err != io.EOF { - b.Fatalf("tokenizer error: %v", err) - } - break - } - switch level { - case rawLevel: - // Calling z.Raw just returns the raw bytes of the token. It does - // not unescape < to <, or lower-case tag names and attribute keys. - z.Raw() - case lowLevel: - // Caling z.Text, z.TagName and z.TagAttr returns []byte values - // whose contents may change on the next call to z.Next. - switch tt { - case TextToken, CommentToken, DoctypeToken: - z.Text() - case StartTagToken, SelfClosingTagToken: - _, more := z.TagName() - for more { - _, _, more = z.TagAttr() - } - case EndTagToken: - z.TagName() - } - case highLevel: - // Calling z.Token converts []byte values to strings whose validity - // extend beyond the next call to z.Next. - z.Token() - } - } - } -} - -func BenchmarkRawLevelTokenizer(b *testing.B) { benchmarkTokenizer(b, rawLevel) } -func BenchmarkLowLevelTokenizer(b *testing.B) { benchmarkTokenizer(b, lowLevel) } -func BenchmarkHighLevelTokenizer(b *testing.B) { benchmarkTokenizer(b, highLevel) } diff --git a/Godeps/_workspace/src/golang.org/x/net/websocket/exampledial_test.go b/Godeps/_workspace/src/golang.org/x/net/websocket/exampledial_test.go deleted file mode 100644 index 72bb9d48e..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/websocket/exampledial_test.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket_test - -import ( - "fmt" - "log" - - "golang.org/x/net/websocket" -) - -// This example demonstrates a trivial client. -func ExampleDial() { - origin := "http://localhost/" - url := "ws://localhost:12345/ws" - ws, err := websocket.Dial(url, "", origin) - if err != nil { - log.Fatal(err) - } - if _, err := ws.Write([]byte("hello, world!\n")); err != nil { - log.Fatal(err) - } - var msg = make([]byte, 512) - var n int - if n, err = ws.Read(msg); err != nil { - log.Fatal(err) - } - fmt.Printf("Received: %s.\n", msg[:n]) -} diff --git a/Godeps/_workspace/src/golang.org/x/net/websocket/examplehandler_test.go b/Godeps/_workspace/src/golang.org/x/net/websocket/examplehandler_test.go deleted file mode 100644 index f22a98fcd..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/websocket/examplehandler_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket_test - -import ( - "io" - "net/http" - - "golang.org/x/net/websocket" -) - -// Echo the data received on the WebSocket. -func EchoServer(ws *websocket.Conn) { - io.Copy(ws, ws) -} - -// This example demonstrates a trivial echo server. -func ExampleHandler() { - http.Handle("/echo", websocket.Handler(EchoServer)) - err := http.ListenAndServe(":12345", nil) - if err != nil { - panic("ListenAndServe: " + err.Error()) - } -} diff --git a/Godeps/_workspace/src/golang.org/x/net/websocket/hybi.go b/Godeps/_workspace/src/golang.org/x/net/websocket/hybi.go index f8c0b2e29..60bbc8418 100644 --- a/Godeps/_workspace/src/golang.org/x/net/websocket/hybi.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/hybi.go @@ -157,6 +157,9 @@ func (buf hybiFrameReaderFactory) NewFrameReader() (frame frameReader, err error if err != nil { return } + if lengthFields == 8 && i == 0 { // MSB must be zero when 7+64 bits + b &= 0x7f + } header = append(header, b) hybiFrame.header.Length = hybiFrame.header.Length*256 + int64(b) } @@ -264,7 +267,7 @@ type hybiFrameHandler struct { payloadType byte } -func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (r frameReader, err error) { +func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (frameReader, error) { if handler.conn.IsServerConn() { // The client MUST mask all frames sent to the server. if frame.(*hybiFrameReader).header.MaskingKey == nil { @@ -288,20 +291,19 @@ func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (r frameReader, handler.payloadType = frame.PayloadType() case CloseFrame: return nil, io.EOF - case PingFrame: - pingMsg := make([]byte, maxControlFramePayloadLength) - n, err := io.ReadFull(frame, pingMsg) - if err != nil && err != io.ErrUnexpectedEOF { + case PingFrame, PongFrame: + b := make([]byte, maxControlFramePayloadLength) + n, err := io.ReadFull(frame, b) + if err != nil && err != io.EOF && err != io.ErrUnexpectedEOF { return nil, err } io.Copy(ioutil.Discard, frame) - n, err = handler.WritePong(pingMsg[:n]) - if err != nil { - return nil, err + if frame.PayloadType() == PingFrame { + if _, err := handler.WritePong(b[:n]); err != nil { + return nil, err + } } return nil, nil - case PongFrame: - return nil, ErrNotImplemented } return frame, nil } @@ -370,6 +372,23 @@ func generateNonce() (nonce []byte) { return } +// removeZone removes IPv6 zone identifer from host. +// E.g., "[fe80::1%en0]:8080" to "[fe80::1]:8080" +func removeZone(host string) string { + if !strings.HasPrefix(host, "[") { + return host + } + i := strings.LastIndex(host, "]") + if i < 0 { + return host + } + j := strings.LastIndex(host[:i], "%") + if j < 0 { + return host + } + return host[:j] + host[i:] +} + // getNonceAccept computes the base64-encoded SHA-1 of the concatenation of // the nonce ("Sec-WebSocket-Key" value) with the websocket GUID string. func getNonceAccept(nonce []byte) (expected []byte, err error) { @@ -389,7 +408,10 @@ func getNonceAccept(nonce []byte) (expected []byte, err error) { func hybiClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err error) { bw.WriteString("GET " + config.Location.RequestURI() + " HTTP/1.1\r\n") - bw.WriteString("Host: " + config.Location.Host + "\r\n") + // According to RFC 6874, an HTTP client, proxy, or other + // intermediary must remove any IPv6 zone identifier attached + // to an outgoing URI. + bw.WriteString("Host: " + removeZone(config.Location.Host) + "\r\n") bw.WriteString("Upgrade: websocket\r\n") bw.WriteString("Connection: Upgrade\r\n") nonce := generateNonce() @@ -515,15 +537,15 @@ func (c *hybiServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Reques return http.StatusSwitchingProtocols, nil } -// Origin parses Origin header in "req". -// If origin is "null", returns (nil, nil). +// Origin parses the Origin header in req. +// If the Origin header is not set, it returns nil and nil. func Origin(config *Config, req *http.Request) (*url.URL, error) { var origin string switch config.Version { case ProtocolVersionHybi13: origin = req.Header.Get("Origin") } - if origin == "null" { + if origin == "" { return nil, nil } return url.ParseRequestURI(origin) diff --git a/Godeps/_workspace/src/golang.org/x/net/websocket/hybi_test.go b/Godeps/_workspace/src/golang.org/x/net/websocket/hybi_test.go deleted file mode 100644 index d6a19108a..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/websocket/hybi_test.go +++ /dev/null @@ -1,590 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bufio" - "bytes" - "fmt" - "io" - "net/http" - "net/url" - "strings" - "testing" -) - -// Test the getNonceAccept function with values in -// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17 -func TestSecWebSocketAccept(t *testing.T) { - nonce := []byte("dGhlIHNhbXBsZSBub25jZQ==") - expected := []byte("s3pPLMBiTxaQ9kYGzzhZRbK+xOo=") - accept, err := getNonceAccept(nonce) - if err != nil { - t.Errorf("getNonceAccept: returned error %v", err) - return - } - if !bytes.Equal(expected, accept) { - t.Errorf("getNonceAccept: expected %q got %q", expected, accept) - } -} - -func TestHybiClientHandshake(t *testing.T) { - b := bytes.NewBuffer([]byte{}) - bw := bufio.NewWriter(b) - br := bufio.NewReader(strings.NewReader(`HTTP/1.1 101 Switching Protocols -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= -Sec-WebSocket-Protocol: chat - -`)) - var err error - config := new(Config) - config.Location, err = url.ParseRequestURI("ws://server.example.com/chat") - if err != nil { - t.Fatal("location url", err) - } - config.Origin, err = url.ParseRequestURI("http://example.com") - if err != nil { - t.Fatal("origin url", err) - } - config.Protocol = append(config.Protocol, "chat") - config.Protocol = append(config.Protocol, "superchat") - config.Version = ProtocolVersionHybi13 - - config.handshakeData = map[string]string{ - "key": "dGhlIHNhbXBsZSBub25jZQ==", - } - err = hybiClientHandshake(config, br, bw) - if err != nil { - t.Errorf("handshake failed: %v", err) - } - req, err := http.ReadRequest(bufio.NewReader(b)) - if err != nil { - t.Fatalf("read request: %v", err) - } - if req.Method != "GET" { - t.Errorf("request method expected GET, but got %q", req.Method) - } - if req.URL.Path != "/chat" { - t.Errorf("request path expected /chat, but got %q", req.URL.Path) - } - if req.Proto != "HTTP/1.1" { - t.Errorf("request proto expected HTTP/1.1, but got %q", req.Proto) - } - if req.Host != "server.example.com" { - t.Errorf("request Host expected server.example.com, but got %v", req.Host) - } - var expectedHeader = map[string]string{ - "Connection": "Upgrade", - "Upgrade": "websocket", - "Sec-Websocket-Key": config.handshakeData["key"], - "Origin": config.Origin.String(), - "Sec-Websocket-Protocol": "chat, superchat", - "Sec-Websocket-Version": fmt.Sprintf("%d", ProtocolVersionHybi13), - } - for k, v := range expectedHeader { - if req.Header.Get(k) != v { - t.Errorf(fmt.Sprintf("%s expected %q but got %q", k, v, req.Header.Get(k))) - } - } -} - -func TestHybiClientHandshakeWithHeader(t *testing.T) { - b := bytes.NewBuffer([]byte{}) - bw := bufio.NewWriter(b) - br := bufio.NewReader(strings.NewReader(`HTTP/1.1 101 Switching Protocols -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= -Sec-WebSocket-Protocol: chat - -`)) - var err error - config := new(Config) - config.Location, err = url.ParseRequestURI("ws://server.example.com/chat") - if err != nil { - t.Fatal("location url", err) - } - config.Origin, err = url.ParseRequestURI("http://example.com") - if err != nil { - t.Fatal("origin url", err) - } - config.Protocol = append(config.Protocol, "chat") - config.Protocol = append(config.Protocol, "superchat") - config.Version = ProtocolVersionHybi13 - config.Header = http.Header(make(map[string][]string)) - config.Header.Add("User-Agent", "test") - - config.handshakeData = map[string]string{ - "key": "dGhlIHNhbXBsZSBub25jZQ==", - } - err = hybiClientHandshake(config, br, bw) - if err != nil { - t.Errorf("handshake failed: %v", err) - } - req, err := http.ReadRequest(bufio.NewReader(b)) - if err != nil { - t.Fatalf("read request: %v", err) - } - if req.Method != "GET" { - t.Errorf("request method expected GET, but got %q", req.Method) - } - if req.URL.Path != "/chat" { - t.Errorf("request path expected /chat, but got %q", req.URL.Path) - } - if req.Proto != "HTTP/1.1" { - t.Errorf("request proto expected HTTP/1.1, but got %q", req.Proto) - } - if req.Host != "server.example.com" { - t.Errorf("request Host expected server.example.com, but got %v", req.Host) - } - var expectedHeader = map[string]string{ - "Connection": "Upgrade", - "Upgrade": "websocket", - "Sec-Websocket-Key": config.handshakeData["key"], - "Origin": config.Origin.String(), - "Sec-Websocket-Protocol": "chat, superchat", - "Sec-Websocket-Version": fmt.Sprintf("%d", ProtocolVersionHybi13), - "User-Agent": "test", - } - for k, v := range expectedHeader { - if req.Header.Get(k) != v { - t.Errorf(fmt.Sprintf("%s expected %q but got %q", k, v, req.Header.Get(k))) - } - } -} - -func TestHybiServerHandshake(t *testing.T) { - config := new(Config) - handshaker := &hybiServerHandshaker{Config: config} - br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1 -Host: server.example.com -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== -Origin: http://example.com -Sec-WebSocket-Protocol: chat, superchat -Sec-WebSocket-Version: 13 - -`)) - req, err := http.ReadRequest(br) - if err != nil { - t.Fatal("request", err) - } - code, err := handshaker.ReadHandshake(br, req) - if err != nil { - t.Errorf("handshake failed: %v", err) - } - if code != http.StatusSwitchingProtocols { - t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code) - } - expectedProtocols := []string{"chat", "superchat"} - if fmt.Sprintf("%v", config.Protocol) != fmt.Sprintf("%v", expectedProtocols) { - t.Errorf("protocol expected %q but got %q", expectedProtocols, config.Protocol) - } - b := bytes.NewBuffer([]byte{}) - bw := bufio.NewWriter(b) - - config.Protocol = config.Protocol[:1] - - err = handshaker.AcceptHandshake(bw) - if err != nil { - t.Errorf("handshake response failed: %v", err) - } - expectedResponse := strings.Join([]string{ - "HTTP/1.1 101 Switching Protocols", - "Upgrade: websocket", - "Connection: Upgrade", - "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", - "Sec-WebSocket-Protocol: chat", - "", ""}, "\r\n") - - if b.String() != expectedResponse { - t.Errorf("handshake expected %q but got %q", expectedResponse, b.String()) - } -} - -func TestHybiServerHandshakeNoSubProtocol(t *testing.T) { - config := new(Config) - handshaker := &hybiServerHandshaker{Config: config} - br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1 -Host: server.example.com -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== -Origin: http://example.com -Sec-WebSocket-Version: 13 - -`)) - req, err := http.ReadRequest(br) - if err != nil { - t.Fatal("request", err) - } - code, err := handshaker.ReadHandshake(br, req) - if err != nil { - t.Errorf("handshake failed: %v", err) - } - if code != http.StatusSwitchingProtocols { - t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code) - } - if len(config.Protocol) != 0 { - t.Errorf("len(config.Protocol) expected 0, but got %q", len(config.Protocol)) - } - b := bytes.NewBuffer([]byte{}) - bw := bufio.NewWriter(b) - - err = handshaker.AcceptHandshake(bw) - if err != nil { - t.Errorf("handshake response failed: %v", err) - } - expectedResponse := strings.Join([]string{ - "HTTP/1.1 101 Switching Protocols", - "Upgrade: websocket", - "Connection: Upgrade", - "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", - "", ""}, "\r\n") - - if b.String() != expectedResponse { - t.Errorf("handshake expected %q but got %q", expectedResponse, b.String()) - } -} - -func TestHybiServerHandshakeHybiBadVersion(t *testing.T) { - config := new(Config) - handshaker := &hybiServerHandshaker{Config: config} - br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1 -Host: server.example.com -Upgrade: websocket -Connection: Upgrade -Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== -Sec-WebSocket-Origin: http://example.com -Sec-WebSocket-Protocol: chat, superchat -Sec-WebSocket-Version: 9 - -`)) - req, err := http.ReadRequest(br) - if err != nil { - t.Fatal("request", err) - } - code, err := handshaker.ReadHandshake(br, req) - if err != ErrBadWebSocketVersion { - t.Errorf("handshake expected err %q but got %q", ErrBadWebSocketVersion, err) - } - if code != http.StatusBadRequest { - t.Errorf("status expected %q but got %q", http.StatusBadRequest, code) - } -} - -func testHybiFrame(t *testing.T, testHeader, testPayload, testMaskedPayload []byte, frameHeader *hybiFrameHeader) { - b := bytes.NewBuffer([]byte{}) - frameWriterFactory := &hybiFrameWriterFactory{bufio.NewWriter(b), false} - w, _ := frameWriterFactory.NewFrameWriter(TextFrame) - w.(*hybiFrameWriter).header = frameHeader - _, err := w.Write(testPayload) - w.Close() - if err != nil { - t.Errorf("Write error %q", err) - } - var expectedFrame []byte - expectedFrame = append(expectedFrame, testHeader...) - expectedFrame = append(expectedFrame, testMaskedPayload...) - if !bytes.Equal(expectedFrame, b.Bytes()) { - t.Errorf("frame expected %q got %q", expectedFrame, b.Bytes()) - } - frameReaderFactory := &hybiFrameReaderFactory{bufio.NewReader(b)} - r, err := frameReaderFactory.NewFrameReader() - if err != nil { - t.Errorf("Read error %q", err) - } - if header := r.HeaderReader(); header == nil { - t.Errorf("no header") - } else { - actualHeader := make([]byte, r.Len()) - n, err := header.Read(actualHeader) - if err != nil { - t.Errorf("Read header error %q", err) - } else { - if n < len(testHeader) { - t.Errorf("header too short %q got %q", testHeader, actualHeader[:n]) - } - if !bytes.Equal(testHeader, actualHeader[:n]) { - t.Errorf("header expected %q got %q", testHeader, actualHeader[:n]) - } - } - } - if trailer := r.TrailerReader(); trailer != nil { - t.Errorf("unexpected trailer %q", trailer) - } - frame := r.(*hybiFrameReader) - if frameHeader.Fin != frame.header.Fin || - frameHeader.OpCode != frame.header.OpCode || - len(testPayload) != int(frame.header.Length) { - t.Errorf("mismatch %v (%d) vs %v", frameHeader, len(testPayload), frame) - } - payload := make([]byte, len(testPayload)) - _, err = r.Read(payload) - if err != nil { - t.Errorf("read %v", err) - } - if !bytes.Equal(testPayload, payload) { - t.Errorf("payload %q vs %q", testPayload, payload) - } -} - -func TestHybiShortTextFrame(t *testing.T) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: TextFrame} - payload := []byte("hello") - testHybiFrame(t, []byte{0x81, 0x05}, payload, payload, frameHeader) - - payload = make([]byte, 125) - testHybiFrame(t, []byte{0x81, 125}, payload, payload, frameHeader) -} - -func TestHybiShortMaskedTextFrame(t *testing.T) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: TextFrame, - MaskingKey: []byte{0xcc, 0x55, 0x80, 0x20}} - payload := []byte("hello") - maskedPayload := []byte{0xa4, 0x30, 0xec, 0x4c, 0xa3} - header := []byte{0x81, 0x85} - header = append(header, frameHeader.MaskingKey...) - testHybiFrame(t, header, payload, maskedPayload, frameHeader) -} - -func TestHybiShortBinaryFrame(t *testing.T) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: BinaryFrame} - payload := []byte("hello") - testHybiFrame(t, []byte{0x82, 0x05}, payload, payload, frameHeader) - - payload = make([]byte, 125) - testHybiFrame(t, []byte{0x82, 125}, payload, payload, frameHeader) -} - -func TestHybiControlFrame(t *testing.T) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: PingFrame} - payload := []byte("hello") - testHybiFrame(t, []byte{0x89, 0x05}, payload, payload, frameHeader) - - frameHeader = &hybiFrameHeader{Fin: true, OpCode: PongFrame} - testHybiFrame(t, []byte{0x8A, 0x05}, payload, payload, frameHeader) - - frameHeader = &hybiFrameHeader{Fin: true, OpCode: CloseFrame} - payload = []byte{0x03, 0xe8} // 1000 - testHybiFrame(t, []byte{0x88, 0x02}, payload, payload, frameHeader) -} - -func TestHybiLongFrame(t *testing.T) { - frameHeader := &hybiFrameHeader{Fin: true, OpCode: TextFrame} - payload := make([]byte, 126) - testHybiFrame(t, []byte{0x81, 126, 0x00, 126}, payload, payload, frameHeader) - - payload = make([]byte, 65535) - testHybiFrame(t, []byte{0x81, 126, 0xff, 0xff}, payload, payload, frameHeader) - - payload = make([]byte, 65536) - testHybiFrame(t, []byte{0x81, 127, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}, payload, payload, frameHeader) -} - -func TestHybiClientRead(t *testing.T) { - wireData := []byte{0x81, 0x05, 'h', 'e', 'l', 'l', 'o', - 0x89, 0x05, 'h', 'e', 'l', 'l', 'o', // ping - 0x81, 0x05, 'w', 'o', 'r', 'l', 'd'} - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, nil) - - msg := make([]byte, 512) - n, err := conn.Read(msg) - if err != nil { - t.Errorf("read 1st frame, error %q", err) - } - if n != 5 { - t.Errorf("read 1st frame, expect 5, got %d", n) - } - if !bytes.Equal(wireData[2:7], msg[:n]) { - t.Errorf("read 1st frame %v, got %v", wireData[2:7], msg[:n]) - } - n, err = conn.Read(msg) - if err != nil { - t.Errorf("read 2nd frame, error %q", err) - } - if n != 5 { - t.Errorf("read 2nd frame, expect 5, got %d", n) - } - if !bytes.Equal(wireData[16:21], msg[:n]) { - t.Errorf("read 2nd frame %v, got %v", wireData[16:21], msg[:n]) - } - n, err = conn.Read(msg) - if err == nil { - t.Errorf("read not EOF") - } - if n != 0 { - t.Errorf("expect read 0, got %d", n) - } -} - -func TestHybiShortRead(t *testing.T) { - wireData := []byte{0x81, 0x05, 'h', 'e', 'l', 'l', 'o', - 0x89, 0x05, 'h', 'e', 'l', 'l', 'o', // ping - 0x81, 0x05, 'w', 'o', 'r', 'l', 'd'} - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, nil) - - step := 0 - pos := 0 - expectedPos := []int{2, 5, 16, 19} - expectedLen := []int{3, 2, 3, 2} - for { - msg := make([]byte, 3) - n, err := conn.Read(msg) - if step >= len(expectedPos) { - if err == nil { - t.Errorf("read not EOF") - } - if n != 0 { - t.Errorf("expect read 0, got %d", n) - } - return - } - pos = expectedPos[step] - endPos := pos + expectedLen[step] - if err != nil { - t.Errorf("read from %d, got error %q", pos, err) - return - } - if n != endPos-pos { - t.Errorf("read from %d, expect %d, got %d", pos, endPos-pos, n) - } - if !bytes.Equal(wireData[pos:endPos], msg[:n]) { - t.Errorf("read from %d, frame %v, got %v", pos, wireData[pos:endPos], msg[:n]) - } - step++ - } -} - -func TestHybiServerRead(t *testing.T) { - wireData := []byte{0x81, 0x85, 0xcc, 0x55, 0x80, 0x20, - 0xa4, 0x30, 0xec, 0x4c, 0xa3, // hello - 0x89, 0x85, 0xcc, 0x55, 0x80, 0x20, - 0xa4, 0x30, 0xec, 0x4c, 0xa3, // ping: hello - 0x81, 0x85, 0xed, 0x83, 0xb4, 0x24, - 0x9a, 0xec, 0xc6, 0x48, 0x89, // world - } - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, new(http.Request)) - - expected := [][]byte{[]byte("hello"), []byte("world")} - - msg := make([]byte, 512) - n, err := conn.Read(msg) - if err != nil { - t.Errorf("read 1st frame, error %q", err) - } - if n != 5 { - t.Errorf("read 1st frame, expect 5, got %d", n) - } - if !bytes.Equal(expected[0], msg[:n]) { - t.Errorf("read 1st frame %q, got %q", expected[0], msg[:n]) - } - - n, err = conn.Read(msg) - if err != nil { - t.Errorf("read 2nd frame, error %q", err) - } - if n != 5 { - t.Errorf("read 2nd frame, expect 5, got %d", n) - } - if !bytes.Equal(expected[1], msg[:n]) { - t.Errorf("read 2nd frame %q, got %q", expected[1], msg[:n]) - } - - n, err = conn.Read(msg) - if err == nil { - t.Errorf("read not EOF") - } - if n != 0 { - t.Errorf("expect read 0, got %d", n) - } -} - -func TestHybiServerReadWithoutMasking(t *testing.T) { - wireData := []byte{0x81, 0x05, 'h', 'e', 'l', 'l', 'o'} - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, new(http.Request)) - // server MUST close the connection upon receiving a non-masked frame. - msg := make([]byte, 512) - _, err := conn.Read(msg) - if err != io.EOF { - t.Errorf("read 1st frame, expect %q, but got %q", io.EOF, err) - } -} - -func TestHybiClientReadWithMasking(t *testing.T) { - wireData := []byte{0x81, 0x85, 0xcc, 0x55, 0x80, 0x20, - 0xa4, 0x30, 0xec, 0x4c, 0xa3, // hello - } - br := bufio.NewReader(bytes.NewBuffer(wireData)) - bw := bufio.NewWriter(bytes.NewBuffer([]byte{})) - conn := newHybiConn(newConfig(t, "/"), bufio.NewReadWriter(br, bw), nil, nil) - - // client MUST close the connection upon receiving a masked frame. - msg := make([]byte, 512) - _, err := conn.Read(msg) - if err != io.EOF { - t.Errorf("read 1st frame, expect %q, but got %q", io.EOF, err) - } -} - -// Test the hybiServerHandshaker supports firefox implementation and -// checks Connection request header include (but it's not necessary -// equal to) "upgrade" -func TestHybiServerFirefoxHandshake(t *testing.T) { - config := new(Config) - handshaker := &hybiServerHandshaker{Config: config} - br := bufio.NewReader(strings.NewReader(`GET /chat HTTP/1.1 -Host: server.example.com -Upgrade: websocket -Connection: keep-alive, upgrade -Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== -Origin: http://example.com -Sec-WebSocket-Protocol: chat, superchat -Sec-WebSocket-Version: 13 - -`)) - req, err := http.ReadRequest(br) - if err != nil { - t.Fatal("request", err) - } - code, err := handshaker.ReadHandshake(br, req) - if err != nil { - t.Errorf("handshake failed: %v", err) - } - if code != http.StatusSwitchingProtocols { - t.Errorf("status expected %q but got %q", http.StatusSwitchingProtocols, code) - } - b := bytes.NewBuffer([]byte{}) - bw := bufio.NewWriter(b) - - config.Protocol = []string{"chat"} - - err = handshaker.AcceptHandshake(bw) - if err != nil { - t.Errorf("handshake response failed: %v", err) - } - expectedResponse := strings.Join([]string{ - "HTTP/1.1 101 Switching Protocols", - "Upgrade: websocket", - "Connection: Upgrade", - "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", - "Sec-WebSocket-Protocol: chat", - "", ""}, "\r\n") - - if b.String() != expectedResponse { - t.Errorf("handshake expected %q but got %q", expectedResponse, b.String()) - } -} diff --git a/Godeps/_workspace/src/golang.org/x/net/websocket/server.go b/Godeps/_workspace/src/golang.org/x/net/websocket/server.go index 70322133c..0895dea19 100644 --- a/Godeps/_workspace/src/golang.org/x/net/websocket/server.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/server.go @@ -74,7 +74,6 @@ func (s Server) serveWebSocket(w http.ResponseWriter, req *http.Request) { rwc, buf, err := w.(http.Hijacker).Hijack() if err != nil { panic("Hijack failed: " + err.Error()) - return } // The server should abort the WebSocket connection if it finds // the client did not send a handshake that matches with protocol @@ -95,8 +94,8 @@ func (s Server) serveWebSocket(w http.ResponseWriter, req *http.Request) { // You might want to verify websocket.Conn.Config().Origin in the func. // If you use Server instead of Handler, you could call websocket.Origin and // check the origin in your Handshake func. So, if you want to accept -// non-browser client, which doesn't send Origin header, you could use Server -//. that doesn't check origin in its Handshake. +// non-browser clients, which do not send an Origin header, set a +// Server.Handshake that does not check the origin. type Handler func(*Conn) func checkOrigin(config *Config, req *http.Request) (err error) { diff --git a/Godeps/_workspace/src/golang.org/x/net/websocket/websocket.go b/Godeps/_workspace/src/golang.org/x/net/websocket/websocket.go index 0f4917bf7..da0dd964c 100644 --- a/Godeps/_workspace/src/golang.org/x/net/websocket/websocket.go +++ b/Godeps/_workspace/src/golang.org/x/net/websocket/websocket.go @@ -216,10 +216,11 @@ func (ws *Conn) Write(msg []byte) (n int, err error) { // Close implements the io.Closer interface. func (ws *Conn) Close() error { err := ws.frameHandler.WriteClose(ws.defaultCloseStatus) + err1 := ws.rwc.Close() if err != nil { return err } - return ws.rwc.Close() + return err1 } func (ws *Conn) IsClientConn() bool { return ws.request == nil } diff --git a/Godeps/_workspace/src/golang.org/x/net/websocket/websocket_test.go b/Godeps/_workspace/src/golang.org/x/net/websocket/websocket_test.go deleted file mode 100644 index a376abacf..000000000 --- a/Godeps/_workspace/src/golang.org/x/net/websocket/websocket_test.go +++ /dev/null @@ -1,414 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package websocket - -import ( - "bytes" - "fmt" - "io" - "log" - "net" - "net/http" - "net/http/httptest" - "net/url" - "strings" - "sync" - "testing" -) - -var serverAddr string -var once sync.Once - -func echoServer(ws *Conn) { io.Copy(ws, ws) } - -type Count struct { - S string - N int -} - -func countServer(ws *Conn) { - for { - var count Count - err := JSON.Receive(ws, &count) - if err != nil { - return - } - count.N++ - count.S = strings.Repeat(count.S, count.N) - err = JSON.Send(ws, count) - if err != nil { - return - } - } -} - -func subProtocolHandshake(config *Config, req *http.Request) error { - for _, proto := range config.Protocol { - if proto == "chat" { - config.Protocol = []string{proto} - return nil - } - } - return ErrBadWebSocketProtocol -} - -func subProtoServer(ws *Conn) { - for _, proto := range ws.Config().Protocol { - io.WriteString(ws, proto) - } -} - -func startServer() { - http.Handle("/echo", Handler(echoServer)) - http.Handle("/count", Handler(countServer)) - subproto := Server{ - Handshake: subProtocolHandshake, - Handler: Handler(subProtoServer), - } - http.Handle("/subproto", subproto) - server := httptest.NewServer(nil) - serverAddr = server.Listener.Addr().String() - log.Print("Test WebSocket server listening on ", serverAddr) -} - -func newConfig(t *testing.T, path string) *Config { - config, _ := NewConfig(fmt.Sprintf("ws://%s%s", serverAddr, path), "http://localhost") - return config -} - -func TestEcho(t *testing.T) { - once.Do(startServer) - - // websocket.Dial() - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - conn, err := NewClient(newConfig(t, "/echo"), client) - if err != nil { - t.Errorf("WebSocket handshake error: %v", err) - return - } - - msg := []byte("hello, world\n") - if _, err := conn.Write(msg); err != nil { - t.Errorf("Write: %v", err) - } - var actual_msg = make([]byte, 512) - n, err := conn.Read(actual_msg) - if err != nil { - t.Errorf("Read: %v", err) - } - actual_msg = actual_msg[0:n] - if !bytes.Equal(msg, actual_msg) { - t.Errorf("Echo: expected %q got %q", msg, actual_msg) - } - conn.Close() -} - -func TestAddr(t *testing.T) { - once.Do(startServer) - - // websocket.Dial() - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - conn, err := NewClient(newConfig(t, "/echo"), client) - if err != nil { - t.Errorf("WebSocket handshake error: %v", err) - return - } - - ra := conn.RemoteAddr().String() - if !strings.HasPrefix(ra, "ws://") || !strings.HasSuffix(ra, "/echo") { - t.Errorf("Bad remote addr: %v", ra) - } - la := conn.LocalAddr().String() - if !strings.HasPrefix(la, "http://") { - t.Errorf("Bad local addr: %v", la) - } - conn.Close() -} - -func TestCount(t *testing.T) { - once.Do(startServer) - - // websocket.Dial() - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - conn, err := NewClient(newConfig(t, "/count"), client) - if err != nil { - t.Errorf("WebSocket handshake error: %v", err) - return - } - - var count Count - count.S = "hello" - if err := JSON.Send(conn, count); err != nil { - t.Errorf("Write: %v", err) - } - if err := JSON.Receive(conn, &count); err != nil { - t.Errorf("Read: %v", err) - } - if count.N != 1 { - t.Errorf("count: expected %d got %d", 1, count.N) - } - if count.S != "hello" { - t.Errorf("count: expected %q got %q", "hello", count.S) - } - if err := JSON.Send(conn, count); err != nil { - t.Errorf("Write: %v", err) - } - if err := JSON.Receive(conn, &count); err != nil { - t.Errorf("Read: %v", err) - } - if count.N != 2 { - t.Errorf("count: expected %d got %d", 2, count.N) - } - if count.S != "hellohello" { - t.Errorf("count: expected %q got %q", "hellohello", count.S) - } - conn.Close() -} - -func TestWithQuery(t *testing.T) { - once.Do(startServer) - - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - - config := newConfig(t, "/echo") - config.Location, err = url.ParseRequestURI(fmt.Sprintf("ws://%s/echo?q=v", serverAddr)) - if err != nil { - t.Fatal("location url", err) - } - - ws, err := NewClient(config, client) - if err != nil { - t.Errorf("WebSocket handshake: %v", err) - return - } - ws.Close() -} - -func testWithProtocol(t *testing.T, subproto []string) (string, error) { - once.Do(startServer) - - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - - config := newConfig(t, "/subproto") - config.Protocol = subproto - - ws, err := NewClient(config, client) - if err != nil { - return "", err - } - msg := make([]byte, 16) - n, err := ws.Read(msg) - if err != nil { - return "", err - } - ws.Close() - return string(msg[:n]), nil -} - -func TestWithProtocol(t *testing.T) { - proto, err := testWithProtocol(t, []string{"chat"}) - if err != nil { - t.Errorf("SubProto: unexpected error: %v", err) - } - if proto != "chat" { - t.Errorf("SubProto: expected %q, got %q", "chat", proto) - } -} - -func TestWithTwoProtocol(t *testing.T) { - proto, err := testWithProtocol(t, []string{"test", "chat"}) - if err != nil { - t.Errorf("SubProto: unexpected error: %v", err) - } - if proto != "chat" { - t.Errorf("SubProto: expected %q, got %q", "chat", proto) - } -} - -func TestWithBadProtocol(t *testing.T) { - _, err := testWithProtocol(t, []string{"test"}) - if err != ErrBadStatus { - t.Errorf("SubProto: expected %v, got %v", ErrBadStatus, err) - } -} - -func TestHTTP(t *testing.T) { - once.Do(startServer) - - // If the client did not send a handshake that matches the protocol - // specification, the server MUST return an HTTP response with an - // appropriate error code (such as 400 Bad Request) - resp, err := http.Get(fmt.Sprintf("http://%s/echo", serverAddr)) - if err != nil { - t.Errorf("Get: error %#v", err) - return - } - if resp == nil { - t.Error("Get: resp is null") - return - } - if resp.StatusCode != http.StatusBadRequest { - t.Errorf("Get: expected %q got %q", http.StatusBadRequest, resp.StatusCode) - } -} - -func TestTrailingSpaces(t *testing.T) { - // http://code.google.com/p/go/issues/detail?id=955 - // The last runs of this create keys with trailing spaces that should not be - // generated by the client. - once.Do(startServer) - config := newConfig(t, "/echo") - for i := 0; i < 30; i++ { - // body - ws, err := DialConfig(config) - if err != nil { - t.Errorf("Dial #%d failed: %v", i, err) - break - } - ws.Close() - } -} - -func TestDialConfigBadVersion(t *testing.T) { - once.Do(startServer) - config := newConfig(t, "/echo") - config.Version = 1234 - - _, err := DialConfig(config) - - if dialerr, ok := err.(*DialError); ok { - if dialerr.Err != ErrBadProtocolVersion { - t.Errorf("dial expected err %q but got %q", ErrBadProtocolVersion, dialerr.Err) - } - } -} - -func TestSmallBuffer(t *testing.T) { - // http://code.google.com/p/go/issues/detail?id=1145 - // Read should be able to handle reading a fragment of a frame. - once.Do(startServer) - - // websocket.Dial() - client, err := net.Dial("tcp", serverAddr) - if err != nil { - t.Fatal("dialing", err) - } - conn, err := NewClient(newConfig(t, "/echo"), client) - if err != nil { - t.Errorf("WebSocket handshake error: %v", err) - return - } - - msg := []byte("hello, world\n") - if _, err := conn.Write(msg); err != nil { - t.Errorf("Write: %v", err) - } - var small_msg = make([]byte, 8) - n, err := conn.Read(small_msg) - if err != nil { - t.Errorf("Read: %v", err) - } - if !bytes.Equal(msg[:len(small_msg)], small_msg) { - t.Errorf("Echo: expected %q got %q", msg[:len(small_msg)], small_msg) - } - var second_msg = make([]byte, len(msg)) - n, err = conn.Read(second_msg) - if err != nil { - t.Errorf("Read: %v", err) - } - second_msg = second_msg[0:n] - if !bytes.Equal(msg[len(small_msg):], second_msg) { - t.Errorf("Echo: expected %q got %q", msg[len(small_msg):], second_msg) - } - conn.Close() -} - -var parseAuthorityTests = []struct { - in *url.URL - out string -}{ - { - &url.URL{ - Scheme: "ws", - Host: "www.google.com", - }, - "www.google.com:80", - }, - { - &url.URL{ - Scheme: "wss", - Host: "www.google.com", - }, - "www.google.com:443", - }, - { - &url.URL{ - Scheme: "ws", - Host: "www.google.com:80", - }, - "www.google.com:80", - }, - { - &url.URL{ - Scheme: "wss", - Host: "www.google.com:443", - }, - "www.google.com:443", - }, - // some invalid ones for parseAuthority. parseAuthority doesn't - // concern itself with the scheme unless it actually knows about it - { - &url.URL{ - Scheme: "http", - Host: "www.google.com", - }, - "www.google.com", - }, - { - &url.URL{ - Scheme: "http", - Host: "www.google.com:80", - }, - "www.google.com:80", - }, - { - &url.URL{ - Scheme: "asdf", - Host: "127.0.0.1", - }, - "127.0.0.1", - }, - { - &url.URL{ - Scheme: "asdf", - Host: "www.google.com", - }, - "www.google.com", - }, -} - -func TestParseAuthority(t *testing.T) { - for _, tt := range parseAuthorityTests { - out := parseAuthority(tt.in) - if out != tt.out { - t.Errorf("got %v; want %v", out, tt.out) - } - } -} |