From 3b86cd524c5392ce9e394f6a2dd4c9a688ad8e19 Mon Sep 17 00:00:00 2001 From: Eric Chiang Date: Fri, 8 Apr 2016 11:55:56 -0700 Subject: [PATCH 1/2] *: move from godep to glide --- Documentation/dev-guide.md | 49 +++-------- Godeps/Godeps.json | 165 ------------------------------------- Godeps/Readme | 5 -- glide.lock | 85 +++++++++++++++++++ glide.yaml | 77 +++++++++++++++++ 5 files changed, 175 insertions(+), 206 deletions(-) delete mode 100644 Godeps/Godeps.json delete mode 100644 Godeps/Readme create mode 100644 glide.lock create mode 100644 glide.yaml diff --git a/Documentation/dev-guide.md b/Documentation/dev-guide.md index 5d346db6..611fd446 100644 --- a/Documentation/dev-guide.md +++ b/Documentation/dev-guide.md @@ -82,68 +82,45 @@ docker rm -f dex_postgres ## Vendoring dependencies -dex uses [godep](https://github.com/tools/godep) for vendoring external dependencies. This section details how to add and update those dependencies. +dex uses [glide](https://github.com/Masterminds/glide) for vendoring external dependencies. This section details how to add and update those dependencies. -Before continuing, please ensure you have the **latest version** of godep available in your PATH. +Before continuing, please ensure you have the **latest version** of glide available in your PATH. ``` -go get -u github.com/tools/godep +go get -u github.com/Masterminds/glide ``` -### Preparing your GOPATH - -Godep assumes code uses the [standard Go directory layout](https://golang.org/doc/code.html#Organization) with the GOPATH environment variable. Developers who use a different workflow (for instance, prefer working from `~/src/dex`) should see [rkt's documentation](https://github.com/coreos/rkt/blob/master/Documentation/hacking.md#having-the-right-directory-layout-ie-gopath) for workarounds. - -Godep determines depdencies using the GOPATH, not the vendored code in the Godeps directory. The first step is to "restore" your GOPATH to match the vendored state of dex. From dex's top level directory run: - -``` -godep restore -v -``` - -Next, continue to either *Adding a new package* or *Updating an existing package*. - ### Adding a new package -After adding a new `import` to dex source, godep will automatically detect it and update the vendored code. Once code changes are finalized, bring the dependency into your GOPATH and save the state: +After adding a new `import` to dex source, use `glide get` to add the dependency to the `glide.yaml` and `glide.lock` files. ``` -go get github.com/mavricknz/ldap # Replace with your dependency. -godep save ./... +glide get -u -v -s github.com/godbus/dbus ``` -Note that dex does **not** rewrite import paths like other CoreOS projects. +Note that __all of these flags are manditory__. This should add an entry to the glide files, add the package to the `vendor` directory, and remove nested `vendor` directories and version control information. ## Updating an existing package -After restoring your GOPATH, update the dependency in your GOPATH to the version you wish to check in. +To update an existing package, edit the `glide.yaml` file to the desired verison (most likely a git hash), and run `glide update`. ``` -cd $GOPATH/src/github.com/lib/pq # Replace with your dependency. -git checkout origin master +{{ edit the entry in glide.yaml }} +glide update -u -v -s github.com/lib/pq ``` -Then, move to dex's top level directory and run: - -``` -godep update github.com/lib/pq -``` - -To update a group of packages, use the `...` notation. - -``` -godep update github.com/coreos/go-oidc/... -``` +Like `glide get` all flags are manditory. If the update was successful, `glide.lock` will have been updated to reflect the changes to `glide.yaml` and the package will have been updated in `vendor`. ## Finalizing your change -Use git to ensure the Godeps directory has updated only your target packages. +Use git to ensure the `vendor` directory has updated only your target packages, and that no other entries in `glide.yaml` and `glide.lock` have changed. Changes to the Godeps directory should be added as a separate commit from other changes for readability: ``` git status # make sure things look reasonable -git add Godeps -git commit -m "Godeps: updated postgres driver" +git add vendor +git commit -m "vendor: updated postgres driver" # continue working diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json deleted file mode 100644 index 79a18733..00000000 --- a/Godeps/Godeps.json +++ /dev/null @@ -1,165 +0,0 @@ -{ - "ImportPath": "github.com/coreos/dex", - "GoVersion": "go1.6", - "Packages": [ - "./..." - ], - "Deps": [ - { - "ImportPath": "github.com/PuerkitoBio/goquery", - "Comment": "v0.3.2-79-gb444041", - "Rev": "b4440419d81240f8451a505b2f806c853bc2befc" - }, - { - "ImportPath": "github.com/andybalholm/cascadia", - "Rev": "6122e68c2642b7b75c538a63b15168c6c80fb757" - }, - { - "ImportPath": "github.com/coreos/go-oidc/http", - "Rev": "6039032c0b15517897116d333ead8edf38792437" - }, - { - "ImportPath": "github.com/coreos/go-oidc/jose", - "Rev": "6039032c0b15517897116d333ead8edf38792437" - }, - { - "ImportPath": "github.com/coreos/go-oidc/key", - "Rev": "6039032c0b15517897116d333ead8edf38792437" - }, - { - "ImportPath": "github.com/coreos/go-oidc/oauth2", - "Rev": "6039032c0b15517897116d333ead8edf38792437" - }, - { - "ImportPath": "github.com/coreos/go-oidc/oidc", - "Rev": "6039032c0b15517897116d333ead8edf38792437" - }, - { - "ImportPath": "github.com/coreos/pkg/capnslog", - "Rev": "fa94270d4bac0d8ae5dc6b71894e251aada93f74" - }, - { - "ImportPath": "github.com/coreos/pkg/flagutil", - "Rev": "fa94270d4bac0d8ae5dc6b71894e251aada93f74" - }, - { - "ImportPath": "github.com/coreos/pkg/health", - "Rev": "fa94270d4bac0d8ae5dc6b71894e251aada93f74" - }, - { - "ImportPath": "github.com/coreos/pkg/httputil", - "Rev": "fa94270d4bac0d8ae5dc6b71894e251aada93f74" - }, - { - "ImportPath": "github.com/coreos/pkg/timeutil", - "Rev": "fa94270d4bac0d8ae5dc6b71894e251aada93f74" - }, - { - "ImportPath": "github.com/go-gorp/gorp", - "Comment": "v1.7-138-gc44345f", - "Rev": "c44345f52fc81d27c47e6b592dedaf8c28a972eb" - }, - { - "ImportPath": "github.com/gorilla/handlers", - "Rev": "60c7bfde3e33c201519a200a4507a158cc03a17b" - }, - { - "ImportPath": "github.com/inconshreveable/mousetrap", - "Rev": "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" - }, - { - "ImportPath": "github.com/jonboulle/clockwork", - "Rev": "3f831b65b61282ba6bece21b91beea2edc4c887a" - }, - { - "ImportPath": "github.com/julienschmidt/httprouter", - "Comment": "v1.1", - "Rev": "8c199fb6259ffc1af525cc3ad52ee60ba8359669" - }, - { - "ImportPath": "github.com/kylelemons/godebug/diff", - "Rev": "808ac284003ce2b08ef590da08f95379e8a06936" - }, - { - "ImportPath": "github.com/kylelemons/godebug/pretty", - "Rev": "808ac284003ce2b08ef590da08f95379e8a06936" - }, - { - "ImportPath": "github.com/lib/pq", - "Rev": "7175accbed18058468c07811f76440d6e8d7cf19" - }, - { - "ImportPath": "github.com/mailgun/mailgun-go", - "Rev": "9578dc67692294bb7e2a6f4b15dd18c97af19440" - }, - { - "ImportPath": "github.com/mattn/go-sqlite3", - "Comment": "v1.1.0-25-g2513631", - "Rev": "2513631704612107a1c8b1803fb8e6b3dda2230e" - }, - { - "ImportPath": "github.com/mbanzon/simplehttp", - "Rev": "04c542e7ac706a25820090f274ea6a4f39a63326" - }, - { - "ImportPath": "github.com/pborman/uuid", - "Rev": "ca53cad383cad2479bbba7f7a1a05797ec1386e4" - }, - { - "ImportPath": "github.com/rubenv/sql-migrate", - "Rev": "53184e1edfb4f9655b0fa8dd2c23e7763f452bda" - }, - { - "ImportPath": "github.com/spf13/cobra", - "Rev": "b3f29e98e63a3618988a231fd02b45c1e6369d4f" - }, - { - "ImportPath": "github.com/spf13/pflag", - "Rev": "7f60f83a2c81bc3c3c0d5297f61ddfa68da9d3b7" - }, - { - "ImportPath": "golang.org/x/crypto/bcrypt", - "Rev": "1fbbd62cfec66bd39d91e97749579579d4d3037e" - }, - { - "ImportPath": "golang.org/x/crypto/blowfish", - "Rev": "1fbbd62cfec66bd39d91e97749579579d4d3037e" - }, - { - "ImportPath": "golang.org/x/net/html", - "Rev": "dfe268fd2bb5c793f4c083803609fce9806c6f80" - }, - { - "ImportPath": "google.golang.org/api/google-api-go-generator", - "Rev": "d3edb0282bde692467788c50070a9211afe75cf3" - }, - { - "ImportPath": "google.golang.org/api/googleapi", - "Rev": "d3edb0282bde692467788c50070a9211afe75cf3" - }, - { - "ImportPath": "gopkg.in/alexcesaro/quotedprintable.v3", - "Rev": "2caba252f4dc53eaf6b553000885530023f54623" - }, - { - "ImportPath": "gopkg.in/asn1-ber.v1", - "Comment": "v1.1", - "Rev": "4e86f4367175e39f69d9358a5f17b4dda270378d" - }, - { - "ImportPath": "gopkg.in/gomail.v2", - "Comment": "2.0.0-2-gb1e5552", - "Rev": "b1e55520bf557d8a614f1e1f493ce892c1b5e97e" - }, - { - "ImportPath": "gopkg.in/gorp.v1", - "Comment": "v1.7.1", - "Rev": "c87af80f3cc5036b55b83d77171e156791085e2e" - }, - { - "ImportPath": "gopkg.in/ldap.v2", - "Comment": "v2.2", - "Rev": "e9a325d64989e2844be629682cb085d2c58eef8d" - } - ] -} diff --git a/Godeps/Readme b/Godeps/Readme deleted file mode 100644 index 4cdaa53d..00000000 --- a/Godeps/Readme +++ /dev/null @@ -1,5 +0,0 @@ -This directory tree is generated automatically by godep. - -Please do not edit. - -See https://github.com/tools/godep for more information. diff --git a/glide.lock b/glide.lock new file mode 100644 index 00000000..e1d4b018 --- /dev/null +++ b/glide.lock @@ -0,0 +1,85 @@ +hash: b0a1c1b400f077dac572450cb9602aabba62d9b7c6fc8ef426c2093de7621e8c +updated: 2016-04-08T11:43:54.191409294-07:00 +imports: +- name: github.com/andybalholm/cascadia + version: 6122e68c2642b7b75c538a63b15168c6c80fb757 +- name: github.com/coreos/go-oidc + version: 6039032c0b15517897116d333ead8edf38792437 + subpackages: + - http + - jose + - key + - oauth2 + - oidc +- name: github.com/coreos/pkg + version: fa94270d4bac0d8ae5dc6b71894e251aada93f74 + subpackages: + - capnslog + - flagutil + - health + - httputil + - timeutil +- name: github.com/go-gorp/gorp + version: c44345f52fc81d27c47e6b592dedaf8c28a972eb +- name: github.com/gorilla/handlers + version: 60c7bfde3e33c201519a200a4507a158cc03a17b +- name: github.com/inconshreveable/mousetrap + version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 +- name: github.com/jonboulle/clockwork + version: 3f831b65b61282ba6bece21b91beea2edc4c887a +- name: github.com/julienschmidt/httprouter + version: 8c199fb6259ffc1af525cc3ad52ee60ba8359669 +- name: github.com/kylelemons/godebug + version: 808ac284003ce2b08ef590da08f95379e8a06936 + subpackages: + - diff + - pretty +- name: github.com/lib/pq + version: 7175accbed18058468c07811f76440d6e8d7cf19 + subpackages: + - oid +- name: github.com/mailgun/mailgun-go + version: 9578dc67692294bb7e2a6f4b15dd18c97af19440 +- name: github.com/mattn/go-sqlite3 + version: 2513631704612107a1c8b1803fb8e6b3dda2230e +- name: github.com/mbanzon/simplehttp + version: 04c542e7ac706a25820090f274ea6a4f39a63326 +- name: github.com/pborman/uuid + version: ca53cad383cad2479bbba7f7a1a05797ec1386e4 +- name: github.com/PuerkitoBio/goquery + version: b4440419d81240f8451a505b2f806c853bc2befc +- name: github.com/rubenv/sql-migrate + version: 53184e1edfb4f9655b0fa8dd2c23e7763f452bda + subpackages: + - sqlparse +- name: github.com/spf13/cobra + version: b3f29e98e63a3618988a231fd02b45c1e6369d4f +- name: github.com/spf13/pflag + version: 7f60f83a2c81bc3c3c0d5297f61ddfa68da9d3b7 +- name: golang.org/x/crypto + version: 1fbbd62cfec66bd39d91e97749579579d4d3037e + subpackages: + - bcrypt + - blowfish +- name: golang.org/x/net + version: dfe268fd2bb5c793f4c083803609fce9806c6f80 + subpackages: + - html + - html/atom +- name: google.golang.org/api + version: d3edb0282bde692467788c50070a9211afe75cf3 + subpackages: + - google-api-go-generator + - googleapi + - googleapi/internal/uritemplates +- name: gopkg.in/alexcesaro/quotedprintable.v3 + version: 2caba252f4dc53eaf6b553000885530023f54623 +- name: gopkg.in/asn1-ber.v1 + version: 4e86f4367175e39f69d9358a5f17b4dda270378d +- name: gopkg.in/gomail.v2 + version: b1e55520bf557d8a614f1e1f493ce892c1b5e97e +- name: gopkg.in/gorp.v1 + version: c87af80f3cc5036b55b83d77171e156791085e2e +- name: gopkg.in/ldap.v2 + version: e9a325d64989e2844be629682cb085d2c58eef8d +devImports: [] diff --git a/glide.yaml b/glide.yaml new file mode 100644 index 00000000..905dcc9a --- /dev/null +++ b/glide.yaml @@ -0,0 +1,77 @@ +package: github.com/coreos/dex +import: +- package: github.com/PuerkitoBio/goquery + version: b4440419d81240f8451a505b2f806c853bc2befc +- package: github.com/andybalholm/cascadia + version: 6122e68c2642b7b75c538a63b15168c6c80fb757 +- package: github.com/coreos/go-oidc + version: 6039032c0b15517897116d333ead8edf38792437 + subpackages: + - http + - jose + - key + - oauth2 + - oidc +- package: github.com/coreos/pkg + version: fa94270d4bac0d8ae5dc6b71894e251aada93f74 + subpackages: + - capnslog + - flagutil + - health + - httputil + - timeutil +- package: github.com/go-gorp/gorp + version: c44345f52fc81d27c47e6b592dedaf8c28a972eb +- package: github.com/gorilla/handlers + version: 60c7bfde3e33c201519a200a4507a158cc03a17b +- package: github.com/inconshreveable/mousetrap + version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75 +- package: github.com/jonboulle/clockwork + version: 3f831b65b61282ba6bece21b91beea2edc4c887a +- package: github.com/julienschmidt/httprouter + version: 8c199fb6259ffc1af525cc3ad52ee60ba8359669 +- package: github.com/kylelemons/godebug + version: 808ac284003ce2b08ef590da08f95379e8a06936 + subpackages: + - diff + - pretty +- package: github.com/lib/pq + version: 7175accbed18058468c07811f76440d6e8d7cf19 +- package: github.com/mailgun/mailgun-go + version: 9578dc67692294bb7e2a6f4b15dd18c97af19440 +- package: github.com/mattn/go-sqlite3 + version: 2513631704612107a1c8b1803fb8e6b3dda2230e +- package: github.com/mbanzon/simplehttp + version: 04c542e7ac706a25820090f274ea6a4f39a63326 +- package: github.com/pborman/uuid + version: ca53cad383cad2479bbba7f7a1a05797ec1386e4 +- package: github.com/rubenv/sql-migrate + version: 53184e1edfb4f9655b0fa8dd2c23e7763f452bda +- package: github.com/spf13/cobra + version: b3f29e98e63a3618988a231fd02b45c1e6369d4f +- package: github.com/spf13/pflag + version: 7f60f83a2c81bc3c3c0d5297f61ddfa68da9d3b7 +- package: golang.org/x/crypto + version: 1fbbd62cfec66bd39d91e97749579579d4d3037e + subpackages: + - bcrypt + - blowfish +- package: golang.org/x/net + version: dfe268fd2bb5c793f4c083803609fce9806c6f80 + subpackages: + - html +- package: google.golang.org/api + version: d3edb0282bde692467788c50070a9211afe75cf3 + subpackages: + - google-api-go-generator + - googleapi +- package: gopkg.in/alexcesaro/quotedprintable.v3 + version: 2caba252f4dc53eaf6b553000885530023f54623 +- package: gopkg.in/asn1-ber.v1 + version: 4e86f4367175e39f69d9358a5f17b4dda270378d +- package: gopkg.in/gomail.v2 + version: b1e55520bf557d8a614f1e1f493ce892c1b5e97e +- package: gopkg.in/gorp.v1 + version: c87af80f3cc5036b55b83d77171e156791085e2e +- package: gopkg.in/ldap.v2 + version: e9a325d64989e2844be629682cb085d2c58eef8d From e0f8e8a8ee8373b3c72178c15da745087f0612cf Mon Sep 17 00:00:00 2001 From: Eric Chiang Date: Fri, 8 Apr 2016 11:56:29 -0700 Subject: [PATCH 2/2] vendor: revendor using glide --- .../PuerkitoBio/goquery/array_test.go | 180 + .../PuerkitoBio/goquery/bench_array_test.go | 112 + .../PuerkitoBio/goquery/bench_example_test.go | 42 + .../PuerkitoBio/goquery/bench_expand_test.go | 72 + .../PuerkitoBio/goquery/bench_filter_test.go | 212 + .../goquery/bench_iteration_test.go | 62 + .../goquery/bench_property_test.go | 47 + .../PuerkitoBio/goquery/bench_query_test.go | 97 + .../goquery/bench_traversal_test.go | 716 + .../PuerkitoBio/goquery/example_test.go | 32 + .../PuerkitoBio/goquery/expand_test.go | 68 + .../PuerkitoBio/goquery/filter_test.go | 191 + .../PuerkitoBio/goquery/iteration_test.go | 88 + .../PuerkitoBio/goquery/manipulation_test.go | 453 + .../PuerkitoBio/goquery/misc/git/pre-commit | 0 .../PuerkitoBio/goquery/property_test.go | 252 + .../PuerkitoBio/goquery/query_test.go | 96 + .../goquery/testdata/gotesting.html | 855 + .../PuerkitoBio/goquery/testdata/gowiki.html | 1214 ++ .../goquery/testdata/metalreview.html | 413 + .../PuerkitoBio/goquery/testdata/page.html | 102 + .../PuerkitoBio/goquery/testdata/page2.html | 24 + .../PuerkitoBio/goquery/testdata/page3.html | 24 + .../PuerkitoBio/goquery/traversal_test.go | 697 + .../PuerkitoBio/goquery/type_test.go | 192 + .../github.com/andybalholm/cascadia/LICENSE | 0 .../andybalholm/cascadia/benchmark_test.go | 53 + .../andybalholm/cascadia/parser_test.go | 86 + .../andybalholm/cascadia/selector_test.go | 559 + vendor/github.com/coreos/go-oidc/.gitignore | 2 + vendor/github.com/coreos/go-oidc/.travis.yml | 16 + .../github.com/coreos/go-oidc/CONTRIBUTING.md | 71 + vendor/github.com/coreos/go-oidc/DCO | 36 + vendor/github.com/coreos/go-oidc/MAINTAINERS | 3 + vendor/github.com/coreos/go-oidc/README.md | 15 + vendor/github.com/coreos/go-oidc/build | 9 + .../coreos/go-oidc/example/app/main.go | 162 + .../coreos/go-oidc/example/cli/main.go | 83 + .../coreos/go-oidc/http/http_test.go | 380 + .../coreos/go-oidc/http/url_test.go | 49 + .../coreos/go-oidc/jose/claims_test.go | 328 + .../coreos/go-oidc/jose/jwk_test.go | 64 + .../coreos/go-oidc/jose/jws_test.go | 74 + .../coreos/go-oidc/jose/jwt_test.go | 94 + .../coreos/go-oidc/jose/sig_hmac_test.go | 85 + .../github.com/coreos/go-oidc/key/key_test.go | 68 + .../coreos/go-oidc/key/manager_test.go | 225 + .../coreos/go-oidc/key/rotate_test.go | 311 + .../coreos/go-oidc/key/sync_test.go | 214 + .../coreos/go-oidc/oauth2/oauth2_test.go | 435 + .../coreos/go-oidc/oidc/client_race_test.go | 81 + .../coreos/go-oidc/oidc/client_test.go | 654 + .../coreos/go-oidc/oidc/identity_test.go | 113 + .../coreos/go-oidc/oidc/provider_test.go | 916 + .../coreos/go-oidc/oidc/transport_test.go | 167 + .../coreos/go-oidc/oidc/util_test.go | 110 + .../coreos/go-oidc/oidc/verification_test.go | 379 + vendor/github.com/coreos/go-oidc/test | 58 + vendor/github.com/coreos/pkg/.gitignore | 27 + vendor/github.com/coreos/pkg/CONTRIBUTING.md | 71 + vendor/github.com/coreos/pkg/DCO | 36 + vendor/github.com/coreos/pkg/MAINTAINERS | 1 + vendor/github.com/coreos/pkg/README.md | 3 + vendor/github.com/coreos/pkg/build | 3 + .../github.com/coreos/pkg/cryptoutil/aes.go | 94 + .../coreos/pkg/cryptoutil/aes_test.go | 93 + .../coreos/pkg/flagutil/env_test.go | 64 + .../coreos/pkg/flagutil/types_test.go | 57 + .../coreos/pkg/health/health_test.go | 198 + .../coreos/pkg/httputil/json_test.go | 56 + vendor/github.com/coreos/pkg/netutil/proxy.go | 55 + vendor/github.com/coreos/pkg/netutil/url.go | 17 + .../github.com/coreos/pkg/netutil/url_test.go | 86 + vendor/github.com/coreos/pkg/test | 56 + .../coreos/pkg/timeutil/backoff_test.go | 52 + vendor/github.com/coreos/pkg/yamlutil/yaml.go | 55 + .../coreos/pkg/yamlutil/yaml_test.go | 80 + vendor/github.com/go-gorp/gorp/gorp_test.go | 2340 +++ vendor/github.com/go-gorp/gorp/test_all.sh | 0 .../gorilla/handlers/canonical_test.go | 73 + .../gorilla/handlers/compress_test.go | 65 + .../gorilla/handlers/handlers_test.go | 305 + .../gorilla/handlers/proxy_headers_test.go | 100 + .../jonboulle/clockwork/clockwork_test.go | 120 + .../jonboulle/clockwork/example_test.go | 49 + .../julienschmidt/httprouter/path_test.go | 92 + .../julienschmidt/httprouter/router_test.go | 378 + .../julienschmidt/httprouter/tree_test.go | 611 + .../kylelemons/godebug/diff/diff_test.go | 120 + .../godebug/pretty/examples_test.go | 158 + .../kylelemons/godebug/pretty/public_test.go | 72 + .../kylelemons/godebug/pretty/reflect_test.go | 143 + .../godebug/pretty/structure_test.go | 262 + vendor/github.com/lib/pq/bench_test.go | 436 + vendor/github.com/lib/pq/conn_test.go | 1244 ++ vendor/github.com/lib/pq/conn_xact_test.go | 61 + vendor/github.com/lib/pq/copy_test.go | 324 + vendor/github.com/lib/pq/encode_test.go | 427 + .../github.com/lib/pq/hstore/hstore_test.go | 148 + vendor/github.com/lib/pq/notify_test.go | 507 + vendor/github.com/lib/pq/ssl_test.go | 245 + vendor/github.com/lib/pq/url_test.go | 54 + .../mailgun-go/acceptance/bounces_test.go | 119 + .../mailgun-go/acceptance/credentials_test.go | 53 + .../mailgun-go/acceptance/domains_test.go | 96 + .../acceptance/email_validation_test.go | 52 + .../mailgun-go/acceptance/events_test.go | 41 + .../acceptance/mailing_lists_test.go | 205 + .../mailgun-go/acceptance/messages_test.go | 329 + .../mailgun-go/acceptance/routes_test.go | 87 + .../acceptance/spam_complaints_test.go | 71 + .../mailgun-go/acceptance/stats_test.go | 40 + .../acceptance/unsubscribes_test.go | 71 + .../mailgun-go/acceptance/webhooks_test.go | 66 + .../mailgun/mailgun-go/examples_test.go | 117 + .../mailgun/mailgun-go/mailgun_test.go | 68 + .../go-sqlite3/_example/custom_func/main.go | 133 + .../mattn/go-sqlite3/_example/hook/hook.go | 71 + .../go-sqlite3/_example/mod_regexp/Makefile | 22 + .../_example/mod_regexp/extension.go | 43 + .../_example/mod_regexp/sqlite3_mod_regexp.c | 31 + .../go-sqlite3/_example/mod_vtable/Makefile | 24 + .../_example/mod_vtable/extension.go | 36 + .../go-sqlite3/_example/mod_vtable/picojson.h | 1040 + .../_example/mod_vtable/sqlite3_mod_vtable.cc | 238 + .../go-sqlite3/_example/simple/simple.go | 92 + .../mattn/go-sqlite3/callback_test.go | 97 + .../github.com/mattn/go-sqlite3/error_test.go | 242 + .../mattn/go-sqlite3/sqlite3_fts3_test.go | 127 + .../mattn/go-sqlite3/sqlite3_test.go | 1315 ++ .../mbanzon/simplehttp/helpers_test.go | 133 + .../mbanzon/simplehttp/payload_test.go | 38 + .../mbanzon/simplehttp/shorthand_test.go | 104 + .../mbanzon/simplehttp/simplehttp_test.go | 37 + vendor/github.com/pborman/uuid/dce.go | 0 vendor/github.com/pborman/uuid/doc.go | 0 vendor/github.com/pborman/uuid/json_test.go | 32 + vendor/github.com/pborman/uuid/node.go | 0 vendor/github.com/pborman/uuid/seq_test.go | 66 + vendor/github.com/pborman/uuid/time.go | 0 vendor/github.com/pborman/uuid/uuid.go | 0 vendor/github.com/pborman/uuid/uuid_test.go | 390 + .../rubenv/sql-migrate/bindata_test.go | 136 + .../rubenv/sql-migrate/init_test.go | 9 + .../rubenv/sql-migrate/migrate_test.go | 357 + .../rubenv/sql-migrate/sort_test.go | 34 + .../sql-migrate/sql-migrate/main_test.go | 1 + .../sql-migrate/sqlparse/sqlparse_test.go | 151 + .../test-integration/mysql-flag.sh | 0 .../sql-migrate/test-integration/mysql.sh | 0 .../sql-migrate/test-integration/postgres.sh | 0 .../sql-migrate/test-integration/sqlite.sh | 0 .../rubenv/sql-migrate/toapply_test.go | 101 + .../spf13/cobra/bash_completions_test.go | 95 + .../spf13/cobra/cobra/cmd/helpers_test.go | 40 + vendor/github.com/spf13/cobra/cobra_test.go | 1169 ++ vendor/github.com/spf13/cobra/command_test.go | 114 + vendor/github.com/spf13/cobra/doc/cmd_test.go | 145 + .../spf13/cobra/doc/man_docs_test.go | 93 + .../spf13/cobra/doc/man_examples_test.go | 35 + .../spf13/cobra/doc/md_docs_test.go | 84 + vendor/github.com/spf13/pflag/bool_test.go | 180 + vendor/github.com/spf13/pflag/count_test.go | 55 + vendor/github.com/spf13/pflag/example_test.go | 77 + vendor/github.com/spf13/pflag/export_test.go | 29 + vendor/github.com/spf13/pflag/flag_test.go | 913 + .../github.com/spf13/pflag/golangflag_test.go | 39 + .../github.com/spf13/pflag/int_slice_test.go | 162 + vendor/github.com/spf13/pflag/ip_test.go | 63 + vendor/github.com/spf13/pflag/ipnet_test.go | 70 + .../spf13/pflag/string_slice_test.go | 161 + vendor/github.com/spf13/pflag/verify/all.sh | 0 vendor/github.com/spf13/pflag/verify/gofmt.sh | 0 .../github.com/spf13/pflag/verify/golint.sh | 0 vendor/golang.org/x/crypto/.gitignore | 2 + vendor/golang.org/x/crypto/AUTHORS | 3 + vendor/golang.org/x/crypto/CONTRIBUTORS | 3 + vendor/golang.org/x/crypto/README | 3 + vendor/golang.org/x/crypto/bcrypt/bcrypt.go | 2 +- .../golang.org/x/crypto/bcrypt/bcrypt_test.go | 226 + .../x/crypto/blowfish/blowfish_test.go | 274 + vendor/golang.org/x/crypto/blowfish/cipher.go | 2 +- vendor/golang.org/x/crypto/bn256/bn256.go | 404 + .../golang.org/x/crypto/bn256/bn256_test.go | 304 + vendor/golang.org/x/crypto/bn256/constants.go | 44 + vendor/golang.org/x/crypto/bn256/curve.go | 278 + .../golang.org/x/crypto/bn256/example_test.go | 43 + vendor/golang.org/x/crypto/bn256/gfp12.go | 200 + vendor/golang.org/x/crypto/bn256/gfp2.go | 219 + vendor/golang.org/x/crypto/bn256/gfp6.go | 296 + vendor/golang.org/x/crypto/bn256/optate.go | 395 + vendor/golang.org/x/crypto/bn256/twist.go | 249 + vendor/golang.org/x/crypto/cast5/cast5.go | 526 + .../golang.org/x/crypto/cast5/cast5_test.go | 106 + .../x/crypto/curve25519/const_amd64.s | 20 + .../x/crypto/curve25519/cswap_amd64.s | 88 + .../x/crypto/curve25519/curve25519.go | 841 + .../x/crypto/curve25519/curve25519_test.go | 29 + vendor/golang.org/x/crypto/curve25519/doc.go | 23 + .../x/crypto/curve25519/freeze_amd64.s | 94 + .../x/crypto/curve25519/ladderstep_amd64.s | 1398 ++ .../x/crypto/curve25519/mont25519_amd64.go | 240 + .../x/crypto/curve25519/mul_amd64.s | 191 + .../x/crypto/curve25519/square_amd64.s | 153 + .../golang.org/x/crypto/hkdf/example_test.go | 61 + vendor/golang.org/x/crypto/hkdf/hkdf.go | 75 + vendor/golang.org/x/crypto/hkdf/hkdf_test.go | 370 + vendor/golang.org/x/crypto/md4/md4.go | 118 + vendor/golang.org/x/crypto/md4/md4_test.go | 71 + vendor/golang.org/x/crypto/md4/md4block.go | 89 + vendor/golang.org/x/crypto/nacl/box/box.go | 85 + .../golang.org/x/crypto/nacl/box/box_test.go | 78 + .../x/crypto/nacl/secretbox/secretbox.go | 149 + .../x/crypto/nacl/secretbox/secretbox_test.go | 91 + vendor/golang.org/x/crypto/ocsp/ocsp.go | 347 + vendor/golang.org/x/crypto/ocsp/ocsp_test.go | 274 + .../x/crypto/openpgp/armor/armor.go | 219 + .../x/crypto/openpgp/armor/armor_test.go | 95 + .../x/crypto/openpgp/armor/encode.go | 160 + .../x/crypto/openpgp/canonical_text.go | 59 + .../x/crypto/openpgp/canonical_text_test.go | 52 + .../x/crypto/openpgp/clearsign/clearsign.go | 366 + .../openpgp/clearsign/clearsign_test.go | 187 + .../x/crypto/openpgp/elgamal/elgamal.go | 122 + .../x/crypto/openpgp/elgamal/elgamal_test.go | 49 + .../x/crypto/openpgp/errors/errors.go | 72 + vendor/golang.org/x/crypto/openpgp/keys.go | 624 + .../golang.org/x/crypto/openpgp/keys_test.go | 216 + .../x/crypto/openpgp/packet/compressed.go | 123 + .../crypto/openpgp/packet/compressed_test.go | 41 + .../x/crypto/openpgp/packet/config.go | 88 + .../x/crypto/openpgp/packet/encrypted_key.go | 168 + .../openpgp/packet/encrypted_key_test.go | 125 + .../x/crypto/openpgp/packet/literal.go | 89 + .../x/crypto/openpgp/packet/ocfb.go | 143 + .../x/crypto/openpgp/packet/ocfb_test.go | 46 + .../openpgp/packet/one_pass_signature.go | 73 + .../x/crypto/openpgp/packet/opaque.go | 161 + .../x/crypto/openpgp/packet/opaque_test.go | 67 + .../x/crypto/openpgp/packet/packet.go | 538 + .../x/crypto/openpgp/packet/packet_test.go | 255 + .../x/crypto/openpgp/packet/private_key.go | 310 + .../crypto/openpgp/packet/private_key_test.go | 64 + .../x/crypto/openpgp/packet/public_key.go | 687 + .../crypto/openpgp/packet/public_key_test.go | 202 + .../x/crypto/openpgp/packet/public_key_v3.go | 275 + .../openpgp/packet/public_key_v3_test.go | 82 + .../x/crypto/openpgp/packet/reader.go | 62 + .../x/crypto/openpgp/packet/signature.go | 663 + .../x/crypto/openpgp/packet/signature_test.go | 42 + .../x/crypto/openpgp/packet/signature_v3.go | 146 + .../openpgp/packet/signature_v3_test.go | 92 + .../openpgp/packet/symmetric_key_encrypted.go | 164 + .../packet/symmetric_key_encrypted_test.go | 102 + .../openpgp/packet/symmetrically_encrypted.go | 290 + .../packet/symmetrically_encrypted_test.go | 123 + .../x/crypto/openpgp/packet/userattribute.go | 91 + .../openpgp/packet/userattribute_test.go | 109 + .../x/crypto/openpgp/packet/userid.go | 160 + .../x/crypto/openpgp/packet/userid_test.go | 87 + vendor/golang.org/x/crypto/openpgp/read.go | 423 + .../golang.org/x/crypto/openpgp/read_test.go | 416 + vendor/golang.org/x/crypto/openpgp/s2k/s2k.go | 273 + .../x/crypto/openpgp/s2k/s2k_test.go | 137 + vendor/golang.org/x/crypto/openpgp/write.go | 374 + .../golang.org/x/crypto/openpgp/write_test.go | 234 + .../x/crypto/otr/libotr_test_helper.c | 171 + vendor/golang.org/x/crypto/otr/otr.go | 1400 ++ vendor/golang.org/x/crypto/otr/otr_test.go | 368 + vendor/golang.org/x/crypto/otr/smp.go | 572 + vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go | 77 + .../golang.org/x/crypto/pbkdf2/pbkdf2_test.go | 157 + .../x/crypto/poly1305/const_amd64.s | 45 + .../golang.org/x/crypto/poly1305/poly1305.go | 32 + .../x/crypto/poly1305/poly1305_amd64.s | 497 + .../x/crypto/poly1305/poly1305_test.go | 74 + .../golang.org/x/crypto/poly1305/sum_amd64.go | 24 + .../golang.org/x/crypto/poly1305/sum_ref.go | 1531 ++ .../x/crypto/ripemd160/ripemd160.go | 120 + .../x/crypto/ripemd160/ripemd160_test.go | 64 + .../x/crypto/ripemd160/ripemd160block.go | 161 + .../x/crypto/salsa20/salsa/hsalsa20.go | 144 + .../x/crypto/salsa20/salsa/salsa2020_amd64.s | 902 + .../x/crypto/salsa20/salsa/salsa208.go | 199 + .../x/crypto/salsa20/salsa/salsa20_amd64.go | 23 + .../x/crypto/salsa20/salsa/salsa20_ref.go | 234 + .../x/crypto/salsa20/salsa/salsa_test.go | 35 + vendor/golang.org/x/crypto/salsa20/salsa20.go | 54 + .../x/crypto/salsa20/salsa20_test.go | 139 + vendor/golang.org/x/crypto/scrypt/scrypt.go | 243 + .../golang.org/x/crypto/scrypt/scrypt_test.go | 160 + vendor/golang.org/x/crypto/sha3/doc.go | 68 + vendor/golang.org/x/crypto/sha3/hashes.go | 65 + .../x/crypto/sha3/keccakKats.json.deflate | Bin 0 -> 521342 bytes vendor/golang.org/x/crypto/sha3/keccakf.go | 410 + vendor/golang.org/x/crypto/sha3/register.go | 18 + vendor/golang.org/x/crypto/sha3/sha3.go | 226 + vendor/golang.org/x/crypto/sha3/sha3_test.go | 249 + vendor/golang.org/x/crypto/sha3/shake.go | 60 + .../golang.org/x/crypto/ssh/agent/client.go | 563 + .../x/crypto/ssh/agent/client_test.go | 278 + .../golang.org/x/crypto/ssh/agent/forward.go | 103 + .../golang.org/x/crypto/ssh/agent/keyring.go | 183 + .../golang.org/x/crypto/ssh/agent/server.go | 209 + .../x/crypto/ssh/agent/server_test.go | 77 + .../x/crypto/ssh/agent/testdata_test.go | 64 + .../golang.org/x/crypto/ssh/benchmark_test.go | 122 + vendor/golang.org/x/crypto/ssh/buffer.go | 98 + vendor/golang.org/x/crypto/ssh/buffer_test.go | 87 + vendor/golang.org/x/crypto/ssh/certs.go | 474 + vendor/golang.org/x/crypto/ssh/certs_test.go | 156 + vendor/golang.org/x/crypto/ssh/channel.go | 631 + vendor/golang.org/x/crypto/ssh/cipher.go | 344 + vendor/golang.org/x/crypto/ssh/cipher_test.go | 59 + vendor/golang.org/x/crypto/ssh/client.go | 202 + vendor/golang.org/x/crypto/ssh/client_auth.go | 441 + .../x/crypto/ssh/client_auth_test.go | 393 + vendor/golang.org/x/crypto/ssh/client_test.go | 39 + vendor/golang.org/x/crypto/ssh/common.go | 357 + vendor/golang.org/x/crypto/ssh/connection.go | 144 + vendor/golang.org/x/crypto/ssh/doc.go | 18 + .../golang.org/x/crypto/ssh/example_test.go | 210 + vendor/golang.org/x/crypto/ssh/handshake.go | 393 + .../golang.org/x/crypto/ssh/handshake_test.go | 311 + vendor/golang.org/x/crypto/ssh/kex.go | 386 + vendor/golang.org/x/crypto/ssh/kex_test.go | 48 + vendor/golang.org/x/crypto/ssh/keys.go | 628 + vendor/golang.org/x/crypto/ssh/keys_test.go | 306 + vendor/golang.org/x/crypto/ssh/mac.go | 53 + .../golang.org/x/crypto/ssh/mempipe_test.go | 110 + vendor/golang.org/x/crypto/ssh/messages.go | 724 + .../golang.org/x/crypto/ssh/messages_test.go | 244 + vendor/golang.org/x/crypto/ssh/mux.go | 356 + vendor/golang.org/x/crypto/ssh/mux_test.go | 525 + vendor/golang.org/x/crypto/ssh/server.go | 477 + vendor/golang.org/x/crypto/ssh/session.go | 605 + .../golang.org/x/crypto/ssh/session_test.go | 628 + vendor/golang.org/x/crypto/ssh/tcpip.go | 404 + vendor/golang.org/x/crypto/ssh/tcpip_test.go | 20 + .../x/crypto/ssh/terminal/terminal.go | 888 + .../x/crypto/ssh/terminal/terminal_test.go | 243 + .../golang.org/x/crypto/ssh/terminal/util.go | 128 + .../x/crypto/ssh/terminal/util_bsd.go | 12 + .../x/crypto/ssh/terminal/util_linux.go | 11 + .../x/crypto/ssh/terminal/util_windows.go | 174 + .../x/crypto/ssh/test/agent_unix_test.go | 50 + .../golang.org/x/crypto/ssh/test/cert_test.go | 47 + vendor/golang.org/x/crypto/ssh/test/doc.go | 7 + .../x/crypto/ssh/test/forward_unix_test.go | 160 + .../x/crypto/ssh/test/session_test.go | 317 + .../x/crypto/ssh/test/tcpip_test.go | 46 + .../x/crypto/ssh/test/test_unix_test.go | 261 + .../x/crypto/ssh/test/testdata_test.go | 64 + .../golang.org/x/crypto/ssh/testdata/doc.go | 8 + .../golang.org/x/crypto/ssh/testdata/keys.go | 43 + .../golang.org/x/crypto/ssh/testdata_test.go | 63 + vendor/golang.org/x/crypto/ssh/transport.go | 327 + .../golang.org/x/crypto/ssh/transport_test.go | 109 + vendor/golang.org/x/crypto/twofish/twofish.go | 342 + .../x/crypto/twofish/twofish_test.go | 129 + vendor/golang.org/x/crypto/xtea/block.go | 66 + vendor/golang.org/x/crypto/xtea/cipher.go | 82 + vendor/golang.org/x/crypto/xtea/xtea_test.go | 229 + vendor/golang.org/x/crypto/xts/xts.go | 138 + vendor/golang.org/x/crypto/xts/xts_test.go | 85 + vendor/golang.org/x/net/.gitattributes | 10 + vendor/golang.org/x/net/.gitignore | 2 + vendor/golang.org/x/net/AUTHORS | 3 + vendor/golang.org/x/net/CONTRIBUTING.md | 31 + vendor/golang.org/x/net/CONTRIBUTORS | 3 + vendor/golang.org/x/net/README | 3 + vendor/golang.org/x/net/codereview.cfg | 1 + vendor/golang.org/x/net/context/context.go | 447 + .../golang.org/x/net/context/context_test.go | 575 + .../x/net/context/withtimeout_test.go | 26 + vendor/golang.org/x/net/dict/dict.go | 210 + vendor/golang.org/x/net/html/atom/atom.go | 2 +- .../golang.org/x/net/html/atom/atom_test.go | 109 + .../golang.org/x/net/html/atom/table_test.go | 351 + .../golang.org/x/net/html/charset/charset.go | 2 +- .../x/net/html/charset/charset_test.go | 236 + .../html/charset/testdata/HTTP-charset.html | 48 + .../charset/testdata/HTTP-vs-UTF-8-BOM.html | 48 + .../testdata/HTTP-vs-meta-charset.html | 49 + .../testdata/HTTP-vs-meta-content.html | 49 + .../testdata/No-encoding-declaration.html | 47 + .../x/net/html/charset/testdata/README | 9 + .../html/charset/testdata/UTF-16BE-BOM.html | Bin 0 -> 2670 bytes .../html/charset/testdata/UTF-16LE-BOM.html | Bin 0 -> 2682 bytes .../testdata/UTF-8-BOM-vs-meta-charset.html | 49 + .../testdata/UTF-8-BOM-vs-meta-content.html | 48 + .../testdata/meta-charset-attribute.html | 48 + .../testdata/meta-content-attribute.html | 48 + vendor/golang.org/x/net/html/doc.go | 2 +- vendor/golang.org/x/net/html/entity_test.go | 29 + vendor/golang.org/x/net/html/escape_test.go | 97 + vendor/golang.org/x/net/html/example_test.go | 40 + vendor/golang.org/x/net/html/node_test.go | 146 + vendor/golang.org/x/net/html/parse_test.go | 388 + vendor/golang.org/x/net/html/render_test.go | 156 + .../golang.org/x/net/html/testdata/go1.html | 2237 ++ .../x/net/html/testdata/webkit/README | 28 + .../x/net/html/testdata/webkit/adoption01.dat | 194 + .../x/net/html/testdata/webkit/adoption02.dat | 31 + .../x/net/html/testdata/webkit/comments01.dat | 135 + .../x/net/html/testdata/webkit/doctype01.dat | 370 + .../x/net/html/testdata/webkit/entities01.dat | 603 + .../x/net/html/testdata/webkit/entities02.dat | 249 + .../html/testdata/webkit/html5test-com.dat | 246 + .../x/net/html/testdata/webkit/inbody01.dat | 43 + .../x/net/html/testdata/webkit/isindex.dat | 40 + ...pending-spec-changes-plain-text-unsafe.dat | Bin 0 -> 115 bytes .../testdata/webkit/pending-spec-changes.dat | 52 + .../testdata/webkit/plain-text-unsafe.dat | Bin 0 -> 4166 bytes .../net/html/testdata/webkit/scriptdata01.dat | 308 + .../testdata/webkit/scripted/adoption01.dat | 15 + .../testdata/webkit/scripted/webkit01.dat | 28 + .../x/net/html/testdata/webkit/tables01.dat | 212 + .../x/net/html/testdata/webkit/tests1.dat | 1952 ++ .../x/net/html/testdata/webkit/tests10.dat | 799 + .../x/net/html/testdata/webkit/tests11.dat | 482 + .../x/net/html/testdata/webkit/tests12.dat | 62 + .../x/net/html/testdata/webkit/tests14.dat | 74 + .../x/net/html/testdata/webkit/tests15.dat | 208 + .../x/net/html/testdata/webkit/tests16.dat | 2299 +++ .../x/net/html/testdata/webkit/tests17.dat | 153 + .../x/net/html/testdata/webkit/tests18.dat | 269 + .../x/net/html/testdata/webkit/tests19.dat | 1237 ++ .../x/net/html/testdata/webkit/tests2.dat | 763 + .../x/net/html/testdata/webkit/tests20.dat | 455 + .../x/net/html/testdata/webkit/tests21.dat | 221 + .../x/net/html/testdata/webkit/tests22.dat | 157 + .../x/net/html/testdata/webkit/tests23.dat | 155 + .../x/net/html/testdata/webkit/tests24.dat | 79 + .../x/net/html/testdata/webkit/tests25.dat | 219 + .../x/net/html/testdata/webkit/tests26.dat | 313 + .../x/net/html/testdata/webkit/tests3.dat | 305 + .../x/net/html/testdata/webkit/tests4.dat | 59 + .../x/net/html/testdata/webkit/tests5.dat | 191 + .../x/net/html/testdata/webkit/tests6.dat | 663 + .../x/net/html/testdata/webkit/tests7.dat | 390 + .../x/net/html/testdata/webkit/tests8.dat | 148 + .../x/net/html/testdata/webkit/tests9.dat | 457 + .../testdata/webkit/tests_innerHTML_1.dat | 741 + .../x/net/html/testdata/webkit/tricky01.dat | 261 + .../x/net/html/testdata/webkit/webkit01.dat | 610 + .../x/net/html/testdata/webkit/webkit02.dat | 159 + vendor/golang.org/x/net/html/token_test.go | 748 + vendor/golang.org/x/net/icmp/dstunreach.go | 41 + vendor/golang.org/x/net/icmp/echo.go | 43 + vendor/golang.org/x/net/icmp/endpoint.go | 118 + vendor/golang.org/x/net/icmp/example_test.go | 54 + vendor/golang.org/x/net/icmp/extension.go | 87 + .../golang.org/x/net/icmp/extension_test.go | 259 + vendor/golang.org/x/net/icmp/helper_posix.go | 75 + vendor/golang.org/x/net/icmp/interface.go | 235 + vendor/golang.org/x/net/icmp/ipv4.go | 61 + vendor/golang.org/x/net/icmp/ipv4_test.go | 71 + vendor/golang.org/x/net/icmp/ipv6.go | 23 + vendor/golang.org/x/net/icmp/listen_posix.go | 98 + vendor/golang.org/x/net/icmp/listen_stub.go | 33 + vendor/golang.org/x/net/icmp/message.go | 149 + vendor/golang.org/x/net/icmp/message_test.go | 134 + vendor/golang.org/x/net/icmp/messagebody.go | 41 + vendor/golang.org/x/net/icmp/mpls.go | 75 + vendor/golang.org/x/net/icmp/multipart.go | 109 + .../golang.org/x/net/icmp/multipart_test.go | 315 + vendor/golang.org/x/net/icmp/packettoobig.go | 41 + vendor/golang.org/x/net/icmp/paramprob.go | 60 + vendor/golang.org/x/net/icmp/ping_test.go | 166 + vendor/golang.org/x/net/icmp/sys_freebsd.go | 11 + vendor/golang.org/x/net/icmp/timeexceeded.go | 39 + vendor/golang.org/x/net/idna/idna.go | 68 + vendor/golang.org/x/net/idna/idna_test.go | 43 + vendor/golang.org/x/net/idna/punycode.go | 200 + vendor/golang.org/x/net/idna/punycode_test.go | 198 + .../golang.org/x/net/internal/iana/const.go | 182 + vendor/golang.org/x/net/internal/iana/gen.go | 293 + .../x/net/internal/nettest/error_posix.go | 31 + .../x/net/internal/nettest/error_stub.go | 11 + .../x/net/internal/nettest/interface.go | 94 + .../x/net/internal/nettest/stack.go | 36 + .../x/net/internal/nettest/stack_stub.go | 18 + .../x/net/internal/nettest/stack_unix.go | 22 + .../x/net/internal/nettest/stack_windows.go | 32 + .../x/net/internal/timeseries/timeseries.go | 525 + .../internal/timeseries/timeseries_test.go | 170 + vendor/golang.org/x/net/ipv4/control.go | 70 + vendor/golang.org/x/net/ipv4/control_bsd.go | 40 + .../golang.org/x/net/ipv4/control_pktinfo.go | 37 + vendor/golang.org/x/net/ipv4/control_stub.go | 23 + vendor/golang.org/x/net/ipv4/control_unix.go | 164 + .../golang.org/x/net/ipv4/control_windows.go | 27 + vendor/golang.org/x/net/ipv4/defs_darwin.go | 77 + .../golang.org/x/net/ipv4/defs_dragonfly.go | 38 + vendor/golang.org/x/net/ipv4/defs_freebsd.go | 75 + vendor/golang.org/x/net/ipv4/defs_linux.go | 111 + vendor/golang.org/x/net/ipv4/defs_netbsd.go | 37 + vendor/golang.org/x/net/ipv4/defs_openbsd.go | 37 + vendor/golang.org/x/net/ipv4/defs_solaris.go | 57 + .../golang.org/x/net/ipv4/dgramopt_posix.go | 251 + vendor/golang.org/x/net/ipv4/dgramopt_stub.go | 106 + vendor/golang.org/x/net/ipv4/doc.go | 242 + vendor/golang.org/x/net/ipv4/endpoint.go | 187 + vendor/golang.org/x/net/ipv4/example_test.go | 223 + vendor/golang.org/x/net/ipv4/gen.go | 208 + .../golang.org/x/net/ipv4/genericopt_posix.go | 59 + .../golang.org/x/net/ipv4/genericopt_stub.go | 29 + vendor/golang.org/x/net/ipv4/header.go | 149 + vendor/golang.org/x/net/ipv4/header_test.go | 114 + vendor/golang.org/x/net/ipv4/helper.go | 37 + vendor/golang.org/x/net/ipv4/helper_stub.go | 23 + vendor/golang.org/x/net/ipv4/helper_unix.go | 50 + .../golang.org/x/net/ipv4/helper_windows.go | 49 + vendor/golang.org/x/net/ipv4/iana.go | 34 + vendor/golang.org/x/net/ipv4/icmp.go | 57 + vendor/golang.org/x/net/ipv4/icmp_linux.go | 25 + vendor/golang.org/x/net/ipv4/icmp_stub.go | 25 + vendor/golang.org/x/net/ipv4/icmp_test.go | 95 + .../x/net/ipv4/mocktransponder_test.go | 21 + .../golang.org/x/net/ipv4/multicast_test.go | 334 + .../x/net/ipv4/multicastlistener_test.go | 249 + .../x/net/ipv4/multicastsockopt_test.go | 195 + vendor/golang.org/x/net/ipv4/packet.go | 97 + vendor/golang.org/x/net/ipv4/payload.go | 15 + vendor/golang.org/x/net/ipv4/payload_cmsg.go | 81 + .../golang.org/x/net/ipv4/payload_nocmsg.go | 42 + .../golang.org/x/net/ipv4/readwrite_test.go | 170 + vendor/golang.org/x/net/ipv4/sockopt.go | 46 + .../golang.org/x/net/ipv4/sockopt_asmreq.go | 83 + .../x/net/ipv4/sockopt_asmreq_stub.go | 21 + .../x/net/ipv4/sockopt_asmreq_unix.go | 46 + .../x/net/ipv4/sockopt_asmreq_windows.go | 45 + .../x/net/ipv4/sockopt_asmreqn_stub.go | 17 + .../x/net/ipv4/sockopt_asmreqn_unix.go | 42 + .../x/net/ipv4/sockopt_ssmreq_stub.go | 17 + .../x/net/ipv4/sockopt_ssmreq_unix.go | 33 + vendor/golang.org/x/net/ipv4/sockopt_stub.go | 11 + vendor/golang.org/x/net/ipv4/sockopt_unix.go | 122 + .../golang.org/x/net/ipv4/sockopt_windows.go | 68 + vendor/golang.org/x/net/ipv4/sys_bsd.go | 36 + vendor/golang.org/x/net/ipv4/sys_darwin.go | 98 + vendor/golang.org/x/net/ipv4/sys_freebsd.go | 64 + vendor/golang.org/x/net/ipv4/sys_linux.go | 57 + vendor/golang.org/x/net/ipv4/sys_openbsd.go | 34 + vendor/golang.org/x/net/ipv4/sys_stub.go | 15 + vendor/golang.org/x/net/ipv4/sys_windows.go | 61 + .../x/net/ipv4/syscall_linux_386.go | 31 + vendor/golang.org/x/net/ipv4/syscall_unix.go | 26 + .../golang.org/x/net/ipv4/thunk_linux_386.s | 8 + vendor/golang.org/x/net/ipv4/unicast_test.go | 250 + .../x/net/ipv4/unicastsockopt_test.go | 139 + vendor/golang.org/x/net/ipv4/zsys_darwin.go | 99 + .../golang.org/x/net/ipv4/zsys_dragonfly.go | 33 + .../golang.org/x/net/ipv4/zsys_freebsd_386.go | 93 + .../x/net/ipv4/zsys_freebsd_amd64.go | 95 + .../golang.org/x/net/ipv4/zsys_freebsd_arm.go | 93 + .../golang.org/x/net/ipv4/zsys_linux_386.go | 130 + .../golang.org/x/net/ipv4/zsys_linux_amd64.go | 132 + .../golang.org/x/net/ipv4/zsys_linux_arm.go | 130 + .../golang.org/x/net/ipv4/zsys_linux_arm64.go | 134 + .../golang.org/x/net/ipv4/zsys_linux_ppc64.go | 134 + .../x/net/ipv4/zsys_linux_ppc64le.go | 134 + vendor/golang.org/x/net/ipv4/zsys_netbsd.go | 30 + vendor/golang.org/x/net/ipv4/zsys_openbsd.go | 30 + vendor/golang.org/x/net/ipv4/zsys_solaris.go | 60 + vendor/golang.org/x/net/ipv6/control.go | 92 + .../x/net/ipv6/control_rfc2292_unix.go | 56 + .../x/net/ipv6/control_rfc3542_unix.go | 103 + vendor/golang.org/x/net/ipv6/control_stub.go | 23 + vendor/golang.org/x/net/ipv6/control_unix.go | 166 + .../golang.org/x/net/ipv6/control_windows.go | 27 + vendor/golang.org/x/net/ipv6/defs_darwin.go | 112 + .../golang.org/x/net/ipv6/defs_dragonfly.go | 84 + vendor/golang.org/x/net/ipv6/defs_freebsd.go | 105 + vendor/golang.org/x/net/ipv6/defs_linux.go | 136 + vendor/golang.org/x/net/ipv6/defs_netbsd.go | 80 + vendor/golang.org/x/net/ipv6/defs_openbsd.go | 89 + vendor/golang.org/x/net/ipv6/defs_solaris.go | 96 + .../golang.org/x/net/ipv6/dgramopt_posix.go | 288 + vendor/golang.org/x/net/ipv6/dgramopt_stub.go | 119 + vendor/golang.org/x/net/ipv6/doc.go | 240 + vendor/golang.org/x/net/ipv6/endpoint.go | 123 + vendor/golang.org/x/net/ipv6/example_test.go | 215 + vendor/golang.org/x/net/ipv6/gen.go | 208 + .../golang.org/x/net/ipv6/genericopt_posix.go | 60 + .../golang.org/x/net/ipv6/genericopt_stub.go | 30 + vendor/golang.org/x/net/ipv6/header.go | 55 + vendor/golang.org/x/net/ipv6/header_test.go | 50 + vendor/golang.org/x/net/ipv6/helper.go | 33 + vendor/golang.org/x/net/ipv6/helper_stub.go | 19 + vendor/golang.org/x/net/ipv6/helper_unix.go | 46 + .../golang.org/x/net/ipv6/helper_windows.go | 45 + vendor/golang.org/x/net/ipv6/iana.go | 80 + vendor/golang.org/x/net/ipv6/icmp.go | 57 + vendor/golang.org/x/net/ipv6/icmp_bsd.go | 29 + vendor/golang.org/x/net/ipv6/icmp_linux.go | 27 + vendor/golang.org/x/net/ipv6/icmp_solaris.go | 24 + vendor/golang.org/x/net/ipv6/icmp_stub.go | 23 + vendor/golang.org/x/net/ipv6/icmp_test.go | 96 + vendor/golang.org/x/net/ipv6/icmp_windows.go | 26 + .../x/net/ipv6/mocktransponder_test.go | 32 + .../golang.org/x/net/ipv6/multicast_test.go | 263 + .../x/net/ipv6/multicastlistener_test.go | 246 + .../x/net/ipv6/multicastsockopt_test.go | 157 + vendor/golang.org/x/net/ipv6/payload.go | 15 + vendor/golang.org/x/net/ipv6/payload_cmsg.go | 70 + .../golang.org/x/net/ipv6/payload_nocmsg.go | 41 + .../golang.org/x/net/ipv6/readwrite_test.go | 185 + vendor/golang.org/x/net/ipv6/sockopt.go | 46 + .../x/net/ipv6/sockopt_asmreq_unix.go | 22 + .../x/net/ipv6/sockopt_asmreq_windows.go | 21 + .../x/net/ipv6/sockopt_ssmreq_stub.go | 17 + .../x/net/ipv6/sockopt_ssmreq_unix.go | 31 + vendor/golang.org/x/net/ipv6/sockopt_stub.go | 13 + vendor/golang.org/x/net/ipv6/sockopt_test.go | 133 + vendor/golang.org/x/net/ipv6/sockopt_unix.go | 122 + .../golang.org/x/net/ipv6/sockopt_windows.go | 86 + vendor/golang.org/x/net/ipv6/sys_bsd.go | 58 + vendor/golang.org/x/net/ipv6/sys_darwin.go | 135 + vendor/golang.org/x/net/ipv6/sys_freebsd.go | 79 + vendor/golang.org/x/net/ipv6/sys_linux.go | 74 + vendor/golang.org/x/net/ipv6/sys_stub.go | 15 + vendor/golang.org/x/net/ipv6/sys_windows.go | 63 + .../x/net/ipv6/syscall_linux_386.go | 31 + vendor/golang.org/x/net/ipv6/syscall_unix.go | 26 + .../golang.org/x/net/ipv6/thunk_linux_386.s | 8 + vendor/golang.org/x/net/ipv6/unicast_test.go | 185 + .../x/net/ipv6/unicastsockopt_test.go | 111 + vendor/golang.org/x/net/ipv6/zsys_darwin.go | 131 + .../golang.org/x/net/ipv6/zsys_dragonfly.go | 90 + .../golang.org/x/net/ipv6/zsys_freebsd_386.go | 122 + .../x/net/ipv6/zsys_freebsd_amd64.go | 124 + .../golang.org/x/net/ipv6/zsys_freebsd_arm.go | 122 + .../golang.org/x/net/ipv6/zsys_linux_386.go | 152 + .../golang.org/x/net/ipv6/zsys_linux_amd64.go | 154 + .../golang.org/x/net/ipv6/zsys_linux_arm.go | 152 + .../golang.org/x/net/ipv6/zsys_linux_arm64.go | 156 + .../golang.org/x/net/ipv6/zsys_linux_ppc64.go | 156 + .../x/net/ipv6/zsys_linux_ppc64le.go | 156 + vendor/golang.org/x/net/ipv6/zsys_netbsd.go | 84 + vendor/golang.org/x/net/ipv6/zsys_openbsd.go | 93 + vendor/golang.org/x/net/ipv6/zsys_solaris.go | 105 + vendor/golang.org/x/net/netutil/listen.go | 48 + .../golang.org/x/net/netutil/listen_test.go | 103 + vendor/golang.org/x/net/proxy/direct.go | 18 + vendor/golang.org/x/net/proxy/per_host.go | 140 + .../golang.org/x/net/proxy/per_host_test.go | 55 + vendor/golang.org/x/net/proxy/proxy.go | 94 + vendor/golang.org/x/net/proxy/proxy_test.go | 142 + vendor/golang.org/x/net/proxy/socks5.go | 210 + vendor/golang.org/x/net/publicsuffix/gen.go | 608 + vendor/golang.org/x/net/publicsuffix/list.go | 133 + .../x/net/publicsuffix/list_test.go | 416 + vendor/golang.org/x/net/publicsuffix/table.go | 7938 ++++++++ .../x/net/publicsuffix/table_test.go | 14202 +++++++++++++ vendor/golang.org/x/net/trace/histogram.go | 356 + .../golang.org/x/net/trace/histogram_test.go | 325 + vendor/golang.org/x/net/trace/trace.go | 987 + vendor/golang.org/x/net/trace/trace_test.go | 32 + vendor/golang.org/x/net/webdav/file.go | 794 + vendor/golang.org/x/net/webdav/file_test.go | 1158 ++ vendor/golang.org/x/net/webdav/if.go | 173 + vendor/golang.org/x/net/webdav/if_test.go | 322 + .../x/net/webdav/litmus_test_server.go | 94 + vendor/golang.org/x/net/webdav/lock.go | 445 + vendor/golang.org/x/net/webdav/lock_test.go | 731 + vendor/golang.org/x/net/webdav/prop.go | 384 + vendor/golang.org/x/net/webdav/prop_test.go | 624 + vendor/golang.org/x/net/webdav/webdav.go | 674 + vendor/golang.org/x/net/webdav/webdav_test.go | 161 + vendor/golang.org/x/net/webdav/xml.go | 435 + vendor/golang.org/x/net/webdav/xml_test.go | 812 + vendor/golang.org/x/net/websocket/client.go | 113 + .../x/net/websocket/exampledial_test.go | 31 + .../x/net/websocket/examplehandler_test.go | 26 + vendor/golang.org/x/net/websocket/hybi.go | 564 + .../golang.org/x/net/websocket/hybi_test.go | 590 + vendor/golang.org/x/net/websocket/server.go | 114 + .../golang.org/x/net/websocket/websocket.go | 412 + .../x/net/websocket/websocket_test.go | 452 + vendor/google.golang.org/api/.hgignore | 11 + vendor/google.golang.org/api/.hgtags | 1 + vendor/google.golang.org/api/AUTHORS | 10 + vendor/google.golang.org/api/CONTRIBUTING.md | 22 + vendor/google.golang.org/api/CONTRIBUTORS | 46 + vendor/google.golang.org/api/Makefile | 9 + vendor/google.golang.org/api/NOTES | 13 + vendor/google.golang.org/api/README.md | 33 + vendor/google.golang.org/api/TODO | 2 + .../v1.1/adexchangebuyer-api.json | 512 + .../v1.1/adexchangebuyer-gen.go | 825 + .../v1.2/adexchangebuyer-api.json | 550 + .../v1.2/adexchangebuyer-gen.go | 848 + .../v1.3/adexchangebuyer-api.json | 1371 ++ .../v1.3/adexchangebuyer-gen.go | 2188 ++ .../v1/adexchangebuyer-api.json | 515 + .../adexchangebuyer/v1/adexchangebuyer-gen.go | 813 + .../v1.1/adexchangeseller-api.json | 1241 ++ .../v1.1/adexchangeseller-gen.go | 2364 +++ .../v1/adexchangeseller-api.json | 918 + .../v1/adexchangeseller-gen.go | 1738 ++ .../v2.0/adexchangeseller-api.json | 1164 ++ .../v2.0/adexchangeseller-gen.go | 2066 ++ .../api/admin/directory_v1/admin-api.json | 4104 ++++ .../api/admin/directory_v1/admin-gen.go | 7979 ++++++++ .../admin/email_migration_v2/admin-api.json | 173 + .../api/admin/email_migration_v2/admin-gen.go | 210 + .../api/admin/reports_v1/admin-api.json | 744 + .../api/admin/reports_v1/admin-gen.go | 1146 ++ .../api/adsense/v1.2/adsense-api.json | 1949 ++ .../api/adsense/v1.2/adsense-gen.go | 4111 ++++ .../api/adsense/v1.3/adsense-api.json | 2250 ++ .../api/adsense/v1.3/adsense-gen.go | 4773 +++++ .../api/adsense/v1.4/adsense-api.json | 2407 +++ .../api/adsense/v1.4/adsense-gen.go | 5131 +++++ .../api/adsensehost/v4.1/adsensehost-api.json | 1569 ++ .../api/adsensehost/v4.1/adsensehost-gen.go | 3285 +++ .../api/analytics/v2.4/analytics-api.json | 366 + .../api/analytics/v2.4/analytics-gen.go | 872 + .../api/analytics/v3/analytics-api.json | 6385 ++++++ .../api/analytics/v3/analytics-gen.go | 10738 ++++++++++ .../v1.1/androidpublisher-api.json | 256 + .../v1.1/androidpublisher-gen.go | 410 + .../v1/androidpublisher-api.json | 184 + .../v1/androidpublisher-gen.go | 276 + .../v2/androidpublisher-api.json | 2810 +++ .../v2/androidpublisher-gen.go | 5778 ++++++ .../api/appsactivity/v1/appsactivity-api.json | 484 + .../api/appsactivity/v1/appsactivity-gen.go | 413 + .../api/appstate/v1/appstate-api.json | 307 + .../api/appstate/v1/appstate-gen.go | 566 + .../api/audit/v1/audit-api.json | 288 + .../api/audit/v1/audit-gen.go | 379 + .../autoscaler/v1beta2/autoscaler-api.json | 891 + .../api/autoscaler/v1beta2/autoscaler-gen.go | 1429 ++ .../api/bigquery/v2/bigquery-api.json | 2082 ++ .../api/bigquery/v2/bigquery-gen.go | 3295 +++ .../api/blogger/v2/blogger-api.json | 923 + .../api/blogger/v2/blogger-gen.go | 1355 ++ .../api/blogger/v3/blogger-api.json | 2463 +++ .../api/blogger/v3/blogger-gen.go | 4877 +++++ .../api/books/v1/books-api.json | 3824 ++++ .../api/books/v1/books-gen.go | 7062 +++++++ .../google.golang.org/api/build-examples.sh | 11 + .../api/calendar/v3/calendar-api.json | 2616 +++ .../api/calendar/v3/calendar-gen.go | 5623 +++++ .../api/civicinfo/us_v1/civicinfo-api.json | 874 + .../api/civicinfo/us_v1/civicinfo-gen.go | 944 + .../api/civicinfo/v1/civicinfo-api.json | 874 + .../api/civicinfo/v1/civicinfo-gen.go | 944 + .../api/civicinfo/v2/civicinfo-api.json | 1030 + .../api/civicinfo/v2/civicinfo-gen.go | 1178 ++ .../v2beta1/cloudmonitoring-api.json | 641 + .../v2beta1/cloudmonitoring-gen.go | 890 + .../api/compute/v1/compute-api.json | 9526 +++++++++ .../api/compute/v1/compute-gen.go | 16952 ++++++++++++++++ .../api/container/v1beta1/container-api.json | 579 + .../api/container/v1beta1/container-gen.go | 1007 + .../api/content/v2/content-api.json | 2795 +++ .../api/content/v2/content-gen.go | 3978 ++++ .../api/coordinate/v1/coordinate-api.json | 1091 + .../api/coordinate/v1/coordinate-gen.go | 1973 ++ .../api/customsearch/v1/customsearch-api.json | 814 + .../api/customsearch/v1/customsearch-gen.go | 1007 + .../api/datastore/v1beta1/datastore-api.json | 1024 + .../api/datastore/v1beta1/datastore-gen.go | 1154 ++ .../api/datastore/v1beta2/datastore-api.json | 1109 + .../api/datastore/v1beta2/datastore-gen.go | 1092 + .../dfareporting/v1.1/dfareporting-api.json | 1521 ++ .../api/dfareporting/v1.1/dfareporting-gen.go | 2186 ++ .../dfareporting/v1.2/dfareporting-api.json | 1589 ++ .../api/dfareporting/v1.2/dfareporting-gen.go | 2338 +++ .../dfareporting/v1.3/dfareporting-api.json | 1913 ++ .../api/dfareporting/v1.3/dfareporting-gen.go | 2605 +++ .../api/dfareporting/v1/dfareporting-api.json | 1172 ++ .../api/dfareporting/v1/dfareporting-gen.go | 1903 ++ .../api/discovery/v1/discovery-api.json | 674 + .../api/discovery/v1/discovery-gen.go | 620 + .../api/dns/v1beta1/dns-api.json | 682 + .../api/dns/v1beta1/dns-gen.go | 1251 ++ .../v1/doubleclickbidmanager-api.json | 1498 ++ .../v1/doubleclickbidmanager-gen.go | 920 + .../v2/doubleclicksearch-api.json | 1062 + .../v2/doubleclicksearch-gen.go | 1483 ++ .../api/drive/v1/drive-api.json | 418 + .../api/drive/v1/drive-gen.go | 723 + .../api/drive/v2/drive-api.json | 4059 ++++ .../api/drive/v2/drive-gen.go | 7959 ++++++++ .../api/examples/bigquery.go | 368 + .../google.golang.org/api/examples/books.go | 77 + .../api/examples/calendar.go | 73 + .../google.golang.org/api/examples/compute.go | 78 + .../google.golang.org/api/examples/debug.go | 72 + .../google.golang.org/api/examples/drive.go | 31 + .../google.golang.org/api/examples/fitness.go | 109 + .../google.golang.org/api/examples/gmail.go | 140 + .../google.golang.org/api/examples/gopher.png | Bin 0 -> 23019 bytes vendor/google.golang.org/api/examples/main.go | 219 + .../api/examples/mapsengine.go | 93 + .../google.golang.org/api/examples/mirror.go | 97 + .../api/examples/prediction.go | 137 + .../google.golang.org/api/examples/pubsub.go | 325 + .../google.golang.org/api/examples/storage.go | 32 + .../google.golang.org/api/examples/tasks.go | 22 + .../api/examples/urlshortener.go | 46 + .../api/fitness/v1/fitness-api.json | 1042 + .../api/fitness/v1/fitness-gen.go | 1596 ++ .../api/freebase/v1-sandbox/freebase-api.json | 412 + .../api/freebase/v1-sandbox/freebase-gen.go | 751 + .../api/freebase/v1/freebase-api.json | 412 + .../api/freebase/v1/freebase-gen.go | 751 + .../api/freebase/v1sandbox/freebase-api.json | 412 + .../api/freebase/v1sandbox/freebase-gen.go | 751 + .../api/games/v1/games-api.json | 4804 +++++ .../api/games/v1/games-gen.go | 8005 ++++++++ .../v1management/gamesmanagement-api.json | 881 + .../v1management/gamesmanagement-gen.go | 2204 ++ .../api/gan/v1beta1/gan-api.json | 1860 ++ .../api/gan/v1beta1/gan-gen.go | 2851 +++ .../api/genomics/v1beta/genomics-api.json | 2358 +++ .../api/genomics/v1beta/genomics-gen.go | 4198 ++++ .../api/genomics/v1beta2/genomics-api.json | 2953 +++ .../api/genomics/v1beta2/genomics-gen.go | 5211 +++++ .../api/gmail/v1/gmail-api.json | 1801 ++ .../api/gmail/v1/gmail-gen.go | 3656 ++++ .../api/google-api-go-generator/gen_test.go | 79 + .../testdata/arrayofarray-1.json | 49 + .../testdata/arrayofarray-1.want | 59 + .../testdata/arrayofmapofobjects.json | 32 + .../testdata/arrayofmapofobjects.want | 56 + .../testdata/arrayofmapofstrings.json | 32 + .../testdata/arrayofmapofstrings.want | 56 + .../testdata/blogger-3.json | 2199 ++ .../testdata/blogger-3.want | 4231 ++++ .../testdata/getwithoutbody.json | 89 + .../testdata/getwithoutbody.want | 202 + .../testdata/mapofany.json | 51 + .../testdata/mapofany.want | 68 + .../testdata/mapofarrayofobjects.json | 72 + .../testdata/mapofarrayofobjects.want | 136 + .../testdata/mapofobjects.json | 30 + .../testdata/mapofobjects.want | 56 + .../testdata/mapofstrings-1.json | 72 + .../testdata/mapofstrings-1.want | 136 + .../testdata/quotednum.json | 94 + .../testdata/quotednum.want | 65 + .../testdata/resource-named-service.json | 2199 ++ .../testdata/resource-named-service.want | 4231 ++++ .../testdata/variants.json | 418 + .../testdata/variants.want | 278 + .../api/googleapi/googleapi_test.go | 361 + .../api/googleapi/types_test.go | 44 + .../v1/groupsmigration-api.json | 131 + .../groupsmigration/v1/groupsmigration-gen.go | 179 + .../groupssettings/v1/groupssettings-api.json | 284 + .../groupssettings/v1/groupssettings-gen.go | 430 + .../v3/identitytoolkit-api.json | 927 + .../identitytoolkit/v3/identitytoolkit-gen.go | 1281 ++ .../api/lib/codereview/codereview.cfg | 1 + .../api/licensing/v1/licensing-api.json | 427 + .../api/licensing/v1/licensing-gen.go | 838 + .../api/manager/v1beta2/manager-api.json | 1164 ++ .../api/manager/v1beta2/manager-gen.go | 1356 ++ .../api/mapsengine/exp2/mapsengine-api.json | 5365 +++++ .../api/mapsengine/exp2/mapsengine-gen.go | 9969 +++++++++ .../api/mapsengine/v1/mapsengine-api.json | 5352 +++++ .../api/mapsengine/v1/mapsengine-gen.go | 9940 +++++++++ .../api/mirror/v1/mirror-api.json | 1390 ++ .../api/mirror/v1/mirror-gen.go | 2790 +++ .../api/oauth2/v1/oauth2-api.json | 265 + .../api/oauth2/v1/oauth2-gen.go | 404 + .../api/oauth2/v2/oauth2-api.json | 243 + .../api/oauth2/v2/oauth2-gen.go | 385 + .../v1/pagespeedonline-api.json | 415 + .../pagespeedonline/v1/pagespeedonline-gen.go | 357 + .../api/plus/v1/plus-api.json | 1963 ++ .../google.golang.org/api/plus/v1/plus-gen.go | 2664 +++ .../api/plusdomains/v1/plusdomains-api.json | 2163 ++ .../api/plusdomains/v1/plusdomains-gen.go | 3333 +++ .../api/prediction/v1.2/prediction-api.json | 354 + .../api/prediction/v1.2/prediction-gen.go | 646 + .../api/prediction/v1.3/prediction-api.json | 412 + .../api/prediction/v1.3/prediction-gen.go | 694 + .../api/prediction/v1.4/prediction-api.json | 437 + .../api/prediction/v1.4/prediction-gen.go | 717 + .../api/pubsub/v1beta1/pubsub-api.json | 699 + .../api/pubsub/v1beta1/pubsub-gen.go | 1495 ++ .../api/qpxexpress/v1/qpxexpress-api.json | 895 + .../api/qpxexpress/v1/qpxexpress-gen.go | 702 + .../replicapool/v1beta1/replicapool-api.json | 1109 + .../replicapool/v1beta1/replicapool-gen.go | 1608 ++ .../replicapool/v1beta2/replicapool-api.json | 1028 + .../replicapool/v1beta2/replicapool-gen.go | 1740 ++ .../v1beta1/replicapoolupdater-api.json | 527 + .../v1beta1/replicapoolupdater-gen.go | 925 + .../api/reseller/v1/reseller-api.json | 815 + .../api/reseller/v1/reseller-gen.go | 1609 ++ .../api/reseller/v1sandbox/reseller-api.json | 815 + .../api/reseller/v1sandbox/reseller-gen.go | 1609 ++ .../v1beta1/resourceviews-api.json | 911 + .../v1beta1/resourceviews-gen.go | 1716 ++ .../v1beta2/resourceviews-api.json | 1044 + .../v1beta2/resourceviews-gen.go | 1688 ++ .../v1/siteverification-api.json | 321 + .../v1/siteverification-gen.go | 680 + .../api/spectrum/v1explorer/spectrum-api.json | 992 + .../api/spectrum/v1explorer/spectrum-gen.go | 1388 ++ .../api/sqladmin/v1beta1/sqladmin-api.json | 1184 ++ .../api/sqladmin/v1beta1/sqladmin-gen.go | 1954 ++ .../api/sqladmin/v1beta3/sqladmin-api.json | 1940 ++ .../api/sqladmin/v1beta3/sqladmin-gen.go | 3100 +++ .../api/storage/v1/storage-api.json | 2564 +++ .../api/storage/v1/storage-gen.go | 5380 +++++ .../api/storage/v1beta1/storage-api.json | 1427 ++ .../api/storage/v1beta1/storage-gen.go | 2895 +++ .../api/storage/v1beta2/storage-api.json | 2345 +++ .../api/storage/v1beta2/storage-gen.go | 5068 +++++ .../api/tagmanager/v1/tagmanager-api.json | 2782 +++ .../api/tagmanager/v1/tagmanager-gen.go | 5140 +++++ .../api/taskqueue/v1beta1/taskqueue-api.json | 422 + .../api/taskqueue/v1beta1/taskqueue-gen.go | 662 + .../api/taskqueue/v1beta2/taskqueue-api.json | 569 + .../api/taskqueue/v1beta2/taskqueue-gen.go | 1034 + .../api/tasks/v1/tasks-api.json | 696 + .../api/tasks/v1/tasks-gen.go | 1606 ++ .../api/translate/v2/translate-api.json | 267 + .../api/translate/v2/translate-gen.go | 427 + .../api/urlshortener/v1/urlshortener-api.json | 315 + .../api/urlshortener/v1/urlshortener-gen.go | 439 + .../api/webfonts/v1/webfonts-api.json | 175 + .../api/webfonts/v1/webfonts-gen.go | 191 + .../api/webmasters/v3/webmasters-api.json | 806 + .../api/webmasters/v3/webmasters-gen.go | 1400 ++ .../api/youtube/v3/youtube-api.json | 7587 +++++++ .../api/youtube/v3/youtube-gen.go | 10146 +++++++++ .../v1/youtubeanalytics-api.json | 415 + .../v1/youtubeanalytics-gen.go | 595 + .../v1beta1/youtubeanalytics-api.json | 418 + .../v1beta1/youtubeanalytics-gen.go | 595 + .../quotedprintable.v3/encodedword_test.go | 281 + .../quotedprintable.v3/reader_test.go | 200 + .../quotedprintable.v3/writer_test.go | 154 + vendor/gopkg.in/asn1-ber.v1/ber_test.go | 168 + vendor/gopkg.in/asn1-ber.v1/header_test.go | 135 + .../gopkg.in/asn1-ber.v1/identifier_test.go | 344 + vendor/gopkg.in/asn1-ber.v1/length_test.go | 158 + vendor/gopkg.in/asn1-ber.v1/suite_test.go | 182 + vendor/gopkg.in/gomail.v2/auth_test.go | 156 + vendor/gopkg.in/gomail.v2/example_test.go | 215 + vendor/gopkg.in/gomail.v2/message_test.go | 630 + vendor/gopkg.in/gomail.v2/send_test.go | 80 + vendor/gopkg.in/gomail.v2/smtp_test.go | 254 + vendor/gopkg.in/gorp.v1/gorp_test.go | 2083 ++ vendor/gopkg.in/gorp.v1/test_all.sh | 0 vendor/gopkg.in/ldap.v2/dn_test.go | 70 + vendor/gopkg.in/ldap.v2/example_test.go | 305 + vendor/gopkg.in/ldap.v2/filter_test.go | 248 + vendor/gopkg.in/ldap.v2/ldap_test.go | 249 + vendor/gopkg.in/ldap.v2/search_test.go | 31 + 960 files changed, 577962 insertions(+), 5 deletions(-) create mode 100644 vendor/github.com/PuerkitoBio/goquery/array_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/bench_array_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/bench_example_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/bench_expand_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/bench_filter_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/bench_iteration_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/bench_property_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/bench_query_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/bench_traversal_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/example_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/expand_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/filter_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/iteration_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/manipulation_test.go mode change 100644 => 100755 vendor/github.com/PuerkitoBio/goquery/misc/git/pre-commit create mode 100644 vendor/github.com/PuerkitoBio/goquery/property_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/query_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/testdata/gotesting.html create mode 100644 vendor/github.com/PuerkitoBio/goquery/testdata/gowiki.html create mode 100644 vendor/github.com/PuerkitoBio/goquery/testdata/metalreview.html create mode 100644 vendor/github.com/PuerkitoBio/goquery/testdata/page.html create mode 100644 vendor/github.com/PuerkitoBio/goquery/testdata/page2.html create mode 100644 vendor/github.com/PuerkitoBio/goquery/testdata/page3.html create mode 100644 vendor/github.com/PuerkitoBio/goquery/traversal_test.go create mode 100644 vendor/github.com/PuerkitoBio/goquery/type_test.go mode change 100644 => 100755 vendor/github.com/andybalholm/cascadia/LICENSE create mode 100644 vendor/github.com/andybalholm/cascadia/benchmark_test.go create mode 100644 vendor/github.com/andybalholm/cascadia/parser_test.go create mode 100644 vendor/github.com/andybalholm/cascadia/selector_test.go create mode 100644 vendor/github.com/coreos/go-oidc/.gitignore create mode 100644 vendor/github.com/coreos/go-oidc/.travis.yml create mode 100644 vendor/github.com/coreos/go-oidc/CONTRIBUTING.md create mode 100644 vendor/github.com/coreos/go-oidc/DCO create mode 100644 vendor/github.com/coreos/go-oidc/MAINTAINERS create mode 100644 vendor/github.com/coreos/go-oidc/README.md create mode 100755 vendor/github.com/coreos/go-oidc/build create mode 100644 vendor/github.com/coreos/go-oidc/example/app/main.go create mode 100644 vendor/github.com/coreos/go-oidc/example/cli/main.go create mode 100644 vendor/github.com/coreos/go-oidc/http/http_test.go create mode 100644 vendor/github.com/coreos/go-oidc/http/url_test.go create mode 100644 vendor/github.com/coreos/go-oidc/jose/claims_test.go create mode 100644 vendor/github.com/coreos/go-oidc/jose/jwk_test.go create mode 100644 vendor/github.com/coreos/go-oidc/jose/jws_test.go create mode 100644 vendor/github.com/coreos/go-oidc/jose/jwt_test.go create mode 100644 vendor/github.com/coreos/go-oidc/jose/sig_hmac_test.go create mode 100644 vendor/github.com/coreos/go-oidc/key/key_test.go create mode 100644 vendor/github.com/coreos/go-oidc/key/manager_test.go create mode 100644 vendor/github.com/coreos/go-oidc/key/rotate_test.go create mode 100644 vendor/github.com/coreos/go-oidc/key/sync_test.go create mode 100644 vendor/github.com/coreos/go-oidc/oauth2/oauth2_test.go create mode 100644 vendor/github.com/coreos/go-oidc/oidc/client_race_test.go create mode 100644 vendor/github.com/coreos/go-oidc/oidc/client_test.go create mode 100644 vendor/github.com/coreos/go-oidc/oidc/identity_test.go create mode 100644 vendor/github.com/coreos/go-oidc/oidc/provider_test.go create mode 100644 vendor/github.com/coreos/go-oidc/oidc/transport_test.go create mode 100644 vendor/github.com/coreos/go-oidc/oidc/util_test.go create mode 100644 vendor/github.com/coreos/go-oidc/oidc/verification_test.go create mode 100755 vendor/github.com/coreos/go-oidc/test create mode 100644 vendor/github.com/coreos/pkg/.gitignore create mode 100644 vendor/github.com/coreos/pkg/CONTRIBUTING.md create mode 100644 vendor/github.com/coreos/pkg/DCO create mode 100644 vendor/github.com/coreos/pkg/MAINTAINERS create mode 100644 vendor/github.com/coreos/pkg/README.md create mode 100755 vendor/github.com/coreos/pkg/build create mode 100644 vendor/github.com/coreos/pkg/cryptoutil/aes.go create mode 100644 vendor/github.com/coreos/pkg/cryptoutil/aes_test.go create mode 100644 vendor/github.com/coreos/pkg/flagutil/env_test.go create mode 100644 vendor/github.com/coreos/pkg/flagutil/types_test.go create mode 100644 vendor/github.com/coreos/pkg/health/health_test.go create mode 100644 vendor/github.com/coreos/pkg/httputil/json_test.go create mode 100644 vendor/github.com/coreos/pkg/netutil/proxy.go create mode 100644 vendor/github.com/coreos/pkg/netutil/url.go create mode 100644 vendor/github.com/coreos/pkg/netutil/url_test.go create mode 100755 vendor/github.com/coreos/pkg/test create mode 100644 vendor/github.com/coreos/pkg/timeutil/backoff_test.go create mode 100644 vendor/github.com/coreos/pkg/yamlutil/yaml.go create mode 100644 vendor/github.com/coreos/pkg/yamlutil/yaml_test.go create mode 100644 vendor/github.com/go-gorp/gorp/gorp_test.go mode change 100644 => 100755 vendor/github.com/go-gorp/gorp/test_all.sh create mode 100644 vendor/github.com/gorilla/handlers/canonical_test.go create mode 100644 vendor/github.com/gorilla/handlers/compress_test.go create mode 100644 vendor/github.com/gorilla/handlers/handlers_test.go create mode 100644 vendor/github.com/gorilla/handlers/proxy_headers_test.go create mode 100644 vendor/github.com/jonboulle/clockwork/clockwork_test.go create mode 100644 vendor/github.com/jonboulle/clockwork/example_test.go create mode 100644 vendor/github.com/julienschmidt/httprouter/path_test.go create mode 100644 vendor/github.com/julienschmidt/httprouter/router_test.go create mode 100644 vendor/github.com/julienschmidt/httprouter/tree_test.go create mode 100644 vendor/github.com/kylelemons/godebug/diff/diff_test.go create mode 100644 vendor/github.com/kylelemons/godebug/pretty/examples_test.go create mode 100644 vendor/github.com/kylelemons/godebug/pretty/public_test.go create mode 100644 vendor/github.com/kylelemons/godebug/pretty/reflect_test.go create mode 100644 vendor/github.com/kylelemons/godebug/pretty/structure_test.go create mode 100644 vendor/github.com/lib/pq/bench_test.go create mode 100644 vendor/github.com/lib/pq/conn_test.go create mode 100644 vendor/github.com/lib/pq/conn_xact_test.go create mode 100644 vendor/github.com/lib/pq/copy_test.go create mode 100644 vendor/github.com/lib/pq/encode_test.go create mode 100644 vendor/github.com/lib/pq/hstore/hstore_test.go create mode 100644 vendor/github.com/lib/pq/notify_test.go create mode 100644 vendor/github.com/lib/pq/ssl_test.go create mode 100644 vendor/github.com/lib/pq/url_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/bounces_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/credentials_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/domains_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/email_validation_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/events_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/mailing_lists_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/messages_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/routes_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/spam_complaints_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/stats_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/unsubscribes_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/acceptance/webhooks_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/examples_test.go create mode 100644 vendor/github.com/mailgun/mailgun-go/mailgun_test.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/custom_func/main.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/hook/hook.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/Makefile create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/extension.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/sqlite3_mod_regexp.c create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/Makefile create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/extension.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/picojson.h create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/sqlite3_mod_vtable.cc create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/simple/simple.go create mode 100644 vendor/github.com/mattn/go-sqlite3/callback_test.go create mode 100644 vendor/github.com/mattn/go-sqlite3/error_test.go create mode 100644 vendor/github.com/mattn/go-sqlite3/sqlite3_fts3_test.go create mode 100644 vendor/github.com/mattn/go-sqlite3/sqlite3_test.go create mode 100644 vendor/github.com/mbanzon/simplehttp/helpers_test.go create mode 100644 vendor/github.com/mbanzon/simplehttp/payload_test.go create mode 100644 vendor/github.com/mbanzon/simplehttp/shorthand_test.go create mode 100644 vendor/github.com/mbanzon/simplehttp/simplehttp_test.go mode change 100644 => 100755 vendor/github.com/pborman/uuid/dce.go mode change 100644 => 100755 vendor/github.com/pborman/uuid/doc.go create mode 100644 vendor/github.com/pborman/uuid/json_test.go mode change 100644 => 100755 vendor/github.com/pborman/uuid/node.go create mode 100644 vendor/github.com/pborman/uuid/seq_test.go mode change 100644 => 100755 vendor/github.com/pborman/uuid/time.go mode change 100644 => 100755 vendor/github.com/pborman/uuid/uuid.go create mode 100755 vendor/github.com/pborman/uuid/uuid_test.go create mode 100644 vendor/github.com/rubenv/sql-migrate/bindata_test.go create mode 100644 vendor/github.com/rubenv/sql-migrate/init_test.go create mode 100644 vendor/github.com/rubenv/sql-migrate/migrate_test.go create mode 100644 vendor/github.com/rubenv/sql-migrate/sort_test.go create mode 100644 vendor/github.com/rubenv/sql-migrate/sql-migrate/main_test.go create mode 100644 vendor/github.com/rubenv/sql-migrate/sqlparse/sqlparse_test.go mode change 100644 => 100755 vendor/github.com/rubenv/sql-migrate/test-integration/mysql-flag.sh mode change 100644 => 100755 vendor/github.com/rubenv/sql-migrate/test-integration/mysql.sh mode change 100644 => 100755 vendor/github.com/rubenv/sql-migrate/test-integration/postgres.sh mode change 100644 => 100755 vendor/github.com/rubenv/sql-migrate/test-integration/sqlite.sh create mode 100644 vendor/github.com/rubenv/sql-migrate/toapply_test.go create mode 100644 vendor/github.com/spf13/cobra/bash_completions_test.go create mode 100644 vendor/github.com/spf13/cobra/cobra/cmd/helpers_test.go create mode 100644 vendor/github.com/spf13/cobra/cobra_test.go create mode 100644 vendor/github.com/spf13/cobra/command_test.go create mode 100644 vendor/github.com/spf13/cobra/doc/cmd_test.go create mode 100644 vendor/github.com/spf13/cobra/doc/man_docs_test.go create mode 100644 vendor/github.com/spf13/cobra/doc/man_examples_test.go create mode 100644 vendor/github.com/spf13/cobra/doc/md_docs_test.go create mode 100644 vendor/github.com/spf13/pflag/bool_test.go create mode 100644 vendor/github.com/spf13/pflag/count_test.go create mode 100644 vendor/github.com/spf13/pflag/example_test.go create mode 100644 vendor/github.com/spf13/pflag/export_test.go create mode 100644 vendor/github.com/spf13/pflag/flag_test.go create mode 100644 vendor/github.com/spf13/pflag/golangflag_test.go create mode 100644 vendor/github.com/spf13/pflag/int_slice_test.go create mode 100644 vendor/github.com/spf13/pflag/ip_test.go create mode 100644 vendor/github.com/spf13/pflag/ipnet_test.go create mode 100644 vendor/github.com/spf13/pflag/string_slice_test.go mode change 100644 => 100755 vendor/github.com/spf13/pflag/verify/all.sh mode change 100644 => 100755 vendor/github.com/spf13/pflag/verify/gofmt.sh mode change 100644 => 100755 vendor/github.com/spf13/pflag/verify/golint.sh create mode 100644 vendor/golang.org/x/crypto/.gitignore create mode 100644 vendor/golang.org/x/crypto/AUTHORS create mode 100644 vendor/golang.org/x/crypto/CONTRIBUTORS create mode 100644 vendor/golang.org/x/crypto/README create mode 100644 vendor/golang.org/x/crypto/bcrypt/bcrypt_test.go create mode 100644 vendor/golang.org/x/crypto/blowfish/blowfish_test.go create mode 100644 vendor/golang.org/x/crypto/bn256/bn256.go create mode 100644 vendor/golang.org/x/crypto/bn256/bn256_test.go create mode 100644 vendor/golang.org/x/crypto/bn256/constants.go create mode 100644 vendor/golang.org/x/crypto/bn256/curve.go create mode 100644 vendor/golang.org/x/crypto/bn256/example_test.go create mode 100644 vendor/golang.org/x/crypto/bn256/gfp12.go create mode 100644 vendor/golang.org/x/crypto/bn256/gfp2.go create mode 100644 vendor/golang.org/x/crypto/bn256/gfp6.go create mode 100644 vendor/golang.org/x/crypto/bn256/optate.go create mode 100644 vendor/golang.org/x/crypto/bn256/twist.go create mode 100644 vendor/golang.org/x/crypto/cast5/cast5.go create mode 100644 vendor/golang.org/x/crypto/cast5/cast5_test.go create mode 100644 vendor/golang.org/x/crypto/curve25519/const_amd64.s create mode 100644 vendor/golang.org/x/crypto/curve25519/cswap_amd64.s create mode 100644 vendor/golang.org/x/crypto/curve25519/curve25519.go create mode 100644 vendor/golang.org/x/crypto/curve25519/curve25519_test.go create mode 100644 vendor/golang.org/x/crypto/curve25519/doc.go create mode 100644 vendor/golang.org/x/crypto/curve25519/freeze_amd64.s create mode 100644 vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s create mode 100644 vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go create mode 100644 vendor/golang.org/x/crypto/curve25519/mul_amd64.s create mode 100644 vendor/golang.org/x/crypto/curve25519/square_amd64.s create mode 100644 vendor/golang.org/x/crypto/hkdf/example_test.go create mode 100644 vendor/golang.org/x/crypto/hkdf/hkdf.go create mode 100644 vendor/golang.org/x/crypto/hkdf/hkdf_test.go create mode 100644 vendor/golang.org/x/crypto/md4/md4.go create mode 100644 vendor/golang.org/x/crypto/md4/md4_test.go create mode 100644 vendor/golang.org/x/crypto/md4/md4block.go create mode 100644 vendor/golang.org/x/crypto/nacl/box/box.go create mode 100644 vendor/golang.org/x/crypto/nacl/box/box_test.go create mode 100644 vendor/golang.org/x/crypto/nacl/secretbox/secretbox.go create mode 100644 vendor/golang.org/x/crypto/nacl/secretbox/secretbox_test.go create mode 100644 vendor/golang.org/x/crypto/ocsp/ocsp.go create mode 100644 vendor/golang.org/x/crypto/ocsp/ocsp_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/armor/armor.go create mode 100644 vendor/golang.org/x/crypto/openpgp/armor/armor_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/armor/encode.go create mode 100644 vendor/golang.org/x/crypto/openpgp/canonical_text.go create mode 100644 vendor/golang.org/x/crypto/openpgp/canonical_text_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/clearsign/clearsign.go create mode 100644 vendor/golang.org/x/crypto/openpgp/clearsign/clearsign_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go create mode 100644 vendor/golang.org/x/crypto/openpgp/elgamal/elgamal_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/errors/errors.go create mode 100644 vendor/golang.org/x/crypto/openpgp/keys.go create mode 100644 vendor/golang.org/x/crypto/openpgp/keys_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/compressed.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/compressed_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/config.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/encrypted_key_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/literal.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/ocfb.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/ocfb_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/opaque.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/opaque_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/packet.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/packet_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/private_key.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/private_key_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key_v3_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/reader.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/signature.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/signature_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/signature_v3_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/userattribute.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/userattribute_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/userid.go create mode 100644 vendor/golang.org/x/crypto/openpgp/packet/userid_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/read.go create mode 100644 vendor/golang.org/x/crypto/openpgp/read_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/s2k/s2k.go create mode 100644 vendor/golang.org/x/crypto/openpgp/s2k/s2k_test.go create mode 100644 vendor/golang.org/x/crypto/openpgp/write.go create mode 100644 vendor/golang.org/x/crypto/openpgp/write_test.go create mode 100644 vendor/golang.org/x/crypto/otr/libotr_test_helper.c create mode 100644 vendor/golang.org/x/crypto/otr/otr.go create mode 100644 vendor/golang.org/x/crypto/otr/otr_test.go create mode 100644 vendor/golang.org/x/crypto/otr/smp.go create mode 100644 vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go create mode 100644 vendor/golang.org/x/crypto/pbkdf2/pbkdf2_test.go create mode 100644 vendor/golang.org/x/crypto/poly1305/const_amd64.s create mode 100644 vendor/golang.org/x/crypto/poly1305/poly1305.go create mode 100644 vendor/golang.org/x/crypto/poly1305/poly1305_amd64.s create mode 100644 vendor/golang.org/x/crypto/poly1305/poly1305_test.go create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_amd64.go create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_ref.go create mode 100644 vendor/golang.org/x/crypto/ripemd160/ripemd160.go create mode 100644 vendor/golang.org/x/crypto/ripemd160/ripemd160_test.go create mode 100644 vendor/golang.org/x/crypto/ripemd160/ripemd160block.go create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/hsalsa20.go create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa2020_amd64.s create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa208.go create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.go create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa20_ref.go create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa/salsa_test.go create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa20.go create mode 100644 vendor/golang.org/x/crypto/salsa20/salsa20_test.go create mode 100644 vendor/golang.org/x/crypto/scrypt/scrypt.go create mode 100644 vendor/golang.org/x/crypto/scrypt/scrypt_test.go create mode 100644 vendor/golang.org/x/crypto/sha3/doc.go create mode 100644 vendor/golang.org/x/crypto/sha3/hashes.go create mode 100644 vendor/golang.org/x/crypto/sha3/keccakKats.json.deflate create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf.go create mode 100644 vendor/golang.org/x/crypto/sha3/register.go create mode 100644 vendor/golang.org/x/crypto/sha3/sha3.go create mode 100644 vendor/golang.org/x/crypto/sha3/sha3_test.go create mode 100644 vendor/golang.org/x/crypto/sha3/shake.go create mode 100644 vendor/golang.org/x/crypto/ssh/agent/client.go create mode 100644 vendor/golang.org/x/crypto/ssh/agent/client_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/agent/forward.go create mode 100644 vendor/golang.org/x/crypto/ssh/agent/keyring.go create mode 100644 vendor/golang.org/x/crypto/ssh/agent/server.go create mode 100644 vendor/golang.org/x/crypto/ssh/agent/server_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/agent/testdata_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/benchmark_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/buffer.go create mode 100644 vendor/golang.org/x/crypto/ssh/buffer_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/certs.go create mode 100644 vendor/golang.org/x/crypto/ssh/certs_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/channel.go create mode 100644 vendor/golang.org/x/crypto/ssh/cipher.go create mode 100644 vendor/golang.org/x/crypto/ssh/cipher_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/client.go create mode 100644 vendor/golang.org/x/crypto/ssh/client_auth.go create mode 100644 vendor/golang.org/x/crypto/ssh/client_auth_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/client_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/common.go create mode 100644 vendor/golang.org/x/crypto/ssh/connection.go create mode 100644 vendor/golang.org/x/crypto/ssh/doc.go create mode 100644 vendor/golang.org/x/crypto/ssh/example_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/handshake.go create mode 100644 vendor/golang.org/x/crypto/ssh/handshake_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/kex.go create mode 100644 vendor/golang.org/x/crypto/ssh/kex_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/keys.go create mode 100644 vendor/golang.org/x/crypto/ssh/keys_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/mac.go create mode 100644 vendor/golang.org/x/crypto/ssh/mempipe_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/messages.go create mode 100644 vendor/golang.org/x/crypto/ssh/messages_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/mux.go create mode 100644 vendor/golang.org/x/crypto/ssh/mux_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/server.go create mode 100644 vendor/golang.org/x/crypto/ssh/session.go create mode 100644 vendor/golang.org/x/crypto/ssh/session_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/tcpip.go create mode 100644 vendor/golang.org/x/crypto/ssh/tcpip_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/terminal.go create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/terminal_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util.go create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_linux.go create mode 100644 vendor/golang.org/x/crypto/ssh/terminal/util_windows.go create mode 100644 vendor/golang.org/x/crypto/ssh/test/agent_unix_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/test/cert_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/test/doc.go create mode 100644 vendor/golang.org/x/crypto/ssh/test/forward_unix_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/test/session_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/test/tcpip_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/test/test_unix_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/test/testdata_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/testdata/doc.go create mode 100644 vendor/golang.org/x/crypto/ssh/testdata/keys.go create mode 100644 vendor/golang.org/x/crypto/ssh/testdata_test.go create mode 100644 vendor/golang.org/x/crypto/ssh/transport.go create mode 100644 vendor/golang.org/x/crypto/ssh/transport_test.go create mode 100644 vendor/golang.org/x/crypto/twofish/twofish.go create mode 100644 vendor/golang.org/x/crypto/twofish/twofish_test.go create mode 100644 vendor/golang.org/x/crypto/xtea/block.go create mode 100644 vendor/golang.org/x/crypto/xtea/cipher.go create mode 100644 vendor/golang.org/x/crypto/xtea/xtea_test.go create mode 100644 vendor/golang.org/x/crypto/xts/xts.go create mode 100644 vendor/golang.org/x/crypto/xts/xts_test.go create mode 100644 vendor/golang.org/x/net/.gitattributes create mode 100644 vendor/golang.org/x/net/.gitignore create mode 100644 vendor/golang.org/x/net/AUTHORS create mode 100644 vendor/golang.org/x/net/CONTRIBUTING.md create mode 100644 vendor/golang.org/x/net/CONTRIBUTORS create mode 100644 vendor/golang.org/x/net/README create mode 100644 vendor/golang.org/x/net/codereview.cfg create mode 100644 vendor/golang.org/x/net/context/context.go create mode 100644 vendor/golang.org/x/net/context/context_test.go create mode 100644 vendor/golang.org/x/net/context/withtimeout_test.go create mode 100644 vendor/golang.org/x/net/dict/dict.go create mode 100644 vendor/golang.org/x/net/html/atom/atom_test.go create mode 100644 vendor/golang.org/x/net/html/atom/table_test.go create mode 100644 vendor/golang.org/x/net/html/charset/charset_test.go create mode 100644 vendor/golang.org/x/net/html/charset/testdata/HTTP-charset.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-UTF-8-BOM.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-charset.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/HTTP-vs-meta-content.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/No-encoding-declaration.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/README create mode 100644 vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-charset.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/UTF-8-BOM-vs-meta-content.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/meta-charset-attribute.html create mode 100644 vendor/golang.org/x/net/html/charset/testdata/meta-content-attribute.html create mode 100644 vendor/golang.org/x/net/html/entity_test.go create mode 100644 vendor/golang.org/x/net/html/escape_test.go create mode 100644 vendor/golang.org/x/net/html/example_test.go create mode 100644 vendor/golang.org/x/net/html/node_test.go create mode 100644 vendor/golang.org/x/net/html/parse_test.go create mode 100644 vendor/golang.org/x/net/html/render_test.go create mode 100644 vendor/golang.org/x/net/html/testdata/go1.html create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/README create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/adoption01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/adoption02.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/comments01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/doctype01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/entities01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/entities02.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/html5test-com.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/inbody01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/isindex.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/pending-spec-changes-plain-text-unsafe.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/pending-spec-changes.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/plain-text-unsafe.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/scriptdata01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/scripted/adoption01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/scripted/webkit01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tables01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests1.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests10.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests11.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests12.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests14.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests15.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests16.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests17.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests18.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests19.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests2.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests20.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests21.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests22.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests23.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests24.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests25.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests26.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests3.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests4.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests5.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests6.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests7.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests8.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests9.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tests_innerHTML_1.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/tricky01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/webkit01.dat create mode 100644 vendor/golang.org/x/net/html/testdata/webkit/webkit02.dat create mode 100644 vendor/golang.org/x/net/html/token_test.go create mode 100644 vendor/golang.org/x/net/icmp/dstunreach.go create mode 100644 vendor/golang.org/x/net/icmp/echo.go create mode 100644 vendor/golang.org/x/net/icmp/endpoint.go create mode 100644 vendor/golang.org/x/net/icmp/example_test.go create mode 100644 vendor/golang.org/x/net/icmp/extension.go create mode 100644 vendor/golang.org/x/net/icmp/extension_test.go create mode 100644 vendor/golang.org/x/net/icmp/helper_posix.go create mode 100644 vendor/golang.org/x/net/icmp/interface.go create mode 100644 vendor/golang.org/x/net/icmp/ipv4.go create mode 100644 vendor/golang.org/x/net/icmp/ipv4_test.go create mode 100644 vendor/golang.org/x/net/icmp/ipv6.go create mode 100644 vendor/golang.org/x/net/icmp/listen_posix.go create mode 100644 vendor/golang.org/x/net/icmp/listen_stub.go create mode 100644 vendor/golang.org/x/net/icmp/message.go create mode 100644 vendor/golang.org/x/net/icmp/message_test.go create mode 100644 vendor/golang.org/x/net/icmp/messagebody.go create mode 100644 vendor/golang.org/x/net/icmp/mpls.go create mode 100644 vendor/golang.org/x/net/icmp/multipart.go create mode 100644 vendor/golang.org/x/net/icmp/multipart_test.go create mode 100644 vendor/golang.org/x/net/icmp/packettoobig.go create mode 100644 vendor/golang.org/x/net/icmp/paramprob.go create mode 100644 vendor/golang.org/x/net/icmp/ping_test.go create mode 100644 vendor/golang.org/x/net/icmp/sys_freebsd.go create mode 100644 vendor/golang.org/x/net/icmp/timeexceeded.go create mode 100644 vendor/golang.org/x/net/idna/idna.go create mode 100644 vendor/golang.org/x/net/idna/idna_test.go create mode 100644 vendor/golang.org/x/net/idna/punycode.go create mode 100644 vendor/golang.org/x/net/idna/punycode_test.go create mode 100644 vendor/golang.org/x/net/internal/iana/const.go create mode 100644 vendor/golang.org/x/net/internal/iana/gen.go create mode 100644 vendor/golang.org/x/net/internal/nettest/error_posix.go create mode 100644 vendor/golang.org/x/net/internal/nettest/error_stub.go create mode 100644 vendor/golang.org/x/net/internal/nettest/interface.go create mode 100644 vendor/golang.org/x/net/internal/nettest/stack.go create mode 100644 vendor/golang.org/x/net/internal/nettest/stack_stub.go create mode 100644 vendor/golang.org/x/net/internal/nettest/stack_unix.go create mode 100644 vendor/golang.org/x/net/internal/nettest/stack_windows.go create mode 100644 vendor/golang.org/x/net/internal/timeseries/timeseries.go create mode 100644 vendor/golang.org/x/net/internal/timeseries/timeseries_test.go create mode 100644 vendor/golang.org/x/net/ipv4/control.go create mode 100644 vendor/golang.org/x/net/ipv4/control_bsd.go create mode 100644 vendor/golang.org/x/net/ipv4/control_pktinfo.go create mode 100644 vendor/golang.org/x/net/ipv4/control_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/control_unix.go create mode 100644 vendor/golang.org/x/net/ipv4/control_windows.go create mode 100644 vendor/golang.org/x/net/ipv4/defs_darwin.go create mode 100644 vendor/golang.org/x/net/ipv4/defs_dragonfly.go create mode 100644 vendor/golang.org/x/net/ipv4/defs_freebsd.go create mode 100644 vendor/golang.org/x/net/ipv4/defs_linux.go create mode 100644 vendor/golang.org/x/net/ipv4/defs_netbsd.go create mode 100644 vendor/golang.org/x/net/ipv4/defs_openbsd.go create mode 100644 vendor/golang.org/x/net/ipv4/defs_solaris.go create mode 100644 vendor/golang.org/x/net/ipv4/dgramopt_posix.go create mode 100644 vendor/golang.org/x/net/ipv4/dgramopt_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/doc.go create mode 100644 vendor/golang.org/x/net/ipv4/endpoint.go create mode 100644 vendor/golang.org/x/net/ipv4/example_test.go create mode 100644 vendor/golang.org/x/net/ipv4/gen.go create mode 100644 vendor/golang.org/x/net/ipv4/genericopt_posix.go create mode 100644 vendor/golang.org/x/net/ipv4/genericopt_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/header.go create mode 100644 vendor/golang.org/x/net/ipv4/header_test.go create mode 100644 vendor/golang.org/x/net/ipv4/helper.go create mode 100644 vendor/golang.org/x/net/ipv4/helper_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/helper_unix.go create mode 100644 vendor/golang.org/x/net/ipv4/helper_windows.go create mode 100644 vendor/golang.org/x/net/ipv4/iana.go create mode 100644 vendor/golang.org/x/net/ipv4/icmp.go create mode 100644 vendor/golang.org/x/net/ipv4/icmp_linux.go create mode 100644 vendor/golang.org/x/net/ipv4/icmp_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/icmp_test.go create mode 100644 vendor/golang.org/x/net/ipv4/mocktransponder_test.go create mode 100644 vendor/golang.org/x/net/ipv4/multicast_test.go create mode 100644 vendor/golang.org/x/net/ipv4/multicastlistener_test.go create mode 100644 vendor/golang.org/x/net/ipv4/multicastsockopt_test.go create mode 100644 vendor/golang.org/x/net/ipv4/packet.go create mode 100644 vendor/golang.org/x/net/ipv4/payload.go create mode 100644 vendor/golang.org/x/net/ipv4/payload_cmsg.go create mode 100644 vendor/golang.org/x/net/ipv4/payload_nocmsg.go create mode 100644 vendor/golang.org/x/net/ipv4/readwrite_test.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_asmreq.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_asmreq_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_asmreq_unix.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_asmreq_windows.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_asmreqn_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_asmreqn_unix.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_ssmreq_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_ssmreq_unix.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_unix.go create mode 100644 vendor/golang.org/x/net/ipv4/sockopt_windows.go create mode 100644 vendor/golang.org/x/net/ipv4/sys_bsd.go create mode 100644 vendor/golang.org/x/net/ipv4/sys_darwin.go create mode 100644 vendor/golang.org/x/net/ipv4/sys_freebsd.go create mode 100644 vendor/golang.org/x/net/ipv4/sys_linux.go create mode 100644 vendor/golang.org/x/net/ipv4/sys_openbsd.go create mode 100644 vendor/golang.org/x/net/ipv4/sys_stub.go create mode 100644 vendor/golang.org/x/net/ipv4/sys_windows.go create mode 100644 vendor/golang.org/x/net/ipv4/syscall_linux_386.go create mode 100644 vendor/golang.org/x/net/ipv4/syscall_unix.go create mode 100644 vendor/golang.org/x/net/ipv4/thunk_linux_386.s create mode 100644 vendor/golang.org/x/net/ipv4/unicast_test.go create mode 100644 vendor/golang.org/x/net/ipv4/unicastsockopt_test.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_darwin.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_dragonfly.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_linux_386.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_linux_arm.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_netbsd.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_openbsd.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_solaris.go create mode 100644 vendor/golang.org/x/net/ipv6/control.go create mode 100644 vendor/golang.org/x/net/ipv6/control_rfc2292_unix.go create mode 100644 vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go create mode 100644 vendor/golang.org/x/net/ipv6/control_stub.go create mode 100644 vendor/golang.org/x/net/ipv6/control_unix.go create mode 100644 vendor/golang.org/x/net/ipv6/control_windows.go create mode 100644 vendor/golang.org/x/net/ipv6/defs_darwin.go create mode 100644 vendor/golang.org/x/net/ipv6/defs_dragonfly.go create mode 100644 vendor/golang.org/x/net/ipv6/defs_freebsd.go create mode 100644 vendor/golang.org/x/net/ipv6/defs_linux.go create mode 100644 vendor/golang.org/x/net/ipv6/defs_netbsd.go create mode 100644 vendor/golang.org/x/net/ipv6/defs_openbsd.go create mode 100644 vendor/golang.org/x/net/ipv6/defs_solaris.go create mode 100644 vendor/golang.org/x/net/ipv6/dgramopt_posix.go create mode 100644 vendor/golang.org/x/net/ipv6/dgramopt_stub.go create mode 100644 vendor/golang.org/x/net/ipv6/doc.go create mode 100644 vendor/golang.org/x/net/ipv6/endpoint.go create mode 100644 vendor/golang.org/x/net/ipv6/example_test.go create mode 100644 vendor/golang.org/x/net/ipv6/gen.go create mode 100644 vendor/golang.org/x/net/ipv6/genericopt_posix.go create mode 100644 vendor/golang.org/x/net/ipv6/genericopt_stub.go create mode 100644 vendor/golang.org/x/net/ipv6/header.go create mode 100644 vendor/golang.org/x/net/ipv6/header_test.go create mode 100644 vendor/golang.org/x/net/ipv6/helper.go create mode 100644 vendor/golang.org/x/net/ipv6/helper_stub.go create mode 100644 vendor/golang.org/x/net/ipv6/helper_unix.go create mode 100644 vendor/golang.org/x/net/ipv6/helper_windows.go create mode 100644 vendor/golang.org/x/net/ipv6/iana.go create mode 100644 vendor/golang.org/x/net/ipv6/icmp.go create mode 100644 vendor/golang.org/x/net/ipv6/icmp_bsd.go create mode 100644 vendor/golang.org/x/net/ipv6/icmp_linux.go create mode 100644 vendor/golang.org/x/net/ipv6/icmp_solaris.go create mode 100644 vendor/golang.org/x/net/ipv6/icmp_stub.go create mode 100644 vendor/golang.org/x/net/ipv6/icmp_test.go create mode 100644 vendor/golang.org/x/net/ipv6/icmp_windows.go create mode 100644 vendor/golang.org/x/net/ipv6/mocktransponder_test.go create mode 100644 vendor/golang.org/x/net/ipv6/multicast_test.go create mode 100644 vendor/golang.org/x/net/ipv6/multicastlistener_test.go create mode 100644 vendor/golang.org/x/net/ipv6/multicastsockopt_test.go create mode 100644 vendor/golang.org/x/net/ipv6/payload.go create mode 100644 vendor/golang.org/x/net/ipv6/payload_cmsg.go create mode 100644 vendor/golang.org/x/net/ipv6/payload_nocmsg.go create mode 100644 vendor/golang.org/x/net/ipv6/readwrite_test.go create mode 100644 vendor/golang.org/x/net/ipv6/sockopt.go create mode 100644 vendor/golang.org/x/net/ipv6/sockopt_asmreq_unix.go create mode 100644 vendor/golang.org/x/net/ipv6/sockopt_asmreq_windows.go create mode 100644 vendor/golang.org/x/net/ipv6/sockopt_ssmreq_stub.go create mode 100644 vendor/golang.org/x/net/ipv6/sockopt_ssmreq_unix.go create mode 100644 vendor/golang.org/x/net/ipv6/sockopt_stub.go create mode 100644 vendor/golang.org/x/net/ipv6/sockopt_test.go create mode 100644 vendor/golang.org/x/net/ipv6/sockopt_unix.go create mode 100644 vendor/golang.org/x/net/ipv6/sockopt_windows.go create mode 100644 vendor/golang.org/x/net/ipv6/sys_bsd.go create mode 100644 vendor/golang.org/x/net/ipv6/sys_darwin.go create mode 100644 vendor/golang.org/x/net/ipv6/sys_freebsd.go create mode 100644 vendor/golang.org/x/net/ipv6/sys_linux.go create mode 100644 vendor/golang.org/x/net/ipv6/sys_stub.go create mode 100644 vendor/golang.org/x/net/ipv6/sys_windows.go create mode 100644 vendor/golang.org/x/net/ipv6/syscall_linux_386.go create mode 100644 vendor/golang.org/x/net/ipv6/syscall_unix.go create mode 100644 vendor/golang.org/x/net/ipv6/thunk_linux_386.s create mode 100644 vendor/golang.org/x/net/ipv6/unicast_test.go create mode 100644 vendor/golang.org/x/net/ipv6/unicastsockopt_test.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_darwin.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_dragonfly.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_freebsd_386.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_freebsd_amd64.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_freebsd_arm.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_linux_386.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_linux_amd64.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_linux_arm.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_linux_arm64.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_linux_ppc64.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_linux_ppc64le.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_netbsd.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_openbsd.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_solaris.go create mode 100644 vendor/golang.org/x/net/netutil/listen.go create mode 100644 vendor/golang.org/x/net/netutil/listen_test.go create mode 100644 vendor/golang.org/x/net/proxy/direct.go create mode 100644 vendor/golang.org/x/net/proxy/per_host.go create mode 100644 vendor/golang.org/x/net/proxy/per_host_test.go create mode 100644 vendor/golang.org/x/net/proxy/proxy.go create mode 100644 vendor/golang.org/x/net/proxy/proxy_test.go create mode 100644 vendor/golang.org/x/net/proxy/socks5.go create mode 100644 vendor/golang.org/x/net/publicsuffix/gen.go create mode 100644 vendor/golang.org/x/net/publicsuffix/list.go create mode 100644 vendor/golang.org/x/net/publicsuffix/list_test.go create mode 100644 vendor/golang.org/x/net/publicsuffix/table.go create mode 100644 vendor/golang.org/x/net/publicsuffix/table_test.go create mode 100644 vendor/golang.org/x/net/trace/histogram.go create mode 100644 vendor/golang.org/x/net/trace/histogram_test.go create mode 100644 vendor/golang.org/x/net/trace/trace.go create mode 100644 vendor/golang.org/x/net/trace/trace_test.go create mode 100644 vendor/golang.org/x/net/webdav/file.go create mode 100644 vendor/golang.org/x/net/webdav/file_test.go create mode 100644 vendor/golang.org/x/net/webdav/if.go create mode 100644 vendor/golang.org/x/net/webdav/if_test.go create mode 100644 vendor/golang.org/x/net/webdav/litmus_test_server.go create mode 100644 vendor/golang.org/x/net/webdav/lock.go create mode 100644 vendor/golang.org/x/net/webdav/lock_test.go create mode 100644 vendor/golang.org/x/net/webdav/prop.go create mode 100644 vendor/golang.org/x/net/webdav/prop_test.go create mode 100644 vendor/golang.org/x/net/webdav/webdav.go create mode 100644 vendor/golang.org/x/net/webdav/webdav_test.go create mode 100644 vendor/golang.org/x/net/webdav/xml.go create mode 100644 vendor/golang.org/x/net/webdav/xml_test.go create mode 100644 vendor/golang.org/x/net/websocket/client.go create mode 100644 vendor/golang.org/x/net/websocket/exampledial_test.go create mode 100644 vendor/golang.org/x/net/websocket/examplehandler_test.go create mode 100644 vendor/golang.org/x/net/websocket/hybi.go create mode 100644 vendor/golang.org/x/net/websocket/hybi_test.go create mode 100644 vendor/golang.org/x/net/websocket/server.go create mode 100644 vendor/golang.org/x/net/websocket/websocket.go create mode 100644 vendor/golang.org/x/net/websocket/websocket_test.go create mode 100644 vendor/google.golang.org/api/.hgignore create mode 100644 vendor/google.golang.org/api/.hgtags create mode 100644 vendor/google.golang.org/api/AUTHORS create mode 100644 vendor/google.golang.org/api/CONTRIBUTING.md create mode 100644 vendor/google.golang.org/api/CONTRIBUTORS create mode 100644 vendor/google.golang.org/api/Makefile create mode 100644 vendor/google.golang.org/api/NOTES create mode 100644 vendor/google.golang.org/api/README.md create mode 100644 vendor/google.golang.org/api/TODO create mode 100644 vendor/google.golang.org/api/adexchangebuyer/v1.1/adexchangebuyer-api.json create mode 100644 vendor/google.golang.org/api/adexchangebuyer/v1.1/adexchangebuyer-gen.go create mode 100644 vendor/google.golang.org/api/adexchangebuyer/v1.2/adexchangebuyer-api.json create mode 100644 vendor/google.golang.org/api/adexchangebuyer/v1.2/adexchangebuyer-gen.go create mode 100644 vendor/google.golang.org/api/adexchangebuyer/v1.3/adexchangebuyer-api.json create mode 100644 vendor/google.golang.org/api/adexchangebuyer/v1.3/adexchangebuyer-gen.go create mode 100644 vendor/google.golang.org/api/adexchangebuyer/v1/adexchangebuyer-api.json create mode 100644 vendor/google.golang.org/api/adexchangebuyer/v1/adexchangebuyer-gen.go create mode 100644 vendor/google.golang.org/api/adexchangeseller/v1.1/adexchangeseller-api.json create mode 100644 vendor/google.golang.org/api/adexchangeseller/v1.1/adexchangeseller-gen.go create mode 100644 vendor/google.golang.org/api/adexchangeseller/v1/adexchangeseller-api.json create mode 100644 vendor/google.golang.org/api/adexchangeseller/v1/adexchangeseller-gen.go create mode 100644 vendor/google.golang.org/api/adexchangeseller/v2.0/adexchangeseller-api.json create mode 100644 vendor/google.golang.org/api/adexchangeseller/v2.0/adexchangeseller-gen.go create mode 100644 vendor/google.golang.org/api/admin/directory_v1/admin-api.json create mode 100644 vendor/google.golang.org/api/admin/directory_v1/admin-gen.go create mode 100644 vendor/google.golang.org/api/admin/email_migration_v2/admin-api.json create mode 100644 vendor/google.golang.org/api/admin/email_migration_v2/admin-gen.go create mode 100644 vendor/google.golang.org/api/admin/reports_v1/admin-api.json create mode 100644 vendor/google.golang.org/api/admin/reports_v1/admin-gen.go create mode 100644 vendor/google.golang.org/api/adsense/v1.2/adsense-api.json create mode 100644 vendor/google.golang.org/api/adsense/v1.2/adsense-gen.go create mode 100644 vendor/google.golang.org/api/adsense/v1.3/adsense-api.json create mode 100644 vendor/google.golang.org/api/adsense/v1.3/adsense-gen.go create mode 100644 vendor/google.golang.org/api/adsense/v1.4/adsense-api.json create mode 100644 vendor/google.golang.org/api/adsense/v1.4/adsense-gen.go create mode 100644 vendor/google.golang.org/api/adsensehost/v4.1/adsensehost-api.json create mode 100644 vendor/google.golang.org/api/adsensehost/v4.1/adsensehost-gen.go create mode 100644 vendor/google.golang.org/api/analytics/v2.4/analytics-api.json create mode 100644 vendor/google.golang.org/api/analytics/v2.4/analytics-gen.go create mode 100644 vendor/google.golang.org/api/analytics/v3/analytics-api.json create mode 100644 vendor/google.golang.org/api/analytics/v3/analytics-gen.go create mode 100644 vendor/google.golang.org/api/androidpublisher/v1.1/androidpublisher-api.json create mode 100644 vendor/google.golang.org/api/androidpublisher/v1.1/androidpublisher-gen.go create mode 100644 vendor/google.golang.org/api/androidpublisher/v1/androidpublisher-api.json create mode 100644 vendor/google.golang.org/api/androidpublisher/v1/androidpublisher-gen.go create mode 100644 vendor/google.golang.org/api/androidpublisher/v2/androidpublisher-api.json create mode 100644 vendor/google.golang.org/api/androidpublisher/v2/androidpublisher-gen.go create mode 100644 vendor/google.golang.org/api/appsactivity/v1/appsactivity-api.json create mode 100644 vendor/google.golang.org/api/appsactivity/v1/appsactivity-gen.go create mode 100644 vendor/google.golang.org/api/appstate/v1/appstate-api.json create mode 100644 vendor/google.golang.org/api/appstate/v1/appstate-gen.go create mode 100644 vendor/google.golang.org/api/audit/v1/audit-api.json create mode 100644 vendor/google.golang.org/api/audit/v1/audit-gen.go create mode 100644 vendor/google.golang.org/api/autoscaler/v1beta2/autoscaler-api.json create mode 100644 vendor/google.golang.org/api/autoscaler/v1beta2/autoscaler-gen.go create mode 100644 vendor/google.golang.org/api/bigquery/v2/bigquery-api.json create mode 100644 vendor/google.golang.org/api/bigquery/v2/bigquery-gen.go create mode 100644 vendor/google.golang.org/api/blogger/v2/blogger-api.json create mode 100644 vendor/google.golang.org/api/blogger/v2/blogger-gen.go create mode 100644 vendor/google.golang.org/api/blogger/v3/blogger-api.json create mode 100644 vendor/google.golang.org/api/blogger/v3/blogger-gen.go create mode 100644 vendor/google.golang.org/api/books/v1/books-api.json create mode 100644 vendor/google.golang.org/api/books/v1/books-gen.go create mode 100755 vendor/google.golang.org/api/build-examples.sh create mode 100644 vendor/google.golang.org/api/calendar/v3/calendar-api.json create mode 100644 vendor/google.golang.org/api/calendar/v3/calendar-gen.go create mode 100644 vendor/google.golang.org/api/civicinfo/us_v1/civicinfo-api.json create mode 100644 vendor/google.golang.org/api/civicinfo/us_v1/civicinfo-gen.go create mode 100644 vendor/google.golang.org/api/civicinfo/v1/civicinfo-api.json create mode 100644 vendor/google.golang.org/api/civicinfo/v1/civicinfo-gen.go create mode 100644 vendor/google.golang.org/api/civicinfo/v2/civicinfo-api.json create mode 100644 vendor/google.golang.org/api/civicinfo/v2/civicinfo-gen.go create mode 100644 vendor/google.golang.org/api/cloudmonitoring/v2beta1/cloudmonitoring-api.json create mode 100644 vendor/google.golang.org/api/cloudmonitoring/v2beta1/cloudmonitoring-gen.go create mode 100644 vendor/google.golang.org/api/compute/v1/compute-api.json create mode 100644 vendor/google.golang.org/api/compute/v1/compute-gen.go create mode 100644 vendor/google.golang.org/api/container/v1beta1/container-api.json create mode 100644 vendor/google.golang.org/api/container/v1beta1/container-gen.go create mode 100644 vendor/google.golang.org/api/content/v2/content-api.json create mode 100644 vendor/google.golang.org/api/content/v2/content-gen.go create mode 100644 vendor/google.golang.org/api/coordinate/v1/coordinate-api.json create mode 100644 vendor/google.golang.org/api/coordinate/v1/coordinate-gen.go create mode 100644 vendor/google.golang.org/api/customsearch/v1/customsearch-api.json create mode 100644 vendor/google.golang.org/api/customsearch/v1/customsearch-gen.go create mode 100644 vendor/google.golang.org/api/datastore/v1beta1/datastore-api.json create mode 100644 vendor/google.golang.org/api/datastore/v1beta1/datastore-gen.go create mode 100644 vendor/google.golang.org/api/datastore/v1beta2/datastore-api.json create mode 100644 vendor/google.golang.org/api/datastore/v1beta2/datastore-gen.go create mode 100644 vendor/google.golang.org/api/dfareporting/v1.1/dfareporting-api.json create mode 100644 vendor/google.golang.org/api/dfareporting/v1.1/dfareporting-gen.go create mode 100644 vendor/google.golang.org/api/dfareporting/v1.2/dfareporting-api.json create mode 100644 vendor/google.golang.org/api/dfareporting/v1.2/dfareporting-gen.go create mode 100644 vendor/google.golang.org/api/dfareporting/v1.3/dfareporting-api.json create mode 100644 vendor/google.golang.org/api/dfareporting/v1.3/dfareporting-gen.go create mode 100644 vendor/google.golang.org/api/dfareporting/v1/dfareporting-api.json create mode 100644 vendor/google.golang.org/api/dfareporting/v1/dfareporting-gen.go create mode 100644 vendor/google.golang.org/api/discovery/v1/discovery-api.json create mode 100644 vendor/google.golang.org/api/discovery/v1/discovery-gen.go create mode 100644 vendor/google.golang.org/api/dns/v1beta1/dns-api.json create mode 100644 vendor/google.golang.org/api/dns/v1beta1/dns-gen.go create mode 100644 vendor/google.golang.org/api/doubleclickbidmanager/v1/doubleclickbidmanager-api.json create mode 100644 vendor/google.golang.org/api/doubleclickbidmanager/v1/doubleclickbidmanager-gen.go create mode 100644 vendor/google.golang.org/api/doubleclicksearch/v2/doubleclicksearch-api.json create mode 100644 vendor/google.golang.org/api/doubleclicksearch/v2/doubleclicksearch-gen.go create mode 100644 vendor/google.golang.org/api/drive/v1/drive-api.json create mode 100644 vendor/google.golang.org/api/drive/v1/drive-gen.go create mode 100644 vendor/google.golang.org/api/drive/v2/drive-api.json create mode 100644 vendor/google.golang.org/api/drive/v2/drive-gen.go create mode 100644 vendor/google.golang.org/api/examples/bigquery.go create mode 100644 vendor/google.golang.org/api/examples/books.go create mode 100644 vendor/google.golang.org/api/examples/calendar.go create mode 100644 vendor/google.golang.org/api/examples/compute.go create mode 100644 vendor/google.golang.org/api/examples/debug.go create mode 100644 vendor/google.golang.org/api/examples/drive.go create mode 100644 vendor/google.golang.org/api/examples/fitness.go create mode 100644 vendor/google.golang.org/api/examples/gmail.go create mode 100644 vendor/google.golang.org/api/examples/gopher.png create mode 100644 vendor/google.golang.org/api/examples/main.go create mode 100644 vendor/google.golang.org/api/examples/mapsengine.go create mode 100644 vendor/google.golang.org/api/examples/mirror.go create mode 100644 vendor/google.golang.org/api/examples/prediction.go create mode 100644 vendor/google.golang.org/api/examples/pubsub.go create mode 100644 vendor/google.golang.org/api/examples/storage.go create mode 100644 vendor/google.golang.org/api/examples/tasks.go create mode 100644 vendor/google.golang.org/api/examples/urlshortener.go create mode 100644 vendor/google.golang.org/api/fitness/v1/fitness-api.json create mode 100644 vendor/google.golang.org/api/fitness/v1/fitness-gen.go create mode 100644 vendor/google.golang.org/api/freebase/v1-sandbox/freebase-api.json create mode 100644 vendor/google.golang.org/api/freebase/v1-sandbox/freebase-gen.go create mode 100644 vendor/google.golang.org/api/freebase/v1/freebase-api.json create mode 100644 vendor/google.golang.org/api/freebase/v1/freebase-gen.go create mode 100644 vendor/google.golang.org/api/freebase/v1sandbox/freebase-api.json create mode 100644 vendor/google.golang.org/api/freebase/v1sandbox/freebase-gen.go create mode 100644 vendor/google.golang.org/api/games/v1/games-api.json create mode 100644 vendor/google.golang.org/api/games/v1/games-gen.go create mode 100644 vendor/google.golang.org/api/gamesmanagement/v1management/gamesmanagement-api.json create mode 100644 vendor/google.golang.org/api/gamesmanagement/v1management/gamesmanagement-gen.go create mode 100644 vendor/google.golang.org/api/gan/v1beta1/gan-api.json create mode 100644 vendor/google.golang.org/api/gan/v1beta1/gan-gen.go create mode 100644 vendor/google.golang.org/api/genomics/v1beta/genomics-api.json create mode 100644 vendor/google.golang.org/api/genomics/v1beta/genomics-gen.go create mode 100644 vendor/google.golang.org/api/genomics/v1beta2/genomics-api.json create mode 100644 vendor/google.golang.org/api/genomics/v1beta2/genomics-gen.go create mode 100644 vendor/google.golang.org/api/gmail/v1/gmail-api.json create mode 100644 vendor/google.golang.org/api/gmail/v1/gmail-gen.go create mode 100644 vendor/google.golang.org/api/google-api-go-generator/gen_test.go create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/arrayofarray-1.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/arrayofarray-1.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/arrayofmapofobjects.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/arrayofmapofobjects.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/arrayofmapofstrings.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/arrayofmapofstrings.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/blogger-3.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/blogger-3.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/getwithoutbody.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/getwithoutbody.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/mapofany.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/mapofany.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/mapofarrayofobjects.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/mapofarrayofobjects.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/mapofobjects.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/mapofobjects.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/mapofstrings-1.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/mapofstrings-1.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/quotednum.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/quotednum.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/resource-named-service.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/resource-named-service.want create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/variants.json create mode 100644 vendor/google.golang.org/api/google-api-go-generator/testdata/variants.want create mode 100644 vendor/google.golang.org/api/googleapi/googleapi_test.go create mode 100644 vendor/google.golang.org/api/googleapi/types_test.go create mode 100644 vendor/google.golang.org/api/groupsmigration/v1/groupsmigration-api.json create mode 100644 vendor/google.golang.org/api/groupsmigration/v1/groupsmigration-gen.go create mode 100644 vendor/google.golang.org/api/groupssettings/v1/groupssettings-api.json create mode 100644 vendor/google.golang.org/api/groupssettings/v1/groupssettings-gen.go create mode 100644 vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-api.json create mode 100644 vendor/google.golang.org/api/identitytoolkit/v3/identitytoolkit-gen.go create mode 100644 vendor/google.golang.org/api/lib/codereview/codereview.cfg create mode 100644 vendor/google.golang.org/api/licensing/v1/licensing-api.json create mode 100644 vendor/google.golang.org/api/licensing/v1/licensing-gen.go create mode 100644 vendor/google.golang.org/api/manager/v1beta2/manager-api.json create mode 100644 vendor/google.golang.org/api/manager/v1beta2/manager-gen.go create mode 100644 vendor/google.golang.org/api/mapsengine/exp2/mapsengine-api.json create mode 100644 vendor/google.golang.org/api/mapsengine/exp2/mapsengine-gen.go create mode 100644 vendor/google.golang.org/api/mapsengine/v1/mapsengine-api.json create mode 100644 vendor/google.golang.org/api/mapsengine/v1/mapsengine-gen.go create mode 100644 vendor/google.golang.org/api/mirror/v1/mirror-api.json create mode 100644 vendor/google.golang.org/api/mirror/v1/mirror-gen.go create mode 100644 vendor/google.golang.org/api/oauth2/v1/oauth2-api.json create mode 100644 vendor/google.golang.org/api/oauth2/v1/oauth2-gen.go create mode 100644 vendor/google.golang.org/api/oauth2/v2/oauth2-api.json create mode 100644 vendor/google.golang.org/api/oauth2/v2/oauth2-gen.go create mode 100644 vendor/google.golang.org/api/pagespeedonline/v1/pagespeedonline-api.json create mode 100644 vendor/google.golang.org/api/pagespeedonline/v1/pagespeedonline-gen.go create mode 100644 vendor/google.golang.org/api/plus/v1/plus-api.json create mode 100644 vendor/google.golang.org/api/plus/v1/plus-gen.go create mode 100644 vendor/google.golang.org/api/plusdomains/v1/plusdomains-api.json create mode 100644 vendor/google.golang.org/api/plusdomains/v1/plusdomains-gen.go create mode 100644 vendor/google.golang.org/api/prediction/v1.2/prediction-api.json create mode 100644 vendor/google.golang.org/api/prediction/v1.2/prediction-gen.go create mode 100644 vendor/google.golang.org/api/prediction/v1.3/prediction-api.json create mode 100644 vendor/google.golang.org/api/prediction/v1.3/prediction-gen.go create mode 100644 vendor/google.golang.org/api/prediction/v1.4/prediction-api.json create mode 100644 vendor/google.golang.org/api/prediction/v1.4/prediction-gen.go create mode 100644 vendor/google.golang.org/api/pubsub/v1beta1/pubsub-api.json create mode 100644 vendor/google.golang.org/api/pubsub/v1beta1/pubsub-gen.go create mode 100644 vendor/google.golang.org/api/qpxexpress/v1/qpxexpress-api.json create mode 100644 vendor/google.golang.org/api/qpxexpress/v1/qpxexpress-gen.go create mode 100644 vendor/google.golang.org/api/replicapool/v1beta1/replicapool-api.json create mode 100644 vendor/google.golang.org/api/replicapool/v1beta1/replicapool-gen.go create mode 100644 vendor/google.golang.org/api/replicapool/v1beta2/replicapool-api.json create mode 100644 vendor/google.golang.org/api/replicapool/v1beta2/replicapool-gen.go create mode 100644 vendor/google.golang.org/api/replicapoolupdater/v1beta1/replicapoolupdater-api.json create mode 100644 vendor/google.golang.org/api/replicapoolupdater/v1beta1/replicapoolupdater-gen.go create mode 100644 vendor/google.golang.org/api/reseller/v1/reseller-api.json create mode 100644 vendor/google.golang.org/api/reseller/v1/reseller-gen.go create mode 100644 vendor/google.golang.org/api/reseller/v1sandbox/reseller-api.json create mode 100644 vendor/google.golang.org/api/reseller/v1sandbox/reseller-gen.go create mode 100644 vendor/google.golang.org/api/resourceviews/v1beta1/resourceviews-api.json create mode 100644 vendor/google.golang.org/api/resourceviews/v1beta1/resourceviews-gen.go create mode 100644 vendor/google.golang.org/api/resourceviews/v1beta2/resourceviews-api.json create mode 100644 vendor/google.golang.org/api/resourceviews/v1beta2/resourceviews-gen.go create mode 100644 vendor/google.golang.org/api/siteverification/v1/siteverification-api.json create mode 100644 vendor/google.golang.org/api/siteverification/v1/siteverification-gen.go create mode 100644 vendor/google.golang.org/api/spectrum/v1explorer/spectrum-api.json create mode 100644 vendor/google.golang.org/api/spectrum/v1explorer/spectrum-gen.go create mode 100644 vendor/google.golang.org/api/sqladmin/v1beta1/sqladmin-api.json create mode 100644 vendor/google.golang.org/api/sqladmin/v1beta1/sqladmin-gen.go create mode 100644 vendor/google.golang.org/api/sqladmin/v1beta3/sqladmin-api.json create mode 100644 vendor/google.golang.org/api/sqladmin/v1beta3/sqladmin-gen.go create mode 100644 vendor/google.golang.org/api/storage/v1/storage-api.json create mode 100644 vendor/google.golang.org/api/storage/v1/storage-gen.go create mode 100644 vendor/google.golang.org/api/storage/v1beta1/storage-api.json create mode 100644 vendor/google.golang.org/api/storage/v1beta1/storage-gen.go create mode 100644 vendor/google.golang.org/api/storage/v1beta2/storage-api.json create mode 100644 vendor/google.golang.org/api/storage/v1beta2/storage-gen.go create mode 100644 vendor/google.golang.org/api/tagmanager/v1/tagmanager-api.json create mode 100644 vendor/google.golang.org/api/tagmanager/v1/tagmanager-gen.go create mode 100644 vendor/google.golang.org/api/taskqueue/v1beta1/taskqueue-api.json create mode 100644 vendor/google.golang.org/api/taskqueue/v1beta1/taskqueue-gen.go create mode 100644 vendor/google.golang.org/api/taskqueue/v1beta2/taskqueue-api.json create mode 100644 vendor/google.golang.org/api/taskqueue/v1beta2/taskqueue-gen.go create mode 100644 vendor/google.golang.org/api/tasks/v1/tasks-api.json create mode 100644 vendor/google.golang.org/api/tasks/v1/tasks-gen.go create mode 100644 vendor/google.golang.org/api/translate/v2/translate-api.json create mode 100644 vendor/google.golang.org/api/translate/v2/translate-gen.go create mode 100644 vendor/google.golang.org/api/urlshortener/v1/urlshortener-api.json create mode 100644 vendor/google.golang.org/api/urlshortener/v1/urlshortener-gen.go create mode 100644 vendor/google.golang.org/api/webfonts/v1/webfonts-api.json create mode 100644 vendor/google.golang.org/api/webfonts/v1/webfonts-gen.go create mode 100644 vendor/google.golang.org/api/webmasters/v3/webmasters-api.json create mode 100644 vendor/google.golang.org/api/webmasters/v3/webmasters-gen.go create mode 100644 vendor/google.golang.org/api/youtube/v3/youtube-api.json create mode 100644 vendor/google.golang.org/api/youtube/v3/youtube-gen.go create mode 100644 vendor/google.golang.org/api/youtubeanalytics/v1/youtubeanalytics-api.json create mode 100644 vendor/google.golang.org/api/youtubeanalytics/v1/youtubeanalytics-gen.go create mode 100644 vendor/google.golang.org/api/youtubeanalytics/v1beta1/youtubeanalytics-api.json create mode 100644 vendor/google.golang.org/api/youtubeanalytics/v1beta1/youtubeanalytics-gen.go create mode 100644 vendor/gopkg.in/alexcesaro/quotedprintable.v3/encodedword_test.go create mode 100644 vendor/gopkg.in/alexcesaro/quotedprintable.v3/reader_test.go create mode 100644 vendor/gopkg.in/alexcesaro/quotedprintable.v3/writer_test.go create mode 100644 vendor/gopkg.in/asn1-ber.v1/ber_test.go create mode 100644 vendor/gopkg.in/asn1-ber.v1/header_test.go create mode 100644 vendor/gopkg.in/asn1-ber.v1/identifier_test.go create mode 100644 vendor/gopkg.in/asn1-ber.v1/length_test.go create mode 100644 vendor/gopkg.in/asn1-ber.v1/suite_test.go create mode 100644 vendor/gopkg.in/gomail.v2/auth_test.go create mode 100644 vendor/gopkg.in/gomail.v2/example_test.go create mode 100644 vendor/gopkg.in/gomail.v2/message_test.go create mode 100644 vendor/gopkg.in/gomail.v2/send_test.go create mode 100644 vendor/gopkg.in/gomail.v2/smtp_test.go create mode 100644 vendor/gopkg.in/gorp.v1/gorp_test.go mode change 100644 => 100755 vendor/gopkg.in/gorp.v1/test_all.sh create mode 100644 vendor/gopkg.in/ldap.v2/dn_test.go create mode 100644 vendor/gopkg.in/ldap.v2/example_test.go create mode 100644 vendor/gopkg.in/ldap.v2/filter_test.go create mode 100644 vendor/gopkg.in/ldap.v2/ldap_test.go create mode 100644 vendor/gopkg.in/ldap.v2/search_test.go diff --git a/vendor/github.com/PuerkitoBio/goquery/array_test.go b/vendor/github.com/PuerkitoBio/goquery/array_test.go new file mode 100644 index 00000000..1dda5256 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/array_test.go @@ -0,0 +1,180 @@ +package goquery + +import ( + "testing" +) + +func TestFirst(t *testing.T) { + sel := Doc().Find(".pvk-content").First() + assertLength(t, sel.Nodes, 1) +} + +func TestFirstEmpty(t *testing.T) { + sel := Doc().Find(".pvk-zzcontentzz").First() + assertLength(t, sel.Nodes, 0) +} + +func TestFirstRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.First().End() + assertEqual(t, sel, sel2) +} + +func TestLast(t *testing.T) { + sel := Doc().Find(".pvk-content").Last() + assertLength(t, sel.Nodes, 1) + + // Should contain Footer + foot := Doc().Find(".footer") + if !sel.Contains(foot.Nodes[0]) { + t.Error("Last .pvk-content should contain .footer.") + } +} + +func TestLastEmpty(t *testing.T) { + sel := Doc().Find(".pvk-zzcontentzz").Last() + assertLength(t, sel.Nodes, 0) +} + +func TestLastRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Last().End() + assertEqual(t, sel, sel2) +} + +func TestEq(t *testing.T) { + sel := Doc().Find(".pvk-content").Eq(1) + assertLength(t, sel.Nodes, 1) +} + +func TestEqNegative(t *testing.T) { + sel := Doc().Find(".pvk-content").Eq(-1) + assertLength(t, sel.Nodes, 1) + + // Should contain Footer + foot := Doc().Find(".footer") + if !sel.Contains(foot.Nodes[0]) { + t.Error("Index -1 of .pvk-content should contain .footer.") + } +} + +func TestEqEmpty(t *testing.T) { + sel := Doc().Find("something_random_that_does_not_exists").Eq(0) + assertLength(t, sel.Nodes, 0) +} + +func TestEqInvalidPositive(t *testing.T) { + sel := Doc().Find(".pvk-content").Eq(3) + assertLength(t, sel.Nodes, 0) +} + +func TestEqInvalidNegative(t *testing.T) { + sel := Doc().Find(".pvk-content").Eq(-4) + assertLength(t, sel.Nodes, 0) +} + +func TestEqRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Eq(1).End() + assertEqual(t, sel, sel2) +} + +func TestSlice(t *testing.T) { + sel := Doc().Find(".pvk-content").Slice(0, 2) + + assertLength(t, sel.Nodes, 2) +} + +func TestSliceOutOfBounds(t *testing.T) { + defer assertPanic(t) + Doc().Find(".pvk-content").Slice(2, 12) +} + +func TestNegativeSliceStart(t *testing.T) { + sel := Doc().Find(".container-fluid").Slice(-2, 3) + assertLength(t, sel.Nodes, 1) + assertSelectionIs(t, sel.Eq(0), "#cf3") +} + +func TestNegativeSliceEnd(t *testing.T) { + sel := Doc().Find(".container-fluid").Slice(1, -1) + assertLength(t, sel.Nodes, 2) + assertSelectionIs(t, sel.Eq(0), "#cf2") + assertSelectionIs(t, sel.Eq(1), "#cf3") +} + +func TestNegativeSliceBoth(t *testing.T) { + sel := Doc().Find(".container-fluid").Slice(-3, -1) + assertLength(t, sel.Nodes, 2) + assertSelectionIs(t, sel.Eq(0), "#cf2") + assertSelectionIs(t, sel.Eq(1), "#cf3") +} + +func TestNegativeSliceOutOfBounds(t *testing.T) { + defer assertPanic(t) + Doc().Find(".container-fluid").Slice(-12, -7) +} + +func TestSliceRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Slice(0, 2).End() + assertEqual(t, sel, sel2) +} + +func TestGet(t *testing.T) { + sel := Doc().Find(".pvk-content") + node := sel.Get(1) + if sel.Nodes[1] != node { + t.Errorf("Expected node %v to be %v.", node, sel.Nodes[1]) + } +} + +func TestGetNegative(t *testing.T) { + sel := Doc().Find(".pvk-content") + node := sel.Get(-3) + if sel.Nodes[0] != node { + t.Errorf("Expected node %v to be %v.", node, sel.Nodes[0]) + } +} + +func TestGetInvalid(t *testing.T) { + defer assertPanic(t) + sel := Doc().Find(".pvk-content") + sel.Get(129) +} + +func TestIndex(t *testing.T) { + sel := Doc().Find(".pvk-content") + if i := sel.Index(); i != 1 { + t.Errorf("Expected index of 1, got %v.", i) + } +} + +func TestIndexSelector(t *testing.T) { + sel := Doc().Find(".hero-unit") + if i := sel.IndexSelector("div"); i != 4 { + t.Errorf("Expected index of 4, got %v.", i) + } +} + +func TestIndexOfNode(t *testing.T) { + sel := Doc().Find("div.pvk-gutter") + if i := sel.IndexOfNode(sel.Nodes[1]); i != 1 { + t.Errorf("Expected index of 1, got %v.", i) + } +} + +func TestIndexOfNilNode(t *testing.T) { + sel := Doc().Find("div.pvk-gutter") + if i := sel.IndexOfNode(nil); i != -1 { + t.Errorf("Expected index of -1, got %v.", i) + } +} + +func TestIndexOfSelection(t *testing.T) { + sel := Doc().Find("div") + sel2 := Doc().Find(".hero-unit") + if i := sel.IndexOfSelection(sel2); i != 4 { + t.Errorf("Expected index of 4, got %v.", i) + } +} diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_array_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_array_test.go new file mode 100644 index 00000000..6d5581eb --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/bench_array_test.go @@ -0,0 +1,112 @@ +package goquery + +import ( + "testing" +) + +func BenchmarkFirst(b *testing.B) { + b.StopTimer() + sel := DocB().Find("dd") + b.StartTimer() + for i := 0; i < b.N; i++ { + sel.First() + } +} + +func BenchmarkLast(b *testing.B) { + b.StopTimer() + sel := DocB().Find("dd") + b.StartTimer() + for i := 0; i < b.N; i++ { + sel.Last() + } +} + +func BenchmarkEq(b *testing.B) { + b.StopTimer() + sel := DocB().Find("dd") + j := 0 + b.StartTimer() + for i := 0; i < b.N; i++ { + sel.Eq(j) + if j++; j >= sel.Length() { + j = 0 + } + } +} + +func BenchmarkSlice(b *testing.B) { + b.StopTimer() + sel := DocB().Find("dd") + j := 0 + b.StartTimer() + for i := 0; i < b.N; i++ { + sel.Slice(j, j+4) + if j++; j >= (sel.Length() - 4) { + j = 0 + } + } +} + +func BenchmarkGet(b *testing.B) { + b.StopTimer() + sel := DocB().Find("dd") + j := 0 + b.StartTimer() + for i := 0; i < b.N; i++ { + sel.Get(j) + if j++; j >= sel.Length() { + j = 0 + } + } +} + +func BenchmarkIndex(b *testing.B) { + var j int + + b.StopTimer() + sel := DocB().Find("#Main") + b.StartTimer() + for i := 0; i < b.N; i++ { + j = sel.Index() + } + b.Logf("Index=%d", j) +} + +func BenchmarkIndexSelector(b *testing.B) { + var j int + + b.StopTimer() + sel := DocB().Find("#manual-nav dl dd:nth-child(1)") + b.StartTimer() + for i := 0; i < b.N; i++ { + j = sel.IndexSelector("dd") + } + b.Logf("IndexSelector=%d", j) +} + +func BenchmarkIndexOfNode(b *testing.B) { + var j int + + b.StopTimer() + sel := DocB().Find("span a") + sel2 := DocB().Find("span a:nth-child(3)") + n := sel2.Get(0) + b.StartTimer() + for i := 0; i < b.N; i++ { + j = sel.IndexOfNode(n) + } + b.Logf("IndexOfNode=%d", j) +} + +func BenchmarkIndexOfSelection(b *testing.B) { + var j int + b.StopTimer() + sel := DocB().Find("span a") + sel2 := DocB().Find("span a:nth-child(3)") + b.StartTimer() + for i := 0; i < b.N; i++ { + j = sel.IndexOfSelection(sel2) + } + b.Logf("IndexOfSelection=%d", j) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_example_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_example_test.go new file mode 100644 index 00000000..a5474310 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/bench_example_test.go @@ -0,0 +1,42 @@ +package goquery + +import ( + "bytes" + "fmt" + "strconv" + "testing" +) + +func BenchmarkMetalReviewExample(b *testing.B) { + var n int + var buf bytes.Buffer + + b.StopTimer() + doc := loadDoc("metalreview.html") + b.StartTimer() + for i := 0; i < b.N; i++ { + doc.Find(".slider-row:nth-child(1) .slider-item").Each(func(i int, s *Selection) { + var band, title string + var score float64 + var e error + + n++ + // For each item found, get the band, title and score, and print it + band = s.Find("strong").Text() + title = s.Find("em").Text() + if score, e = strconv.ParseFloat(s.Find(".score").Text(), 64); e != nil { + // Not a valid float, ignore score + if n <= 4 { + buf.WriteString(fmt.Sprintf("Review %d: %s - %s.\n", i, band, title)) + } + } else { + // Print all, including score + if n <= 4 { + buf.WriteString(fmt.Sprintf("Review %d: %s - %s (%2.1f).\n", i, band, title, score)) + } + } + }) + } + b.Log(buf.String()) + b.Logf("MetalReviewExample=%d", n) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_expand_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_expand_test.go new file mode 100644 index 00000000..aee7d81d --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/bench_expand_test.go @@ -0,0 +1,72 @@ +package goquery + +import ( + "testing" +) + +func BenchmarkAdd(b *testing.B) { + var n int + + b.StopTimer() + sel := DocB().Find("dd") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Add("h2[title]").Length() + } else { + sel.Add("h2[title]") + } + } + b.Logf("Add=%d", n) +} + +func BenchmarkAddSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocB().Find("dd") + sel2 := DocB().Find("h2[title]") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.AddSelection(sel2).Length() + } else { + sel.AddSelection(sel2) + } + } + b.Logf("AddSelection=%d", n) +} + +func BenchmarkAddNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocB().Find("dd") + sel2 := DocB().Find("h2[title]") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.AddNodes(nodes...).Length() + } else { + sel.AddNodes(nodes...) + } + } + b.Logf("AddNodes=%d", n) +} + +func BenchmarkAndSelf(b *testing.B) { + var n int + + b.StopTimer() + sel := DocB().Find("dd").Parent() + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.AndSelf().Length() + } else { + sel.AndSelf() + } + } + b.Logf("AndSelf=%d", n) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_filter_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_filter_test.go new file mode 100644 index 00000000..05ffaaa3 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/bench_filter_test.go @@ -0,0 +1,212 @@ +package goquery + +import ( + "testing" +) + +func BenchmarkFilter(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Filter(".toclevel-1").Length() + } else { + sel.Filter(".toclevel-1") + } + } + b.Logf("Filter=%d", n) +} + +func BenchmarkNot(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Not(".toclevel-2").Length() + } else { + sel.Filter(".toclevel-2") + } + } + b.Logf("Not=%d", n) +} + +func BenchmarkFilterFunction(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + f := func(i int, s *Selection) bool { + return len(s.Get(0).Attr) > 0 + } + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.FilterFunction(f).Length() + } else { + sel.FilterFunction(f) + } + } + b.Logf("FilterFunction=%d", n) +} + +func BenchmarkNotFunction(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + f := func(i int, s *Selection) bool { + return len(s.Get(0).Attr) > 0 + } + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NotFunction(f).Length() + } else { + sel.NotFunction(f) + } + } + b.Logf("NotFunction=%d", n) +} + +func BenchmarkFilterNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + sel2 := DocW().Find(".toclevel-2") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.FilterNodes(nodes...).Length() + } else { + sel.FilterNodes(nodes...) + } + } + b.Logf("FilterNodes=%d", n) +} + +func BenchmarkNotNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + sel2 := DocW().Find(".toclevel-1") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NotNodes(nodes...).Length() + } else { + sel.NotNodes(nodes...) + } + } + b.Logf("NotNodes=%d", n) +} + +func BenchmarkFilterSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + sel2 := DocW().Find(".toclevel-2") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.FilterSelection(sel2).Length() + } else { + sel.FilterSelection(sel2) + } + } + b.Logf("FilterSelection=%d", n) +} + +func BenchmarkNotSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + sel2 := DocW().Find(".toclevel-1") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NotSelection(sel2).Length() + } else { + sel.NotSelection(sel2) + } + } + b.Logf("NotSelection=%d", n) +} + +func BenchmarkHas(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Has(".editsection").Length() + } else { + sel.Has(".editsection") + } + } + b.Logf("Has=%d", n) +} + +func BenchmarkHasNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + sel2 := DocW().Find(".tocnumber") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.HasNodes(nodes...).Length() + } else { + sel.HasNodes(nodes...) + } + } + b.Logf("HasNodes=%d", n) +} + +func BenchmarkHasSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + sel2 := DocW().Find(".tocnumber") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.HasSelection(sel2).Length() + } else { + sel.HasSelection(sel2) + } + } + b.Logf("HasSelection=%d", n) +} + +func BenchmarkEnd(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li").Has(".tocnumber") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.End().Length() + } else { + sel.End() + } + } + b.Logf("End=%d", n) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_iteration_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_iteration_test.go new file mode 100644 index 00000000..f1b55308 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/bench_iteration_test.go @@ -0,0 +1,62 @@ +package goquery + +import ( + "testing" +) + +func BenchmarkEach(b *testing.B) { + var tmp, n int + + b.StopTimer() + sel := DocW().Find("td") + f := func(i int, s *Selection) { + tmp++ + } + b.StartTimer() + for i := 0; i < b.N; i++ { + sel.Each(f) + if n == 0 { + n = tmp + } + } + b.Logf("Each=%d", n) +} + +func BenchmarkMap(b *testing.B) { + var tmp, n int + + b.StopTimer() + sel := DocW().Find("td") + f := func(i int, s *Selection) string { + tmp++ + return string(tmp) + } + b.StartTimer() + for i := 0; i < b.N; i++ { + sel.Map(f) + if n == 0 { + n = tmp + } + } + b.Logf("Map=%d", n) +} + +func BenchmarkEachWithBreak(b *testing.B) { + var tmp, n int + + b.StopTimer() + sel := DocW().Find("td") + f := func(i int, s *Selection) bool { + tmp++ + return tmp < 10 + } + b.StartTimer() + for i := 0; i < b.N; i++ { + tmp = 0 + sel.EachWithBreak(f) + if n == 0 { + n = tmp + } + } + b.Logf("Each=%d", n) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_property_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_property_test.go new file mode 100644 index 00000000..0e616036 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/bench_property_test.go @@ -0,0 +1,47 @@ +package goquery + +import ( + "testing" +) + +func BenchmarkAttr(b *testing.B) { + var s string + + b.StopTimer() + sel := DocW().Find("h1") + b.StartTimer() + for i := 0; i < b.N; i++ { + s, _ = sel.Attr("id") + } + b.Logf("Attr=%s", s) +} + +func BenchmarkText(b *testing.B) { + b.StopTimer() + sel := DocW().Find("h2") + b.StartTimer() + for i := 0; i < b.N; i++ { + sel.Text() + } +} + +func BenchmarkLength(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + b.StartTimer() + for i := 0; i < b.N; i++ { + n = sel.Length() + } + b.Logf("Length=%d", n) +} + +func BenchmarkHtml(b *testing.B) { + b.StopTimer() + sel := DocW().Find("h2") + b.StartTimer() + for i := 0; i < b.N; i++ { + sel.Html() + } +} diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_query_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_query_test.go new file mode 100644 index 00000000..3d3a98f8 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/bench_query_test.go @@ -0,0 +1,97 @@ +package goquery + +import ( + "testing" +) + +func BenchmarkIs(b *testing.B) { + var y bool + + b.StopTimer() + sel := DocW().Find("li") + b.StartTimer() + for i := 0; i < b.N; i++ { + y = sel.Is(".toclevel-2") + } + b.Logf("Is=%v", y) +} + +func BenchmarkIsPositional(b *testing.B) { + var y bool + + b.StopTimer() + sel := DocW().Find("li") + b.StartTimer() + for i := 0; i < b.N; i++ { + y = sel.Is("li:nth-child(2)") + } + b.Logf("IsPositional=%v", y) +} + +func BenchmarkIsFunction(b *testing.B) { + var y bool + + b.StopTimer() + sel := DocW().Find(".toclevel-1") + f := func(i int, s *Selection) bool { + return i == 8 + } + b.StartTimer() + for i := 0; i < b.N; i++ { + y = sel.IsFunction(f) + } + b.Logf("IsFunction=%v", y) +} + +func BenchmarkIsSelection(b *testing.B) { + var y bool + + b.StopTimer() + sel := DocW().Find("li") + sel2 := DocW().Find(".toclevel-2") + b.StartTimer() + for i := 0; i < b.N; i++ { + y = sel.IsSelection(sel2) + } + b.Logf("IsSelection=%v", y) +} + +func BenchmarkIsNodes(b *testing.B) { + var y bool + + b.StopTimer() + sel := DocW().Find("li") + sel2 := DocW().Find(".toclevel-2") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + y = sel.IsNodes(nodes...) + } + b.Logf("IsNodes=%v", y) +} + +func BenchmarkHasClass(b *testing.B) { + var y bool + + b.StopTimer() + sel := DocW().Find("span") + b.StartTimer() + for i := 0; i < b.N; i++ { + y = sel.HasClass("official") + } + b.Logf("HasClass=%v", y) +} + +func BenchmarkContains(b *testing.B) { + var y bool + + b.StopTimer() + sel := DocW().Find("span.url") + sel2 := DocW().Find("a[rel=\"nofollow\"]") + node := sel2.Nodes[0] + b.StartTimer() + for i := 0; i < b.N; i++ { + y = sel.Contains(node) + } + b.Logf("Contains=%v", y) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_traversal_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_traversal_test.go new file mode 100644 index 00000000..43610f6f --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/bench_traversal_test.go @@ -0,0 +1,716 @@ +package goquery + +import ( + "testing" +) + +func BenchmarkFind(b *testing.B) { + var n int + + for i := 0; i < b.N; i++ { + if n == 0 { + n = DocB().Find("dd").Length() + + } else { + DocB().Find("dd") + } + } + b.Logf("Find=%d", n) +} + +func BenchmarkFindWithinSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("ul") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Find("a[class]").Length() + } else { + sel.Find("a[class]") + } + } + b.Logf("FindWithinSelection=%d", n) +} + +func BenchmarkFindSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("ul") + sel2 := DocW().Find("span") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.FindSelection(sel2).Length() + } else { + sel.FindSelection(sel2) + } + } + b.Logf("FindSelection=%d", n) +} + +func BenchmarkFindNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("ul") + sel2 := DocW().Find("span") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.FindNodes(nodes...).Length() + } else { + sel.FindNodes(nodes...) + } + } + b.Logf("FindNodes=%d", n) +} + +func BenchmarkContents(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find(".toclevel-1") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Contents().Length() + } else { + sel.Contents() + } + } + b.Logf("Contents=%d", n) +} + +func BenchmarkContentsFiltered(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find(".toclevel-1") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ContentsFiltered("a[href=\"#Examples\"]").Length() + } else { + sel.ContentsFiltered("a[href=\"#Examples\"]") + } + } + b.Logf("ContentsFiltered=%d", n) +} + +func BenchmarkChildren(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find(".toclevel-2") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Children().Length() + } else { + sel.Children() + } + } + b.Logf("Children=%d", n) +} + +func BenchmarkChildrenFiltered(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h3") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ChildrenFiltered(".editsection").Length() + } else { + sel.ChildrenFiltered(".editsection") + } + } + b.Logf("ChildrenFiltered=%d", n) +} + +func BenchmarkParent(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Parent().Length() + } else { + sel.Parent() + } + } + b.Logf("Parent=%d", n) +} + +func BenchmarkParentFiltered(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ParentFiltered("ul[id]").Length() + } else { + sel.ParentFiltered("ul[id]") + } + } + b.Logf("ParentFiltered=%d", n) +} + +func BenchmarkParents(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("th a") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Parents().Length() + } else { + sel.Parents() + } + } + b.Logf("Parents=%d", n) +} + +func BenchmarkParentsFiltered(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("th a") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ParentsFiltered("tr").Length() + } else { + sel.ParentsFiltered("tr") + } + } + b.Logf("ParentsFiltered=%d", n) +} + +func BenchmarkParentsUntil(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("th a") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ParentsUntil("table").Length() + } else { + sel.ParentsUntil("table") + } + } + b.Logf("ParentsUntil=%d", n) +} + +func BenchmarkParentsUntilSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("th a") + sel2 := DocW().Find("#content") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ParentsUntilSelection(sel2).Length() + } else { + sel.ParentsUntilSelection(sel2) + } + } + b.Logf("ParentsUntilSelection=%d", n) +} + +func BenchmarkParentsUntilNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("th a") + sel2 := DocW().Find("#content") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ParentsUntilNodes(nodes...).Length() + } else { + sel.ParentsUntilNodes(nodes...) + } + } + b.Logf("ParentsUntilNodes=%d", n) +} + +func BenchmarkParentsFilteredUntil(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find(".toclevel-1 a") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ParentsFilteredUntil(":nth-child(1)", "ul").Length() + } else { + sel.ParentsFilteredUntil(":nth-child(1)", "ul") + } + } + b.Logf("ParentsFilteredUntil=%d", n) +} + +func BenchmarkParentsFilteredUntilSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find(".toclevel-1 a") + sel2 := DocW().Find("ul") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ParentsFilteredUntilSelection(":nth-child(1)", sel2).Length() + } else { + sel.ParentsFilteredUntilSelection(":nth-child(1)", sel2) + } + } + b.Logf("ParentsFilteredUntilSelection=%d", n) +} + +func BenchmarkParentsFilteredUntilNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find(".toclevel-1 a") + sel2 := DocW().Find("ul") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ParentsFilteredUntilNodes(":nth-child(1)", nodes...).Length() + } else { + sel.ParentsFilteredUntilNodes(":nth-child(1)", nodes...) + } + } + b.Logf("ParentsFilteredUntilNodes=%d", n) +} + +func BenchmarkSiblings(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("ul li:nth-child(1)") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Siblings().Length() + } else { + sel.Siblings() + } + } + b.Logf("Siblings=%d", n) +} + +func BenchmarkSiblingsFiltered(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("ul li:nth-child(1)") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.SiblingsFiltered("[class]").Length() + } else { + sel.SiblingsFiltered("[class]") + } + } + b.Logf("SiblingsFiltered=%d", n) +} + +func BenchmarkNext(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:nth-child(1)") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Next().Length() + } else { + sel.Next() + } + } + b.Logf("Next=%d", n) +} + +func BenchmarkNextFiltered(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:nth-child(1)") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NextFiltered("[class]").Length() + } else { + sel.NextFiltered("[class]") + } + } + b.Logf("NextFiltered=%d", n) +} + +func BenchmarkNextAll(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:nth-child(3)") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NextAll().Length() + } else { + sel.NextAll() + } + } + b.Logf("NextAll=%d", n) +} + +func BenchmarkNextAllFiltered(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:nth-child(3)") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NextAllFiltered("[class]").Length() + } else { + sel.NextAllFiltered("[class]") + } + } + b.Logf("NextAllFiltered=%d", n) +} + +func BenchmarkPrev(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:last-child") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Prev().Length() + } else { + sel.Prev() + } + } + b.Logf("Prev=%d", n) +} + +func BenchmarkPrevFiltered(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:last-child") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.PrevFiltered("[class]").Length() + } else { + sel.PrevFiltered("[class]") + } + } + // There is one more Prev li with a class, compared to Next li with a class + // (confirmed by looking at the HTML, this is ok) + b.Logf("PrevFiltered=%d", n) +} + +func BenchmarkPrevAll(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:nth-child(4)") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.PrevAll().Length() + } else { + sel.PrevAll() + } + } + b.Logf("PrevAll=%d", n) +} + +func BenchmarkPrevAllFiltered(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:nth-child(4)") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.PrevAllFiltered("[class]").Length() + } else { + sel.PrevAllFiltered("[class]") + } + } + b.Logf("PrevAllFiltered=%d", n) +} + +func BenchmarkNextUntil(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:first-child") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NextUntil(":nth-child(4)").Length() + } else { + sel.NextUntil(":nth-child(4)") + } + } + b.Logf("NextUntil=%d", n) +} + +func BenchmarkNextUntilSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + sel2 := DocW().Find("ul") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NextUntilSelection(sel2).Length() + } else { + sel.NextUntilSelection(sel2) + } + } + b.Logf("NextUntilSelection=%d", n) +} + +func BenchmarkNextUntilNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + sel2 := DocW().Find("p") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NextUntilNodes(nodes...).Length() + } else { + sel.NextUntilNodes(nodes...) + } + } + b.Logf("NextUntilNodes=%d", n) +} + +func BenchmarkPrevUntil(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("li:last-child") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.PrevUntil(":nth-child(4)").Length() + } else { + sel.PrevUntil(":nth-child(4)") + } + } + b.Logf("PrevUntil=%d", n) +} + +func BenchmarkPrevUntilSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + sel2 := DocW().Find("ul") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.PrevUntilSelection(sel2).Length() + } else { + sel.PrevUntilSelection(sel2) + } + } + b.Logf("PrevUntilSelection=%d", n) +} + +func BenchmarkPrevUntilNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + sel2 := DocW().Find("p") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.PrevUntilNodes(nodes...).Length() + } else { + sel.PrevUntilNodes(nodes...) + } + } + b.Logf("PrevUntilNodes=%d", n) +} + +func BenchmarkNextFilteredUntil(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NextFilteredUntil("p", "div").Length() + } else { + sel.NextFilteredUntil("p", "div") + } + } + b.Logf("NextFilteredUntil=%d", n) +} + +func BenchmarkNextFilteredUntilSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + sel2 := DocW().Find("div") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NextFilteredUntilSelection("p", sel2).Length() + } else { + sel.NextFilteredUntilSelection("p", sel2) + } + } + b.Logf("NextFilteredUntilSelection=%d", n) +} + +func BenchmarkNextFilteredUntilNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + sel2 := DocW().Find("div") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.NextFilteredUntilNodes("p", nodes...).Length() + } else { + sel.NextFilteredUntilNodes("p", nodes...) + } + } + b.Logf("NextFilteredUntilNodes=%d", n) +} + +func BenchmarkPrevFilteredUntil(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.PrevFilteredUntil("p", "div").Length() + } else { + sel.PrevFilteredUntil("p", "div") + } + } + b.Logf("PrevFilteredUntil=%d", n) +} + +func BenchmarkPrevFilteredUntilSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + sel2 := DocW().Find("div") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.PrevFilteredUntilSelection("p", sel2).Length() + } else { + sel.PrevFilteredUntilSelection("p", sel2) + } + } + b.Logf("PrevFilteredUntilSelection=%d", n) +} + +func BenchmarkPrevFilteredUntilNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocW().Find("h2") + sel2 := DocW().Find("div") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.PrevFilteredUntilNodes("p", nodes...).Length() + } else { + sel.PrevFilteredUntilNodes("p", nodes...) + } + } + b.Logf("PrevFilteredUntilNodes=%d", n) +} + +func BenchmarkClosest(b *testing.B) { + var n int + + b.StopTimer() + sel := Doc().Find(".container-fluid") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Closest(".pvk-content").Length() + } else { + sel.Closest(".pvk-content") + } + } + b.Logf("Closest=%d", n) +} + +func BenchmarkClosestSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".pvk-content") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ClosestSelection(sel2).Length() + } else { + sel.ClosestSelection(sel2) + } + } + b.Logf("ClosestSelection=%d", n) +} + +func BenchmarkClosestNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := Doc().Find(".container-fluid") + nodes := Doc().Find(".pvk-content").Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.ClosestNodes(nodes...).Length() + } else { + sel.ClosestNodes(nodes...) + } + } + b.Logf("ClosestNodes=%d", n) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/example_test.go b/vendor/github.com/PuerkitoBio/goquery/example_test.go new file mode 100644 index 00000000..9e8c3c54 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/example_test.go @@ -0,0 +1,32 @@ +package goquery + +import ( + "fmt" + "log" + + // In real use, this import would be required (not in this example, since it + // is part of the goquery package) + //"github.com/PuerkitoBio/goquery" +) + +// This example scrapes the reviews shown on the home page of metalsucks.net. +func ExampleScrape_MetalSucks() { + // Load the HTML document (in real use, the type would be *goquery.Document) + doc, err := NewDocument("http://metalsucks.net") + if err != nil { + log.Fatal(err) + } + + // Find the review items (the type of the Selection would be *goquery.Selection) + doc.Find(".reviews-wrap article .review-rhs").Each(func(i int, s *Selection) { + // For each item found, get the band and title + band := s.Find("h3").Text() + title := s.Find("i").Text() + fmt.Printf("Review %d: %s - %s\n", i, band, title) + }) + // To see the output of the Example while running the test suite (go test), simply + // remove the leading "x" before Output on the next line. This will cause the + // example to fail (all the "real" tests should pass). + + // xOutput: voluntarily fail the Example output. +} diff --git a/vendor/github.com/PuerkitoBio/goquery/expand_test.go b/vendor/github.com/PuerkitoBio/goquery/expand_test.go new file mode 100644 index 00000000..cff69968 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/expand_test.go @@ -0,0 +1,68 @@ +package goquery + +import ( + "testing" +) + +func TestAdd(t *testing.T) { + sel := Doc().Find("div.row-fluid").Add("a") + assertLength(t, sel.Nodes, 19) +} + +func TestAddRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Add("a").End() + assertEqual(t, sel, sel2) +} + +func TestAddSelection(t *testing.T) { + sel := Doc().Find("div.row-fluid") + sel2 := Doc().Find("a") + sel = sel.AddSelection(sel2) + assertLength(t, sel.Nodes, 19) +} + +func TestAddSelectionNil(t *testing.T) { + sel := Doc().Find("div.row-fluid") + assertLength(t, sel.Nodes, 9) + + sel = sel.AddSelection(nil) + assertLength(t, sel.Nodes, 9) +} + +func TestAddSelectionRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Find("a") + sel2 = sel.AddSelection(sel2).End() + assertEqual(t, sel, sel2) +} + +func TestAddNodes(t *testing.T) { + sel := Doc().Find("div.pvk-gutter") + sel2 := Doc().Find(".pvk-content") + sel = sel.AddNodes(sel2.Nodes...) + assertLength(t, sel.Nodes, 9) +} + +func TestAddNodesNone(t *testing.T) { + sel := Doc().Find("div.pvk-gutter").AddNodes() + assertLength(t, sel.Nodes, 6) +} + +func TestAddNodesRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Find("a") + sel2 = sel.AddNodes(sel2.Nodes...).End() + assertEqual(t, sel, sel2) +} + +func TestAndSelf(t *testing.T) { + sel := Doc().Find(".span12").Last().AndSelf() + assertLength(t, sel.Nodes, 2) +} + +func TestAndSelfRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Find("a").AndSelf().End().End() + assertEqual(t, sel, sel2) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/filter_test.go b/vendor/github.com/PuerkitoBio/goquery/filter_test.go new file mode 100644 index 00000000..d5978b5c --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/filter_test.go @@ -0,0 +1,191 @@ +package goquery + +import ( + "testing" +) + +func TestFilter(t *testing.T) { + sel := Doc().Find(".span12").Filter(".alert") + assertLength(t, sel.Nodes, 1) +} + +func TestFilterNone(t *testing.T) { + sel := Doc().Find(".span12").Filter(".zzalert") + assertLength(t, sel.Nodes, 0) +} + +func TestFilterRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Filter(".alert").End() + assertEqual(t, sel, sel2) +} + +func TestFilterFunction(t *testing.T) { + sel := Doc().Find(".pvk-content").FilterFunction(func(i int, s *Selection) bool { + return i > 0 + }) + assertLength(t, sel.Nodes, 2) +} + +func TestFilterFunctionRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.FilterFunction(func(i int, s *Selection) bool { + return i > 0 + }).End() + assertEqual(t, sel, sel2) +} + +func TestFilterNode(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.FilterNodes(sel.Nodes[2]) + assertLength(t, sel2.Nodes, 1) +} + +func TestFilterNodeRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.FilterNodes(sel.Nodes[2]).End() + assertEqual(t, sel, sel2) +} + +func TestFilterSelection(t *testing.T) { + sel := Doc().Find(".link") + sel2 := Doc().Find("a[ng-click]") + sel3 := sel.FilterSelection(sel2) + assertLength(t, sel3.Nodes, 1) +} + +func TestFilterSelectionRollback(t *testing.T) { + sel := Doc().Find(".link") + sel2 := Doc().Find("a[ng-click]") + sel2 = sel.FilterSelection(sel2).End() + assertEqual(t, sel, sel2) +} + +func TestFilterSelectionNil(t *testing.T) { + var sel2 *Selection + + sel := Doc().Find(".link") + sel3 := sel.FilterSelection(sel2) + assertLength(t, sel3.Nodes, 0) +} + +func TestNot(t *testing.T) { + sel := Doc().Find(".span12").Not(".alert") + assertLength(t, sel.Nodes, 1) +} + +func TestNotRollback(t *testing.T) { + sel := Doc().Find(".span12") + sel2 := sel.Not(".alert").End() + assertEqual(t, sel, sel2) +} + +func TestNotNone(t *testing.T) { + sel := Doc().Find(".span12").Not(".zzalert") + assertLength(t, sel.Nodes, 2) +} + +func TestNotFunction(t *testing.T) { + sel := Doc().Find(".pvk-content").NotFunction(func(i int, s *Selection) bool { + return i > 0 + }) + assertLength(t, sel.Nodes, 1) +} + +func TestNotFunctionRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.NotFunction(func(i int, s *Selection) bool { + return i > 0 + }).End() + assertEqual(t, sel, sel2) +} + +func TestNotNode(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.NotNodes(sel.Nodes[2]) + assertLength(t, sel2.Nodes, 2) +} + +func TestNotNodeRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.NotNodes(sel.Nodes[2]).End() + assertEqual(t, sel, sel2) +} + +func TestNotSelection(t *testing.T) { + sel := Doc().Find(".link") + sel2 := Doc().Find("a[ng-click]") + sel3 := sel.NotSelection(sel2) + assertLength(t, sel3.Nodes, 6) +} + +func TestNotSelectionRollback(t *testing.T) { + sel := Doc().Find(".link") + sel2 := Doc().Find("a[ng-click]") + sel2 = sel.NotSelection(sel2).End() + assertEqual(t, sel, sel2) +} + +func TestIntersection(t *testing.T) { + sel := Doc().Find(".pvk-gutter") + sel2 := Doc().Find("div").Intersection(sel) + assertLength(t, sel2.Nodes, 6) +} + +func TestIntersectionRollback(t *testing.T) { + sel := Doc().Find(".pvk-gutter") + sel2 := Doc().Find("div") + sel2 = sel.Intersection(sel2).End() + assertEqual(t, sel, sel2) +} + +func TestHas(t *testing.T) { + sel := Doc().Find(".container-fluid").Has(".center-content") + assertLength(t, sel.Nodes, 2) + // Has() returns the high-level .container-fluid div, and the one that is the immediate parent of center-content +} + +func TestHasRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.Has(".center-content").End() + assertEqual(t, sel, sel2) +} + +func TestHasNodes(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".center-content") + sel = sel.HasNodes(sel2.Nodes...) + assertLength(t, sel.Nodes, 2) + // Has() returns the high-level .container-fluid div, and the one that is the immediate parent of center-content +} + +func TestHasNodesRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".center-content") + sel2 = sel.HasNodes(sel2.Nodes...).End() + assertEqual(t, sel, sel2) +} + +func TestHasSelection(t *testing.T) { + sel := Doc().Find("p") + sel2 := Doc().Find("small") + sel = sel.HasSelection(sel2) + assertLength(t, sel.Nodes, 1) +} + +func TestHasSelectionRollback(t *testing.T) { + sel := Doc().Find("p") + sel2 := Doc().Find("small") + sel2 = sel.HasSelection(sel2).End() + assertEqual(t, sel, sel2) +} + +func TestEnd(t *testing.T) { + sel := Doc().Find("p").Has("small").End() + assertLength(t, sel.Nodes, 4) +} + +func TestEndToTop(t *testing.T) { + sel := Doc().Find("p").Has("small").End().End().End() + assertLength(t, sel.Nodes, 0) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/iteration_test.go b/vendor/github.com/PuerkitoBio/goquery/iteration_test.go new file mode 100644 index 00000000..9b6aafb7 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/iteration_test.go @@ -0,0 +1,88 @@ +package goquery + +import ( + "testing" + + "golang.org/x/net/html" +) + +func TestEach(t *testing.T) { + var cnt int + + sel := Doc().Find(".hero-unit .row-fluid").Each(func(i int, n *Selection) { + cnt++ + t.Logf("At index %v, node %v", i, n.Nodes[0].Data) + }).Find("a") + + if cnt != 4 { + t.Errorf("Expected Each() to call function 4 times, got %v times.", cnt) + } + assertLength(t, sel.Nodes, 6) +} + +func TestEachWithBreak(t *testing.T) { + var cnt int + + sel := Doc().Find(".hero-unit .row-fluid").EachWithBreak(func(i int, n *Selection) bool { + cnt++ + t.Logf("At index %v, node %v", i, n.Nodes[0].Data) + return false + }).Find("a") + + if cnt != 1 { + t.Errorf("Expected Each() to call function 1 time, got %v times.", cnt) + } + assertLength(t, sel.Nodes, 6) +} + +func TestEachEmptySelection(t *testing.T) { + var cnt int + + sel := Doc().Find("zzzz") + sel.Each(func(i int, n *Selection) { + cnt++ + }) + if cnt > 0 { + t.Error("Expected Each() to not be called on empty Selection.") + } + sel2 := sel.Find("div") + assertLength(t, sel2.Nodes, 0) +} + +func TestMap(t *testing.T) { + sel := Doc().Find(".pvk-content") + vals := sel.Map(func(i int, s *Selection) string { + n := s.Get(0) + if n.Type == html.ElementNode { + return n.Data + } + return "" + }) + for _, v := range vals { + if v != "div" { + t.Error("Expected Map array result to be all 'div's.") + } + } + if len(vals) != 3 { + t.Errorf("Expected Map array result to have a length of 3, found %v.", len(vals)) + } +} + +func TestForRange(t *testing.T) { + sel := Doc().Find(".pvk-content") + initLen := sel.Length() + for i := range sel.Nodes { + single := sel.Eq(i) + //h, err := single.Html() + //if err != nil { + // t.Fatal(err) + //} + //fmt.Println(i, h) + if single.Length() != 1 { + t.Errorf("%d: expected length of 1, got %d", i, single.Length()) + } + } + if sel.Length() != initLen { + t.Errorf("expected initial selection to still have length %d, got %d", initLen, sel.Length()) + } +} diff --git a/vendor/github.com/PuerkitoBio/goquery/manipulation_test.go b/vendor/github.com/PuerkitoBio/goquery/manipulation_test.go new file mode 100644 index 00000000..f1c6e3ef --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/manipulation_test.go @@ -0,0 +1,453 @@ +package goquery + +import ( + "testing" +) + +const ( + wrapHtml = "
test string

" +) + +func TestAfter(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").After("#nf6") + + assertLength(t, doc.Find("#main #nf6").Nodes, 0) + assertLength(t, doc.Find("#foot #nf6").Nodes, 0) + assertLength(t, doc.Find("#main + #nf6").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestAfterMany(t *testing.T) { + doc := Doc2Clone() + doc.Find(".one").After("#nf6") + + assertLength(t, doc.Find("#foot #nf6").Nodes, 1) + assertLength(t, doc.Find("#main #nf6").Nodes, 1) + assertLength(t, doc.Find(".one + #nf6").Nodes, 2) + printSel(t, doc.Selection) +} + +func TestAfterWithRemoved(t *testing.T) { + doc := Doc2Clone() + s := doc.Find("#main").Remove() + s.After("#nf6") + + assertLength(t, s.Find("#nf6").Nodes, 0) + assertLength(t, doc.Find("#nf6").Nodes, 0) + printSel(t, doc.Selection) +} + +func TestAfterSelection(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").AfterSelection(doc.Find("#nf1, #nf2")) + + assertLength(t, doc.Find("#main #nf1, #main #nf2").Nodes, 0) + assertLength(t, doc.Find("#foot #nf1, #foot #nf2").Nodes, 0) + assertLength(t, doc.Find("#main + #nf1, #nf1 + #nf2").Nodes, 2) + printSel(t, doc.Selection) +} + +func TestAfterHtml(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").AfterHtml("new node") + + assertLength(t, doc.Find("#main + strong").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestAppend(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").Append("#nf6") + + assertLength(t, doc.Find("#foot #nf6").Nodes, 0) + assertLength(t, doc.Find("#main #nf6").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestAppendBody(t *testing.T) { + doc := Doc2Clone() + doc.Find("body").Append("#nf6") + + assertLength(t, doc.Find("#foot #nf6").Nodes, 0) + assertLength(t, doc.Find("#main #nf6").Nodes, 0) + assertLength(t, doc.Find("body > #nf6").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestAppendSelection(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").AppendSelection(doc.Find("#nf1, #nf2")) + + assertLength(t, doc.Find("#foot #nf1").Nodes, 0) + assertLength(t, doc.Find("#foot #nf2").Nodes, 0) + assertLength(t, doc.Find("#main #nf1").Nodes, 1) + assertLength(t, doc.Find("#main #nf2").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestAppendSelectionExisting(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").AppendSelection(doc.Find("#n1, #n2")) + + assertClass(t, doc.Find("#main :nth-child(1)"), "three") + assertClass(t, doc.Find("#main :nth-child(5)"), "one") + assertClass(t, doc.Find("#main :nth-child(6)"), "two") + printSel(t, doc.Selection) +} + +func TestAppendClone(t *testing.T) { + doc := Doc2Clone() + doc.Find("#n1").AppendSelection(doc.Find("#nf1").Clone()) + + assertLength(t, doc.Find("#foot #nf1").Nodes, 1) + assertLength(t, doc.Find("#main #nf1").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestAppendHtml(t *testing.T) { + doc := Doc2Clone() + doc.Find("div").AppendHtml("new node") + + assertLength(t, doc.Find("strong").Nodes, 14) + printSel(t, doc.Selection) +} + +func TestBefore(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").Before("#nf6") + + assertLength(t, doc.Find("#main #nf6").Nodes, 0) + assertLength(t, doc.Find("#foot #nf6").Nodes, 0) + assertLength(t, doc.Find("body > #nf6:first-child").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestBeforeWithRemoved(t *testing.T) { + doc := Doc2Clone() + s := doc.Find("#main").Remove() + s.Before("#nf6") + + assertLength(t, s.Find("#nf6").Nodes, 0) + assertLength(t, doc.Find("#nf6").Nodes, 0) + printSel(t, doc.Selection) +} + +func TestBeforeSelection(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").BeforeSelection(doc.Find("#nf1, #nf2")) + + assertLength(t, doc.Find("#main #nf1, #main #nf2").Nodes, 0) + assertLength(t, doc.Find("#foot #nf1, #foot #nf2").Nodes, 0) + assertLength(t, doc.Find("body > #nf1:first-child, #nf1 + #nf2").Nodes, 2) + printSel(t, doc.Selection) +} + +func TestBeforeHtml(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").BeforeHtml("new node") + + assertLength(t, doc.Find("body > strong:first-child").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestEmpty(t *testing.T) { + doc := Doc2Clone() + s := doc.Find("#main").Empty() + + assertLength(t, doc.Find("#main").Children().Nodes, 0) + assertLength(t, s.Filter("div").Nodes, 6) + printSel(t, doc.Selection) +} + +func TestPrepend(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").Prepend("#nf6") + + assertLength(t, doc.Find("#foot #nf6").Nodes, 0) + assertLength(t, doc.Find("#main #nf6:first-child").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestPrependBody(t *testing.T) { + doc := Doc2Clone() + doc.Find("body").Prepend("#nf6") + + assertLength(t, doc.Find("#foot #nf6").Nodes, 0) + assertLength(t, doc.Find("#main #nf6").Nodes, 0) + assertLength(t, doc.Find("body > #nf6:first-child").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestPrependSelection(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").PrependSelection(doc.Find("#nf1, #nf2")) + + assertLength(t, doc.Find("#foot #nf1").Nodes, 0) + assertLength(t, doc.Find("#foot #nf2").Nodes, 0) + assertLength(t, doc.Find("#main #nf1:first-child").Nodes, 1) + assertLength(t, doc.Find("#main #nf2:nth-child(2)").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestPrependSelectionExisting(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main").PrependSelection(doc.Find("#n5, #n6")) + + assertClass(t, doc.Find("#main :nth-child(1)"), "five") + assertClass(t, doc.Find("#main :nth-child(2)"), "six") + assertClass(t, doc.Find("#main :nth-child(5)"), "three") + assertClass(t, doc.Find("#main :nth-child(6)"), "four") + printSel(t, doc.Selection) +} + +func TestPrependClone(t *testing.T) { + doc := Doc2Clone() + doc.Find("#n1").PrependSelection(doc.Find("#nf1").Clone()) + + assertLength(t, doc.Find("#foot #nf1:first-child").Nodes, 1) + assertLength(t, doc.Find("#main #nf1:first-child").Nodes, 1) + printSel(t, doc.Selection) +} + +func TestPrependHtml(t *testing.T) { + doc := Doc2Clone() + doc.Find("div").PrependHtml("new node") + + assertLength(t, doc.Find("strong:first-child").Nodes, 14) + printSel(t, doc.Selection) +} + +func TestRemove(t *testing.T) { + doc := Doc2Clone() + doc.Find("#nf1").Remove() + + assertLength(t, doc.Find("#foot #nf1").Nodes, 0) + printSel(t, doc.Selection) +} + +func TestRemoveAll(t *testing.T) { + doc := Doc2Clone() + doc.Find("*").Remove() + + assertLength(t, doc.Find("*").Nodes, 0) + printSel(t, doc.Selection) +} + +func TestRemoveRoot(t *testing.T) { + doc := Doc2Clone() + doc.Find("html").Remove() + + assertLength(t, doc.Find("html").Nodes, 0) + printSel(t, doc.Selection) +} + +func TestRemoveFiltered(t *testing.T) { + doc := Doc2Clone() + nf6 := doc.Find("#nf6") + s := doc.Find("div").RemoveFiltered("#nf6") + + assertLength(t, doc.Find("#nf6").Nodes, 0) + assertLength(t, s.Nodes, 1) + if nf6.Nodes[0] != s.Nodes[0] { + t.Error("Removed node does not match original") + } + printSel(t, doc.Selection) +} + +func TestReplaceWith(t *testing.T) { + doc := Doc2Clone() + + doc.Find("#nf6").ReplaceWith("#main") + assertLength(t, doc.Find("#foot #main:last-child").Nodes, 1) + printSel(t, doc.Selection) + + doc.Find("#foot").ReplaceWith("#main") + assertLength(t, doc.Find("#foot").Nodes, 0) + assertLength(t, doc.Find("#main").Nodes, 1) + + printSel(t, doc.Selection) +} + +func TestReplaceWithHtml(t *testing.T) { + doc := Doc2Clone() + doc.Find("#main, #foot").ReplaceWithHtml("
") + + assertLength(t, doc.Find("#replace").Nodes, 2) + + printSel(t, doc.Selection) +} + +func TestReplaceWithSelection(t *testing.T) { + doc := Doc2Clone() + sel := doc.Find("#nf6").ReplaceWithSelection(doc.Find("#nf5")) + + assertSelectionIs(t, sel, "#nf6") + assertLength(t, doc.Find("#nf6").Nodes, 0) + assertLength(t, doc.Find("#nf5").Nodes, 1) + + printSel(t, doc.Selection) +} + +func TestUnwrap(t *testing.T) { + doc := Doc2Clone() + + doc.Find("#nf5").Unwrap() + assertLength(t, doc.Find("#foot").Nodes, 0) + assertLength(t, doc.Find("body > #nf1").Nodes, 1) + assertLength(t, doc.Find("body > #nf5").Nodes, 1) + + printSel(t, doc.Selection) + + doc = Doc2Clone() + + doc.Find("#nf5, #n1").Unwrap() + assertLength(t, doc.Find("#foot").Nodes, 0) + assertLength(t, doc.Find("#main").Nodes, 0) + assertLength(t, doc.Find("body > #n1").Nodes, 1) + assertLength(t, doc.Find("body > #nf5").Nodes, 1) + + printSel(t, doc.Selection) +} + +func TestUnwrapBody(t *testing.T) { + doc := Doc2Clone() + + doc.Find("#main").Unwrap() + assertLength(t, doc.Find("body").Nodes, 1) + assertLength(t, doc.Find("body > #main").Nodes, 1) + + printSel(t, doc.Selection) +} + +func TestUnwrapHead(t *testing.T) { + doc := Doc2Clone() + + doc.Find("title").Unwrap() + assertLength(t, doc.Find("head").Nodes, 0) + assertLength(t, doc.Find("head > title").Nodes, 0) + assertLength(t, doc.Find("title").Nodes, 1) + + printSel(t, doc.Selection) +} + +func TestUnwrapHtml(t *testing.T) { + doc := Doc2Clone() + + doc.Find("head").Unwrap() + assertLength(t, doc.Find("html").Nodes, 0) + assertLength(t, doc.Find("html head").Nodes, 0) + assertLength(t, doc.Find("head").Nodes, 1) + + printSel(t, doc.Selection) +} + +func TestWrap(t *testing.T) { + doc := Doc2Clone() + doc.Find("#nf1").Wrap("#nf2") + nf1 := doc.Find("#foot #nf2 #nf1") + assertLength(t, nf1.Nodes, 1) + + nf2 := doc.Find("#nf2") + assertLength(t, nf2.Nodes, 2) + + printSel(t, doc.Selection) +} + +func TestWrapEmpty(t *testing.T) { + doc := Doc2Clone() + doc.Find("#nf1").Wrap("#doesnt-exist") + + origHtml, _ := Doc2().Html() + newHtml, _ := doc.Html() + + if origHtml != newHtml { + t.Error("Expected the two documents to be identical.") + } + + printSel(t, doc.Selection) +} + +func TestWrapHtml(t *testing.T) { + doc := Doc2Clone() + doc.Find(".odd").WrapHtml(wrapHtml) + nf2 := doc.Find("#ins #nf2") + assertLength(t, nf2.Nodes, 1) + printSel(t, doc.Selection) +} + +func TestWrapSelection(t *testing.T) { + doc := Doc2Clone() + doc.Find("#nf1").WrapSelection(doc.Find("#nf2")) + nf1 := doc.Find("#foot #nf2 #nf1") + assertLength(t, nf1.Nodes, 1) + + nf2 := doc.Find("#nf2") + assertLength(t, nf2.Nodes, 2) + + printSel(t, doc.Selection) +} + +func TestWrapAll(t *testing.T) { + doc := Doc2Clone() + doc.Find(".odd").WrapAll("#nf1") + nf1 := doc.Find("#main #nf1") + assertLength(t, nf1.Nodes, 1) + + sel := nf1.Find("#n2 ~ #n4 ~ #n6 ~ #nf2 ~ #nf4 ~ #nf6") + assertLength(t, sel.Nodes, 1) + + printSel(t, doc.Selection) +} + +func TestWrapAllHtml(t *testing.T) { + doc := Doc2Clone() + doc.Find(".odd").WrapAllHtml(wrapHtml) + nf1 := doc.Find("#main div#ins div p em b #n2 ~ #n4 ~ #n6 ~ #nf2 ~ #nf4 ~ #nf6") + assertLength(t, nf1.Nodes, 1) + printSel(t, doc.Selection) +} + +func TestWrapInnerNoContent(t *testing.T) { + doc := Doc2Clone() + doc.Find(".one").WrapInner(".two") + + twos := doc.Find(".two") + assertLength(t, twos.Nodes, 4) + assertLength(t, doc.Find(".one .two").Nodes, 2) + + printSel(t, doc.Selection) +} + +func TestWrapInnerWithContent(t *testing.T) { + doc := Doc3Clone() + doc.Find(".one").WrapInner(".two") + + twos := doc.Find(".two") + assertLength(t, twos.Nodes, 4) + assertLength(t, doc.Find(".one .two").Nodes, 2) + + printSel(t, doc.Selection) +} + +func TestWrapInnerNoWrapper(t *testing.T) { + doc := Doc2Clone() + doc.Find(".one").WrapInner(".not-exist") + + twos := doc.Find(".two") + assertLength(t, twos.Nodes, 2) + assertLength(t, doc.Find(".one").Nodes, 2) + assertLength(t, doc.Find(".one .two").Nodes, 0) + + printSel(t, doc.Selection) +} + +func TestWrapInnerHtml(t *testing.T) { + doc := Doc2Clone() + doc.Find("#foot").WrapInnerHtml(wrapHtml) + + foot := doc.Find("#foot div#ins div p em b #nf1 ~ #nf2 ~ #nf3") + assertLength(t, foot.Nodes, 1) + + printSel(t, doc.Selection) +} diff --git a/vendor/github.com/PuerkitoBio/goquery/misc/git/pre-commit b/vendor/github.com/PuerkitoBio/goquery/misc/git/pre-commit old mode 100644 new mode 100755 diff --git a/vendor/github.com/PuerkitoBio/goquery/property_test.go b/vendor/github.com/PuerkitoBio/goquery/property_test.go new file mode 100644 index 00000000..1095dcc8 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/property_test.go @@ -0,0 +1,252 @@ +package goquery + +import ( + "regexp" + "strings" + "testing" +) + +func TestAttrExists(t *testing.T) { + if val, ok := Doc().Find("a").Attr("href"); !ok { + t.Error("Expected a value for the href attribute.") + } else { + t.Logf("Href of first anchor: %v.", val) + } +} + +func TestAttrOr(t *testing.T) { + if val := Doc().Find("a").AttrOr("fake-attribute", "alternative"); val != "alternative" { + t.Error("Expected an alternative value for 'fake-attribute' attribute.") + } else { + t.Logf("Value returned for not existing attribute: %v.", val) + } + if val := Doc().Find("zz").AttrOr("fake-attribute", "alternative"); val != "alternative" { + t.Error("Expected an alternative value for 'fake-attribute' on an empty selection.") + } else { + t.Logf("Value returned for empty selection: %v.", val) + } +} + +func TestAttrNotExist(t *testing.T) { + if val, ok := Doc().Find("div.row-fluid").Attr("href"); ok { + t.Errorf("Expected no value for the href attribute, got %v.", val) + } +} + +func TestRemoveAttr(t *testing.T) { + sel := Doc2Clone().Find("div") + + sel.RemoveAttr("id") + + _, ok := sel.Attr("id") + if ok { + t.Error("Expected there to be no id attributes set") + } +} + +func TestSetAttr(t *testing.T) { + sel := Doc2Clone().Find("#main") + + sel.SetAttr("id", "not-main") + + val, ok := sel.Attr("id") + if !ok { + t.Error("Expected an id attribute on main") + } + + if val != "not-main" { + t.Errorf("Expected an attribute id to be not-main, got %s", val) + } +} + +func TestSetAttr2(t *testing.T) { + sel := Doc2Clone().Find("#main") + + sel.SetAttr("foo", "bar") + + val, ok := sel.Attr("foo") + if !ok { + t.Error("Expected an 'foo' attribute on main") + } + + if val != "bar" { + t.Errorf("Expected an attribute 'foo' to be 'bar', got '%s'", val) + } +} + +func TestText(t *testing.T) { + txt := Doc().Find("h1").Text() + if strings.Trim(txt, " \n\r\t") != "Provok.in" { + t.Errorf("Expected text to be Provok.in, found %s.", txt) + } +} + +func TestText2(t *testing.T) { + txt := Doc().Find(".hero-unit .container-fluid .row-fluid:nth-child(1)").Text() + if ok, e := regexp.MatchString(`^\s+Provok\.in\s+Prove your point.\s+$`, txt); !ok || e != nil { + t.Errorf("Expected text to be Provok.in Prove your point., found %s.", txt) + if e != nil { + t.Logf("Error: %s.", e.Error()) + } + } +} + +func TestText3(t *testing.T) { + txt := Doc().Find(".pvk-gutter").First().Text() + // There's an   character in there... + if ok, e := regexp.MatchString(`^[\s\x{00A0}]+$`, txt); !ok || e != nil { + t.Errorf("Expected spaces, found <%v>.", txt) + if e != nil { + t.Logf("Error: %s.", e.Error()) + } + } +} + +func TestHtml(t *testing.T) { + txt, e := Doc().Find("h1").Html() + if e != nil { + t.Errorf("Error: %s.", e) + } + + if ok, e := regexp.MatchString(`^\s*Provok\.in\s*$`, txt); !ok || e != nil { + t.Errorf("Unexpected HTML content, found %s.", txt) + if e != nil { + t.Logf("Error: %s.", e.Error()) + } + } +} + +func TestNbsp(t *testing.T) { + src := `

Some text

` + d, err := NewDocumentFromReader(strings.NewReader(src)) + if err != nil { + t.Fatal(err) + } + txt := d.Find("p").Text() + ix := strings.Index(txt, "\u00a0") + if ix != 4 { + t.Errorf("Text: expected a non-breaking space at index 4, got %d", ix) + } + + h, err := d.Find("p").Html() + if err != nil { + t.Fatal(err) + } + ix = strings.Index(h, "\u00a0") + if ix != 4 { + t.Errorf("Html: expected a non-breaking space at index 4, got %d", ix) + } +} + +func TestAddClass(t *testing.T) { + sel := Doc2Clone().Find("#main") + sel.AddClass("main main main") + + // Make sure that class was only added once + if a, ok := sel.Attr("class"); !ok || a != "main" { + t.Error("Expected #main to have class main") + } +} + +func TestAddClassSimilar(t *testing.T) { + sel := Doc2Clone().Find("#nf5") + sel.AddClass("odd") + + assertClass(t, sel, "odd") + assertClass(t, sel, "odder") + printSel(t, sel.Parent()) +} + +func TestAddEmptyClass(t *testing.T) { + sel := Doc2Clone().Find("#main") + sel.AddClass("") + + // Make sure that class was only added once + if a, ok := sel.Attr("class"); ok { + t.Errorf("Expected #main to not to have a class, have: %s", a) + } +} + +func TestAddClasses(t *testing.T) { + sel := Doc2Clone().Find("#main") + sel.AddClass("a b") + + // Make sure that class was only added once + if !sel.HasClass("a") || !sel.HasClass("b") { + t.Errorf("#main does not have classes") + } +} + +func TestHasClass(t *testing.T) { + sel := Doc().Find("div") + if !sel.HasClass("span12") { + t.Error("Expected at least one div to have class span12.") + } +} + +func TestHasClassNone(t *testing.T) { + sel := Doc().Find("h2") + if sel.HasClass("toto") { + t.Error("Expected h1 to have no class.") + } +} + +func TestHasClassNotFirst(t *testing.T) { + sel := Doc().Find(".alert") + if !sel.HasClass("alert-error") { + t.Error("Expected .alert to also have class .alert-error.") + } +} + +func TestRemoveClass(t *testing.T) { + sel := Doc2Clone().Find("#nf1") + sel.RemoveClass("one row") + + if !sel.HasClass("even") || sel.HasClass("one") || sel.HasClass("row") { + classes, _ := sel.Attr("class") + t.Error("Expected #nf1 to have class even, has ", classes) + } +} + +func TestRemoveClassSimilar(t *testing.T) { + sel := Doc2Clone().Find("#nf5, #nf6") + assertLength(t, sel.Nodes, 2) + + sel.RemoveClass("odd") + assertClass(t, sel.Eq(0), "odder") + printSel(t, sel) +} + +func TestRemoveAllClasses(t *testing.T) { + sel := Doc2Clone().Find("#nf1") + sel.RemoveClass() + + if a, ok := sel.Attr("class"); ok { + t.Error("All classes were not removed, has ", a) + } + + sel = Doc2Clone().Find("#main") + sel.RemoveClass() + if a, ok := sel.Attr("class"); ok { + t.Error("All classes were not removed, has ", a) + } +} + +func TestToggleClass(t *testing.T) { + sel := Doc2Clone().Find("#nf1") + + sel.ToggleClass("one") + if sel.HasClass("one") { + t.Error("Expected #nf1 to not have class one") + } + + sel.ToggleClass("one") + if !sel.HasClass("one") { + t.Error("Expected #nf1 to have class one") + } + + sel.ToggleClass("one even row") + if a, ok := sel.Attr("class"); ok { + t.Errorf("Expected #nf1 to have no classes, have %q", a) + } +} diff --git a/vendor/github.com/PuerkitoBio/goquery/query_test.go b/vendor/github.com/PuerkitoBio/goquery/query_test.go new file mode 100644 index 00000000..2f40f424 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/query_test.go @@ -0,0 +1,96 @@ +package goquery + +import ( + "testing" +) + +func TestIs(t *testing.T) { + sel := Doc().Find(".footer p:nth-child(1)") + if !sel.Is("p") { + t.Error("Expected .footer p:nth-child(1) to be p.") + } +} + +func TestIsPositional(t *testing.T) { + sel := Doc().Find(".footer p:nth-child(2)") + if !sel.Is("p:nth-child(2)") { + t.Error("Expected .footer p:nth-child(2) to be p:nth-child(2).") + } +} + +func TestIsPositionalNot(t *testing.T) { + sel := Doc().Find(".footer p:nth-child(1)") + if sel.Is("p:nth-child(2)") { + t.Error("Expected .footer p:nth-child(1) NOT to be p:nth-child(2).") + } +} + +func TestIsFunction(t *testing.T) { + ok := Doc().Find("div").IsFunction(func(i int, s *Selection) bool { + return s.HasClass("container-fluid") + }) + + if !ok { + t.Error("Expected some div to have a container-fluid class.") + } +} + +func TestIsFunctionRollback(t *testing.T) { + ok := Doc().Find("div").IsFunction(func(i int, s *Selection) bool { + return s.HasClass("container-fluid") + }) + + if !ok { + t.Error("Expected some div to have a container-fluid class.") + } +} + +func TestIsSelection(t *testing.T) { + sel := Doc().Find("div") + sel2 := Doc().Find(".pvk-gutter") + + if !sel.IsSelection(sel2) { + t.Error("Expected some div to have a pvk-gutter class.") + } +} + +func TestIsSelectionNot(t *testing.T) { + sel := Doc().Find("div") + sel2 := Doc().Find("a") + + if sel.IsSelection(sel2) { + t.Error("Expected some div NOT to be an anchor.") + } +} + +func TestIsNodes(t *testing.T) { + sel := Doc().Find("div") + sel2 := Doc().Find(".footer") + + if !sel.IsNodes(sel2.Nodes[0]) { + t.Error("Expected some div to have a footer class.") + } +} + +func TestDocContains(t *testing.T) { + sel := Doc().Find("h1") + if !Doc().Contains(sel.Nodes[0]) { + t.Error("Expected document to contain H1 tag.") + } +} + +func TestSelContains(t *testing.T) { + sel := Doc().Find(".row-fluid") + sel2 := Doc().Find("a[ng-click]") + if !sel.Contains(sel2.Nodes[0]) { + t.Error("Expected .row-fluid to contain a[ng-click] tag.") + } +} + +func TestSelNotContains(t *testing.T) { + sel := Doc().Find("a.link") + sel2 := Doc().Find("span") + if sel.Contains(sel2.Nodes[0]) { + t.Error("Expected a.link to NOT contain span tag.") + } +} diff --git a/vendor/github.com/PuerkitoBio/goquery/testdata/gotesting.html b/vendor/github.com/PuerkitoBio/goquery/testdata/gotesting.html new file mode 100644 index 00000000..ba5348fd --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/testdata/gotesting.html @@ -0,0 +1,855 @@ + + + + + + testing - The Go Programming Language + + + + + + + + + + + + +
+ + +
+

Package testing

+ + + + + + + + + + +
+
+
import "testing"
+
+
+
Overview
+
Index
+ + +
Subdirectories
+ +
+
+ +
+ +
+

Overview ▾

+

+Package testing provides support for automated testing of Go packages. +It is intended to be used in concert with the “go test” command, which automates +execution of any function of the form +

+
func TestXxx(*testing.T)
+
+

+where Xxx can be any alphanumeric string (but the first letter must not be in +[a-z]) and serves to identify the test routine. +These TestXxx routines should be declared within the package they are testing. +

+

+Functions of the form +

+
func BenchmarkXxx(*testing.B)
+
+

+are considered benchmarks, and are executed by the "go test" command when +the -test.bench flag is provided. +

+

+A sample benchmark function looks like this: +

+
func BenchmarkHello(b *testing.B) {
+    for i := 0; i < b.N; i++ {
+        fmt.Sprintf("hello")
+    }
+}
+
+

+The benchmark package will vary b.N until the benchmark function lasts +long enough to be timed reliably. The output +

+
testing.BenchmarkHello    10000000    282 ns/op
+
+

+means that the loop ran 10000000 times at a speed of 282 ns per loop. +

+

+If a benchmark needs some expensive setup before running, the timer +may be stopped: +

+
func BenchmarkBigLen(b *testing.B) {
+    b.StopTimer()
+    big := NewBig()
+    b.StartTimer()
+    for i := 0; i < b.N; i++ {
+        big.Len()
+    }
+}
+
+

+The package also runs and verifies example code. Example functions may +include a concluding comment that begins with "Output:" and is compared with +the standard output of the function when the tests are run, as in these +examples of an example: +

+
func ExampleHello() {
+        fmt.Println("hello")
+        // Output: hello
+}
+
+func ExampleSalutations() {
+        fmt.Println("hello, and")
+        fmt.Println("goodbye")
+        // Output:
+        // hello, and
+        // goodbye
+}
+
+

+Example functions without output comments are compiled but not executed. +

+

+The naming convention to declare examples for a function F, a type T and +method M on type T are: +

+
func ExampleF() { ... }
+func ExampleT() { ... }
+func ExampleT_M() { ... }
+
+

+Multiple example functions for a type/function/method may be provided by +appending a distinct suffix to the name. The suffix must start with a +lower-case letter. +

+
func ExampleF_suffix() { ... }
+func ExampleT_suffix() { ... }
+func ExampleT_M_suffix() { ... }
+
+

+The entire test file is presented as the example when it contains a single +example function, at least one other function, type, variable, or constant +declaration, and no test or benchmark functions. +

+ +
+
+ + +

Index

+ +
+
+ + + + +
func Main(matchString func(pat, str string) (bool, error), tests []InternalTest, benchmarks []InternalBenchmark, examples []InternalExample)
+ + +
func RunBenchmarks(matchString func(pat, str string) (bool, error), benchmarks []InternalBenchmark)
+ + +
func RunExamples(matchString func(pat, str string) (bool, error), examples []InternalExample) (ok bool)
+ + +
func RunTests(matchString func(pat, str string) (bool, error), tests []InternalTest) (ok bool)
+ + +
func Short() bool
+ + + +
type B
+ + + +
    func (c *B) Error(args ...interface{})
+ + +
    func (c *B) Errorf(format string, args ...interface{})
+ + +
    func (c *B) Fail()
+ + +
    func (c *B) FailNow()
+ + +
    func (c *B) Failed() bool
+ + +
    func (c *B) Fatal(args ...interface{})
+ + +
    func (c *B) Fatalf(format string, args ...interface{})
+ + +
    func (c *B) Log(args ...interface{})
+ + +
    func (c *B) Logf(format string, args ...interface{})
+ + +
    func (b *B) ResetTimer()
+ + +
    func (b *B) SetBytes(n int64)
+ + +
    func (b *B) StartTimer()
+ + +
    func (b *B) StopTimer()
+ + + +
type BenchmarkResult
+ + +
    func Benchmark(f func(b *B)) BenchmarkResult
+ + + +
    func (r BenchmarkResult) NsPerOp() int64
+ + +
    func (r BenchmarkResult) String() string
+ + + +
type InternalBenchmark
+ + + + +
type InternalExample
+ + + + +
type InternalTest
+ + + + +
type T
+ + + +
    func (c *T) Error(args ...interface{})
+ + +
    func (c *T) Errorf(format string, args ...interface{})
+ + +
    func (c *T) Fail()
+ + +
    func (c *T) FailNow()
+ + +
    func (c *T) Failed() bool
+ + +
    func (c *T) Fatal(args ...interface{})
+ + +
    func (c *T) Fatalf(format string, args ...interface{})
+ + +
    func (c *T) Log(args ...interface{})
+ + +
    func (c *T) Logf(format string, args ...interface{})
+ + +
    func (t *T) Parallel()
+ + + +
+ + + + +

Package files

+

+ + + benchmark.go + + example.go + + testing.go + + +

+ + + + + + + +

func Main

+
func Main(matchString func(pat, str string) (bool, error), tests []InternalTest, benchmarks []InternalBenchmark, examples []InternalExample)
+

+An internal function but exported because it is cross-package; part of the implementation +of the "go test" command. +

+ + + + + +

func RunBenchmarks

+
func RunBenchmarks(matchString func(pat, str string) (bool, error), benchmarks []InternalBenchmark)
+

+An internal function but exported because it is cross-package; part of the implementation +of the "go test" command. +

+ + + + + +

func RunExamples

+
func RunExamples(matchString func(pat, str string) (bool, error), examples []InternalExample) (ok bool)
+ + + + + +

func RunTests

+
func RunTests(matchString func(pat, str string) (bool, error), tests []InternalTest) (ok bool)
+ + + + + +

func Short

+
func Short() bool
+

+Short reports whether the -test.short flag is set. +

+ + + + + + +

type B

+
type B struct {
+    N int
+    // contains filtered or unexported fields
+}
+

+B is a type passed to Benchmark functions to manage benchmark +timing and to specify the number of iterations to run. +

+ + + + + + + + + + + + +

func (*B) Error

+
func (c *B) Error(args ...interface{})
+

+Error is equivalent to Log() followed by Fail(). +

+ + + + + +

func (*B) Errorf

+
func (c *B) Errorf(format string, args ...interface{})
+

+Errorf is equivalent to Logf() followed by Fail(). +

+ + + + + +

func (*B) Fail

+
func (c *B) Fail()
+

+Fail marks the function as having failed but continues execution. +

+ + + + + +

func (*B) FailNow

+
func (c *B) FailNow()
+

+FailNow marks the function as having failed and stops its execution. +Execution will continue at the next test or benchmark. +

+ + + + + +

func (*B) Failed

+
func (c *B) Failed() bool
+

+Failed returns whether the function has failed. +

+ + + + + +

func (*B) Fatal

+
func (c *B) Fatal(args ...interface{})
+

+Fatal is equivalent to Log() followed by FailNow(). +

+ + + + + +

func (*B) Fatalf

+
func (c *B) Fatalf(format string, args ...interface{})
+

+Fatalf is equivalent to Logf() followed by FailNow(). +

+ + + + + +

func (*B) Log

+
func (c *B) Log(args ...interface{})
+

+Log formats its arguments using default formatting, analogous to Println(), +and records the text in the error log. +

+ + + + + +

func (*B) Logf

+
func (c *B) Logf(format string, args ...interface{})
+

+Logf formats its arguments according to the format, analogous to Printf(), +and records the text in the error log. +

+ + + + + +

func (*B) ResetTimer

+
func (b *B) ResetTimer()
+

+ResetTimer sets the elapsed benchmark time to zero. +It does not affect whether the timer is running. +

+ + + + + +

func (*B) SetBytes

+
func (b *B) SetBytes(n int64)
+

+SetBytes records the number of bytes processed in a single operation. +If this is called, the benchmark will report ns/op and MB/s. +

+ + + + + +

func (*B) StartTimer

+
func (b *B) StartTimer()
+

+StartTimer starts timing a test. This function is called automatically +before a benchmark starts, but it can also used to resume timing after +a call to StopTimer. +

+ + + + + +

func (*B) StopTimer

+
func (b *B) StopTimer()
+

+StopTimer stops timing a test. This can be used to pause the timer +while performing complex initialization that you don't +want to measure. +

+ + + + + + + +

type BenchmarkResult

+
type BenchmarkResult struct {
+    N     int           // The number of iterations.
+    T     time.Duration // The total time taken.
+    Bytes int64         // Bytes processed in one iteration.
+}
+

+The results of a benchmark run. +

+ + + + + + + + + + +

func Benchmark

+
func Benchmark(f func(b *B)) BenchmarkResult
+

+Benchmark benchmarks a single function. Useful for creating +custom benchmarks that do not use the "go test" command. +

+ + + + + + +

func (BenchmarkResult) NsPerOp

+
func (r BenchmarkResult) NsPerOp() int64
+ + + + + +

func (BenchmarkResult) String

+
func (r BenchmarkResult) String() string
+ + + + + + + +

type InternalBenchmark

+
type InternalBenchmark struct {
+    Name string
+    F    func(b *B)
+}
+

+An internal type but exported because it is cross-package; part of the implementation +of the "go test" command. +

+ + + + + + + + + + + + + + +

type InternalExample

+
type InternalExample struct {
+    Name   string
+    F      func()
+    Output string
+}
+ + + + + + + + + + + + + + +

type InternalTest

+
type InternalTest struct {
+    Name string
+    F    func(*T)
+}
+

+An internal type but exported because it is cross-package; part of the implementation +of the "go test" command. +

+ + + + + + + + + + + + + + +

type T

+
type T struct {
+    // contains filtered or unexported fields
+}
+

+T is a type passed to Test functions to manage test state and support formatted test logs. +Logs are accumulated during execution and dumped to standard error when done. +

+ + + + + + + + + + + + +

func (*T) Error

+
func (c *T) Error(args ...interface{})
+

+Error is equivalent to Log() followed by Fail(). +

+ + + + + +

func (*T) Errorf

+
func (c *T) Errorf(format string, args ...interface{})
+

+Errorf is equivalent to Logf() followed by Fail(). +

+ + + + + +

func (*T) Fail

+
func (c *T) Fail()
+

+Fail marks the function as having failed but continues execution. +

+ + + + + +

func (*T) FailNow

+
func (c *T) FailNow()
+

+FailNow marks the function as having failed and stops its execution. +Execution will continue at the next test or benchmark. +

+ + + + + +

func (*T) Failed

+
func (c *T) Failed() bool
+

+Failed returns whether the function has failed. +

+ + + + + +

func (*T) Fatal

+
func (c *T) Fatal(args ...interface{})
+

+Fatal is equivalent to Log() followed by FailNow(). +

+ + + + + +

func (*T) Fatalf

+
func (c *T) Fatalf(format string, args ...interface{})
+

+Fatalf is equivalent to Logf() followed by FailNow(). +

+ + + + + +

func (*T) Log

+
func (c *T) Log(args ...interface{})
+

+Log formats its arguments using default formatting, analogous to Println(), +and records the text in the error log. +

+ + + + + +

func (*T) Logf

+
func (c *T) Logf(format string, args ...interface{})
+

+Logf formats its arguments according to the format, analogous to Printf(), +and records the text in the error log. +

+ + + + + +

func (*T) Parallel

+
func (t *T) Parallel()
+

+Parallel signals that this test is to be run in parallel with (and only with) +other parallel tests in this CPU group. +

+ + + + + +
+ + + + + + + + + + + + +

Subdirectories

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name    Synopsis
..
iotest    Package iotest implements Readers and Writers useful mainly for testing.
quick    Package quick implements utility functions to help with black box testing.
+ + + + +
+ + + + + + + + diff --git a/vendor/github.com/PuerkitoBio/goquery/testdata/gowiki.html b/vendor/github.com/PuerkitoBio/goquery/testdata/gowiki.html new file mode 100644 index 00000000..2ed6bb71 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/testdata/gowiki.html @@ -0,0 +1,1214 @@ + + + +Go (programming language) - Wikipedia, the free encyclopedia + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + + +
+ + +

Go (programming language)

+ + +
+ +
From Wikipedia, the free encyclopedia
+ + +
  (Redirected from Golang)
+ + +
+ Jump to: navigation, search +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Go
Golang.png
Paradigm(s)compiled, concurrent, imperative, structured
Appeared in2009
Designed byRobert Griesemer
+Rob Pike
+Ken Thompson
DeveloperGoogle Inc.
Stable releaseversion 1.0.2[1] (14 June 2012; 2 months ago (2012-06-14))
Typing disciplinestrong, static
Major implementationsgc (8g, 6g, 5g), gccgo
Influenced byC, Limbo, Modula, Newsqueak, Oberon, Pascal,[2] Python
OSLinux, Mac OS X, FreeBSD, OpenBSD, MS Windows, Plan 9[3]
LicenseBSD-style[4] + Patent grant[5]
Usual filename extensions.go
Websitegolang.org
+

Go is a compiled, garbage-collected, concurrent programming language developed by Google Inc.[6]

+

The initial design of Go was started in September 2007 by Robert Griesemer, Rob Pike, and Ken Thompson.[2] Go was officially announced in November 2009. In May 2010, Rob Pike publicly stated that Go was being used "for real stuff" at Google.[7] Go's "gc" compiler targets the Linux, Mac OS X, FreeBSD, OpenBSD, Plan 9, and Microsoft Windows operating systems and the i386, amd64, and ARM processor architectures.[8]

+ + + + +
+
+

Contents

+
+ +
+

[edit] Goals

+

Go aims to provide the efficiency of a statically typed compiled language with the ease of programming of a dynamic language.[9] Other goals include:

+
    +
  • Safety: Type-safe and memory-safe.
  • +
  • Good support for concurrency and communication.
  • +
  • Efficient, latency-free garbage collection.
  • +
  • High-speed compilation.
  • +
+

[edit] Description

+

The syntax of Go is broadly similar to that of C: blocks of code are surrounded with curly braces; common control flow structures include for, switch, and if. Unlike C, line-ending semicolons are optional, variable declarations are written differently and are usually optional, type conversions must be made explicit, and new go and select control keywords have been introduced to support concurrent programming. New built-in types include maps, Unicode strings, array slices, and channels for inter-thread communication.

+

Go is designed for exceptionally fast compiling times, even on modest hardware.[10] The language requires garbage collection. Certain concurrency-related structural conventions of Go (channels and alternative channel inputs) are borrowed from Tony Hoare's CSP. Unlike previous concurrent programming languages such as occam or Limbo, Go does not provide any built-in notion of safe or verifiable concurrency.[11]

+

Of features found in C++ or Java, Go does not include type inheritance, generic programming, assertions, method overloading, or pointer arithmetic.[2] Of these, the Go authors express an openness to generic programming, explicitly argue against assertions and pointer arithmetic, while defending the choice to omit type inheritance as giving a more useful language, encouraging heavy use of interfaces instead.[2] Initially, the language did not include exception handling, but in March 2010 a mechanism known as panic/recover was implemented to handle exceptional errors while avoiding some of the problems the Go authors find with exceptions.[12][13]

+

[edit] Type system

+

Go allows a programmer to write functions that can operate on inputs of arbitrary type, provided that the type implements the functions defined by a given interface.

+

Unlike Java, the interfaces a type supports do not need to be specified at the point at which the type is defined, and Go interfaces do not participate in a type hierarchy. A Go interface is best described as a set of methods, each identified by a name and signature. A type is considered to implement an interface if all the required methods have been defined for that type. An interface can be declared to "embed" other interfaces, meaning the declared interface includes the methods defined in the other interfaces.[11]

+

Unlike Java, the in-memory representation of an object does not contain a pointer to a virtual method table. Instead a value of interface type is implemented as a pair of a pointer to the object, and a pointer to a dictionary containing implementations of the interface methods for that type.

+

Consider the following example:

+
+
+
+type Sequence []int
+ 
+func (s Sequence) Len() int {
+    return len(s)
+}
+ 
+type HasLength interface {
+    Len() int
+}
+ 
+func Foo (o HasLength) {
+    ...
+}
+
+
+

These four definitions could have been placed in separate files, in different parts of the program. Notably, the programmer who defined the Sequence type did not need to declare that the type implemented HasLength, and the person who implemented the Len method for Sequence did not need to specify that this method was part of HasLength.

+

[edit] Name visibility

+

Visibility of structures, structure fields, variables, constants, methods, top-level types and functions outside their defining package is defined implicitly according to the capitalization of their identifier.[14]

+

[edit] Concurrency

+

Go provides goroutines, small lightweight threads; the name alludes to coroutines. Goroutines are created with the go statement from anonymous or named functions.

+

Goroutines are executed in parallel with other goroutines, including their caller. They do not necessarily run in separate threads, but a group of goroutines are multiplexed onto multiple threads — execution control is moved between them by blocking them when sending or receiving messages over channels.

+

[edit] Implementations

+

There are currently two Go compilers:

+
    +
  • 6g/8g/5g (the compilers for AMD64, x86, and ARM respectively) with their supporting tools (collectively known as "gc") based on Ken's previous work on Plan 9's C toolchain.
  • +
  • gccgo, a GCC frontend written in C++,[15] and now officially supported as of version 4.6, albeit not part of the standard binary for gcc.[16]
  • +
+

Both compilers work on Unix-like systems, and a port to Microsoft Windows of the gc compiler and runtime have been integrated in the main distribution. Most of the standard libraries also work on Windows.

+

There is also an unmaintained "tiny" runtime environment that allows Go programs to run on bare hardware.[17]

+

[edit] Examples

+

[edit] Hello world

+

The following is a Hello world program in Go:

+
+
+
+package main
+ 
+import "fmt"
+ 
+func main() {
+        fmt.Println("Hello, World")
+}
+
+
+

Go's automatic semicolon insertion feature requires that opening braces not be placed on their own lines, and this is thus the preferred brace style; the examples shown comply with this style.[18]

+

[edit] Echo

+

Example illustrating how to write a program like the Unix echo command in Go:[19]

+
+
+
+package main
+ 
+import (
+        "os"
+        "flag"  // command line option parser
+)
+ 
+var omitNewline = flag.Bool("n", false, "don't print final newline")
+ 
+const (
+        Space = " "
+        Newline = "\n"
+)
+ 
+func main() {
+        flag.Parse()   // Scans the arg list and sets up flags
+        var s string
+        for i := 0; i < flag.NArg(); i++ {
+                if i > 0 {
+                        s += Space
+                }
+                s += flag.Arg(i)
+        }
+        if !*omitNewline {
+                s += Newline
+        }
+        os.Stdout.WriteString(s)
+}
+
+
+

[edit] Reception

+

Go's initial release led to much discussion.

+

Michele Simionato wrote in an article for artima.com:[20]

+
+
Here I just wanted to point out the design choices about interfaces and inheritance. Such ideas are not new and it is a shame that no popular language has followed such particular route in the design space. I hope Go will become popular; if not, I hope such ideas will finally enter in a popular language, we are already 10 or 20 years too late :-(
+
+

Dave Astels at Engine Yard wrote:[21]

+
+
Go is extremely easy to dive into. There are a minimal number of fundamental language concepts and the syntax is clean and designed to be clear and unambiguous. Go is still experimental and still a little rough around the edges.
+
+

Ars Technica interviewed Rob Pike, one of the authors of Go, and asked why a new language was needed. He replied that:[22]

+
+
It wasn't enough to just add features to existing programming languages, because sometimes you can get more in the long run by taking things away. They wanted to start from scratch and rethink everything. ... [But they did not want] to deviate too much from what developers already knew because they wanted to avoid alienating Go's target audience.
+
+

Go was in 15th place on the TIOBE Programming Community Index of programming language popularity in its first year, 2009,[citation needed] surpassing established languages like Pascal. As of March 2012, it ranked 66th in the index.[23]

+

Bruce Eckel stated:[24]

+
+
The complexity of C++ (even more complexity has been added in the new C++), and the resulting impact on productivity, is no longer justified. All the hoops that the C++ programmer had to jump through in order to use a C-compatible language make no sense anymore -- they're just a waste of time and effort. Now, Go makes much more sense for the class of problems that C++ was originally intended to solve.
+
+

[edit] Naming dispute

+

On the day of the general release of the language, Francis McCabe, developer of the Go! programming language (note the exclamation point), requested a name change of Google's language to prevent confusion with his language.[25] The issue was closed by a Google developer on 12 October 2010 with the custom status "Unfortunate", with a comment that "there are many computing products and services named Go. In the 11 months since our release, there has been minimal confusion of the two languages."[26]

+

[edit] See also

+ +

[edit] References

+ +
+
    +
  1. ^ "golang-announce: go1.0.2 released". https://groups.google.com/forum/#!msg/golang-announce/9-f_fnXNDzw/MiM3tk0iyjYJ. Retrieved 14 June 2012. 
  2. +
  3. ^ a b c d "Language Design FAQ". golang.org. 16 January 2010. http://golang.org/doc/go_faq.html. Retrieved 27 February 2010. 
  4. +
  5. ^ "Go Porting Efforts". Go Language Resources. cat-v. 12 January 2010. http://go-lang.cat-v.org/os-ports. Retrieved 18 January 2010. 
  6. +
  7. ^ "Text file LICENSE". http://golang.org/LICENSE. Retrieved 27 January 2011. 
  8. +
  9. ^ "Additional IP Rights Grant". http://code.google.com/p/go/source/browse/PATENTS. Retrieved 26 July 2012. 
  10. +
  11. ^ Kincaid, Jason (10 November 2009). "Google’s Go: A New Programming Language That’s Python Meets C++". TechCrunch. http://www.techcrunch.com/2009/11/10/google-go-language/. Retrieved 18 January 2010. 
  12. +
  13. ^ Metz, Cade (20 May 2010). "Google programming Frankenstein is a Go". The Register. http://www.theregister.co.uk/2010/05/20/go_in_production_at_google/. 
  14. +
  15. ^ "Installing Go". golang.org. The Go Authors. 11 June 2010. http://golang.org/doc/install.html#tmp_33. Retrieved 11 June 2010. 
  16. +
  17. ^ Pike, Rob. "The Go Programming Language". YouTube. http://www.youtube.com/watch?v=rKnDgT73v8s&feature=related. Retrieved 1 Jul 2011. 
  18. +
  19. ^ Rob Pike (10 November 2009) (flv). The Go Programming Language (Tech talk). Google. Event occurs at 8:53. http://www.youtube.com/watch?v=rKnDgT73v8s#t=8m53. 
  20. +
  21. ^ a b "The Go Memory Model". Google. http://golang.org/doc/go_mem.html. Retrieved 5 January 2011. 
  22. +
  23. ^ Release notes, 30 March 2010
  24. +
  25. ^ "Proposal for an exception-like mechanism". golang-nuts. 25 March 2010. http://groups.google.com/group/golang-nuts/browse_thread/thread/1ce5cd050bb973e4. Retrieved 25 March 2010. 
  26. +
  27. ^ "A Tutorial for the Go Programming Language". The Go Programming Language. Google. http://golang.org/doc/go_tutorial.html. Retrieved 10 March 2010. "In Go the rule about visibility of information is simple: if a name (of a top-level type, function, method, constant or variable, or of a structure field or method) is capitalized, users of the package may see it. Otherwise, the name and hence the thing being named is visible only inside the package in which it is declared." 
  28. +
  29. ^ "FAQ: Implementation". golang.org. 16 January 2010. http://golang.org/doc/go_faq.html#Implementation. Retrieved 18 January 2010. 
  30. +
  31. ^ "Installing GCC: Configuration". http://gcc.gnu.org/install/configure.html. Retrieved 3 December 2011. "Ada, Go and Objective-C++ are not default languages" 
  32. +
  33. ^ Gerrand, Andrew (1 February 2011). "release.2011-02-01". golang-nuts. Google. http://groups.google.com/group/golang-nuts/browse_thread/thread/b877e34723b543a7. Retrieved 5 February 2011. 
  34. +
  35. ^ "A Tutorial for the Go Programming Language". The Go Programming Language. Google. http://golang.org/doc/go_tutorial.html. Retrieved 10 March 2010. "The one surprise is that it's important to put the opening brace of a construct such as an if statement on the same line as the if; however, if you don't, there are situations that may not compile or may give the wrong result. The language forces the brace style to some extent." 
  36. +
  37. ^ "A Tutorial for the Go Programming Language". golang.org. 16 January 2010. http://golang.org/doc/go_tutorial.html. Retrieved 18 January 2010. 
  38. +
  39. ^ Simionato, Michele (15 November 2009). "Interfaces vs Inheritance (or, watch out for Go!)". artima. http://www.artima.com/weblogs/viewpost.jsp?thread=274019. Retrieved 15 November 2009. 
  40. +
  41. ^ Astels, Dave (9 November 2009). "Ready, Set, Go!". engineyard. http://www.engineyard.com/blog/2009/ready-set-go/. Retrieved 9 November 2009. 
  42. +
  43. ^ Paul, Ryan (10 November 2009). "Go: new open source programming language from Google". Ars Technica. http://arstechnica.com/open-source/news/2009/11/go-new-open-source-programming-language-from-google.ars. Retrieved 13 November 2009. 
  44. +
  45. ^ "TIOBE Programming Community Index for March 2012". TIOBE Software. March 2012. http://es.scribd.com/doc/89569304/TIOBE-Programming-Community-Index-for-March-2012. Retrieved 28 April 2012. 
  46. +
  47. ^ Bruce Eckel (27). "Calling Go from Python via JSON-RPC". http://www.artima.com/weblogs/viewpost.jsp?thread=333589. Retrieved 29 August 2011. 
  48. +
  49. ^ Claburn, Thomas (11 November 2009). "Google 'Go' Name Brings Accusations Of Evil'". InformationWeek. http://www.informationweek.com/news/software/web_services/showArticle.jhtml?articleID=221601351. Retrieved 18 January 2010. 
  50. +
  51. ^ "Issue 9 - go - I have already used the name for *MY* programming language". Google Code. Google Inc.. http://code.google.com/p/go/issues/detail?id=9. Retrieved 12 October 2010. 
  52. +
+
+

[edit] Further reading

+ +

[edit] External links

+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + +
+ +
+ + +
+ + +
+
Personal tools
+ +
+ + +
+ + +
+
Namespaces
+ +
+ + + + +
+

+

+
Variants
+ +
+ + +
+
+ + +
+
Views
+ +
+ + + + +
+
Actions
+ +
+ + + + + + + +
+
+ + + + + + + + + + + + + + + + + diff --git a/vendor/github.com/PuerkitoBio/goquery/testdata/metalreview.html b/vendor/github.com/PuerkitoBio/goquery/testdata/metalreview.html new file mode 100644 index 00000000..fc4a38fc --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/testdata/metalreview.html @@ -0,0 +1,413 @@ + + + + + + + + + + + + + + Metal Reviews, News, Blogs, Interviews and Community | Metal Review + + + + + + + + + + +
+
+ + + +
+ + + + +
+
+ + + + +
+
+
+ +
+
+
+
+ + + + + +
+

Reviews

+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
    + +
  • +

    + Serpentine Path - Serpentine Path + Serpentine Path
    + Serpentine Path
    + +

    +
  • + +
  • +

    + Hunter + Hunter's Ground
    + No God But the Wild
    + +

    +
  • + +
  • +

    + Blut Aus Nord - 777 - Cosmosophy + Blut Aus Nord
    + 777 - Cosmosophy
    + Black +

    +
  • + +
  • +

    + Ufomammut - Oro: Opus Alter + Ufomammut
    + Oro: Opus Alter
    + Doom +

    +
  • + +
  • +

    + Resurgency - False Enlightenment + Resurgency
    + False Enlightenment
    + Death +

    +
  • + +
  • +

    + Morgoth - Cursed to Live + Morgoth
    + Cursed to Live
    + DeathLive +

    +
  • + +
  • +

    + Krallice - Years Past Matter + Krallice
    + Years Past Matter
    + Black +

    +
  • + +
  • +

    + Murder Construct - Results + Murder Construct
    + Results
    + Grindcore +

    +
  • + +
  • +

    + Grave - Endless Procession of Souls + Grave
    + Endless Procession of Souls
    + Death +

    +
  • + +
  • +

    + Master - The New Elite + Master
    + The New Elite
    + Death +

    +
  • + +
+
+
+
+
+
+
+ Serpentine Path - Serpentine PathHunter's Ground - No God But the WildBlut Aus Nord - 777 - CosmosophyUfomammut - Oro: Opus AlterResurgency - False EnlightenmentMorgoth - Cursed to LiveKrallice - Years Past MatterMurder Construct - ResultsGrave - Endless Procession of SoulsMaster - The New Elite +
+
+
+
+ + + + + + + +
+
+
+
+
+ + + + +
Goto Next Group
+
Goto Previous Group
+ + + + + +
+ +
+ + + + + + + +
+

Lashes

+
NEW Katatonia - Dead End Kings
45 minutes ago by Chaosjunkie
+
Katatonia - Dead End Kings
1 hour ago by Harry Dick Rotten
+
Resurgency - False Enlightenment
3 hours ago by Anonymous
+
Witchcraft - The Alchemist
5 hours ago by Luke_22
+
Katatonia - Dead End Kings
9 hours ago by chaosjunkie
+
Katatonia - Dead End Kings
10 hours ago by Compeller
+
Manetheren - Time
10 hours ago by xpmule
+
Ufomammut - Oro: Opus Alter
16 hours ago by Anonymous
+
Ufomammut - Oro: Opus Alter
17 hours ago by Harry Dick Rotten
+
Katatonia - Dead End Kings
yesterday by Chaosjunkie
+
Katatonia - Dead End Kings
yesterday by Anonymous
+
Katatonia - Dead End Kings
yesterday by Anonymous
+
Katatonia - Dead End Kings
yesterday by Anonymous
+
Katatonia - Dead End Kings
yesterday by frantic
+
Blut Aus Nord - 777 - Cosmosophy
yesterday by Dimensional Bleedthrough
+ +
+ +
+
+
+ + + +
+
+ + + + + + + + + + + diff --git a/vendor/github.com/PuerkitoBio/goquery/testdata/page.html b/vendor/github.com/PuerkitoBio/goquery/testdata/page.html new file mode 100644 index 00000000..92ec74ee --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/testdata/page.html @@ -0,0 +1,102 @@ + + + + + + + Provok.in + + + + + + + + + +
+
+
+   +
+
+
+
+
+
+

+ Provok.in +

+

+ Prove your point. +

+
+
+
+
+ Beta Version. Things may change. Or disappear. Or fail miserably. If it's the latter, please file an issue. +
+
+ +
+ Welcome, {{getUserName()}} ( logout ) +
+
+
+
+
+   +
+
+
+
+   +
+
+
+
+
+
+ × +

+ {{ title }} +

+

+ {{ message }} +

+
+
+
+
+
+
+
+
+
+
+   +
+
+
+
+   +
+
+ +
+
+   +
+
+
+ + \ No newline at end of file diff --git a/vendor/github.com/PuerkitoBio/goquery/testdata/page2.html b/vendor/github.com/PuerkitoBio/goquery/testdata/page2.html new file mode 100644 index 00000000..4c2f92f4 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/testdata/page2.html @@ -0,0 +1,24 @@ + + + + Tests for siblings + + +
+
+
+
+
+
+
+
+ + + diff --git a/vendor/github.com/PuerkitoBio/goquery/testdata/page3.html b/vendor/github.com/PuerkitoBio/goquery/testdata/page3.html new file mode 100644 index 00000000..17e86241 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/testdata/page3.html @@ -0,0 +1,24 @@ + + + + Tests for siblings + + +
+
hello
+
+
+
+
+
+
+ + + diff --git a/vendor/github.com/PuerkitoBio/goquery/traversal_test.go b/vendor/github.com/PuerkitoBio/goquery/traversal_test.go new file mode 100644 index 00000000..00fb5cd5 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/traversal_test.go @@ -0,0 +1,697 @@ +package goquery + +import ( + "strings" + "testing" +) + +func TestFind(t *testing.T) { + sel := Doc().Find("div.row-fluid") + assertLength(t, sel.Nodes, 9) +} + +func TestFindRollback(t *testing.T) { + sel := Doc().Find("div.row-fluid") + sel2 := sel.Find("a").End() + assertEqual(t, sel, sel2) +} + +func TestFindNotSelf(t *testing.T) { + sel := Doc().Find("h1").Find("h1") + assertLength(t, sel.Nodes, 0) +} + +func TestFindInvalidSelector(t *testing.T) { + defer assertPanic(t) + Doc().Find(":+ ^") +} + +func TestChainedFind(t *testing.T) { + sel := Doc().Find("div.hero-unit").Find(".row-fluid") + assertLength(t, sel.Nodes, 4) +} + +func TestChildren(t *testing.T) { + sel := Doc().Find(".pvk-content").Children() + assertLength(t, sel.Nodes, 5) +} + +func TestChildrenRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Children().End() + assertEqual(t, sel, sel2) +} + +func TestContents(t *testing.T) { + sel := Doc().Find(".pvk-content").Contents() + assertLength(t, sel.Nodes, 13) +} + +func TestContentsRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.Contents().End() + assertEqual(t, sel, sel2) +} + +func TestChildrenFiltered(t *testing.T) { + sel := Doc().Find(".pvk-content").ChildrenFiltered(".hero-unit") + assertLength(t, sel.Nodes, 1) +} + +func TestChildrenFilteredRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.ChildrenFiltered(".hero-unit").End() + assertEqual(t, sel, sel2) +} + +func TestContentsFiltered(t *testing.T) { + sel := Doc().Find(".pvk-content").ContentsFiltered(".hero-unit") + assertLength(t, sel.Nodes, 1) +} + +func TestContentsFilteredRollback(t *testing.T) { + sel := Doc().Find(".pvk-content") + sel2 := sel.ContentsFiltered(".hero-unit").End() + assertEqual(t, sel, sel2) +} + +func TestChildrenFilteredNone(t *testing.T) { + sel := Doc().Find(".pvk-content").ChildrenFiltered("a.btn") + assertLength(t, sel.Nodes, 0) +} + +func TestParent(t *testing.T) { + sel := Doc().Find(".container-fluid").Parent() + assertLength(t, sel.Nodes, 3) +} + +func TestParentRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.Parent().End() + assertEqual(t, sel, sel2) +} + +func TestParentBody(t *testing.T) { + sel := Doc().Find("body").Parent() + assertLength(t, sel.Nodes, 1) +} + +func TestParentFiltered(t *testing.T) { + sel := Doc().Find(".container-fluid").ParentFiltered(".hero-unit") + assertLength(t, sel.Nodes, 1) + assertClass(t, sel, "hero-unit") +} + +func TestParentFilteredRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.ParentFiltered(".hero-unit").End() + assertEqual(t, sel, sel2) +} + +func TestParents(t *testing.T) { + sel := Doc().Find(".container-fluid").Parents() + assertLength(t, sel.Nodes, 8) +} + +func TestParentsOrder(t *testing.T) { + sel := Doc().Find("#cf2").Parents() + assertLength(t, sel.Nodes, 6) + assertSelectionIs(t, sel, ".hero-unit", ".pvk-content", "div.row-fluid", "#cf1", "body", "html") +} + +func TestParentsRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.Parents().End() + assertEqual(t, sel, sel2) +} + +func TestParentsFiltered(t *testing.T) { + sel := Doc().Find(".container-fluid").ParentsFiltered("body") + assertLength(t, sel.Nodes, 1) +} + +func TestParentsFilteredRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.ParentsFiltered("body").End() + assertEqual(t, sel, sel2) +} + +func TestParentsUntil(t *testing.T) { + sel := Doc().Find(".container-fluid").ParentsUntil("body") + assertLength(t, sel.Nodes, 6) +} + +func TestParentsUntilRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.ParentsUntil("body").End() + assertEqual(t, sel, sel2) +} + +func TestParentsUntilSelection(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".pvk-content") + sel = sel.ParentsUntilSelection(sel2) + assertLength(t, sel.Nodes, 3) +} + +func TestParentsUntilSelectionRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".pvk-content") + sel2 = sel.ParentsUntilSelection(sel2).End() + assertEqual(t, sel, sel2) +} + +func TestParentsUntilNodes(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".pvk-content, .hero-unit") + sel = sel.ParentsUntilNodes(sel2.Nodes...) + assertLength(t, sel.Nodes, 2) +} + +func TestParentsUntilNodesRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".pvk-content, .hero-unit") + sel2 = sel.ParentsUntilNodes(sel2.Nodes...).End() + assertEqual(t, sel, sel2) +} + +func TestParentsFilteredUntil(t *testing.T) { + sel := Doc().Find(".container-fluid").ParentsFilteredUntil(".pvk-content", "body") + assertLength(t, sel.Nodes, 2) +} + +func TestParentsFilteredUntilRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.ParentsFilteredUntil(".pvk-content", "body").End() + assertEqual(t, sel, sel2) +} + +func TestParentsFilteredUntilSelection(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".row-fluid") + sel = sel.ParentsFilteredUntilSelection("div", sel2) + assertLength(t, sel.Nodes, 3) +} + +func TestParentsFilteredUntilSelectionRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".row-fluid") + sel2 = sel.ParentsFilteredUntilSelection("div", sel2).End() + assertEqual(t, sel, sel2) +} + +func TestParentsFilteredUntilNodes(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".row-fluid") + sel = sel.ParentsFilteredUntilNodes("body", sel2.Nodes...) + assertLength(t, sel.Nodes, 1) +} + +func TestParentsFilteredUntilNodesRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := Doc().Find(".row-fluid") + sel2 = sel.ParentsFilteredUntilNodes("body", sel2.Nodes...).End() + assertEqual(t, sel, sel2) +} + +func TestSiblings(t *testing.T) { + sel := Doc().Find("h1").Siblings() + assertLength(t, sel.Nodes, 1) +} + +func TestSiblingsRollback(t *testing.T) { + sel := Doc().Find("h1") + sel2 := sel.Siblings().End() + assertEqual(t, sel, sel2) +} + +func TestSiblings2(t *testing.T) { + sel := Doc().Find(".pvk-gutter").Siblings() + assertLength(t, sel.Nodes, 9) +} + +func TestSiblings3(t *testing.T) { + sel := Doc().Find("body>.container-fluid").Siblings() + assertLength(t, sel.Nodes, 0) +} + +func TestSiblingsFiltered(t *testing.T) { + sel := Doc().Find(".pvk-gutter").SiblingsFiltered(".pvk-content") + assertLength(t, sel.Nodes, 3) +} + +func TestSiblingsFilteredRollback(t *testing.T) { + sel := Doc().Find(".pvk-gutter") + sel2 := sel.SiblingsFiltered(".pvk-content").End() + assertEqual(t, sel, sel2) +} + +func TestNext(t *testing.T) { + sel := Doc().Find("h1").Next() + assertLength(t, sel.Nodes, 1) +} + +func TestNextRollback(t *testing.T) { + sel := Doc().Find("h1") + sel2 := sel.Next().End() + assertEqual(t, sel, sel2) +} + +func TestNext2(t *testing.T) { + sel := Doc().Find(".close").Next() + assertLength(t, sel.Nodes, 1) +} + +func TestNextNone(t *testing.T) { + sel := Doc().Find("small").Next() + assertLength(t, sel.Nodes, 0) +} + +func TestNextFiltered(t *testing.T) { + sel := Doc().Find(".container-fluid").NextFiltered("div") + assertLength(t, sel.Nodes, 2) +} + +func TestNextFilteredRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.NextFiltered("div").End() + assertEqual(t, sel, sel2) +} + +func TestNextFiltered2(t *testing.T) { + sel := Doc().Find(".container-fluid").NextFiltered("[ng-view]") + assertLength(t, sel.Nodes, 1) +} + +func TestPrev(t *testing.T) { + sel := Doc().Find(".red").Prev() + assertLength(t, sel.Nodes, 1) + assertClass(t, sel, "green") +} + +func TestPrevRollback(t *testing.T) { + sel := Doc().Find(".red") + sel2 := sel.Prev().End() + assertEqual(t, sel, sel2) +} + +func TestPrev2(t *testing.T) { + sel := Doc().Find(".row-fluid").Prev() + assertLength(t, sel.Nodes, 5) +} + +func TestPrevNone(t *testing.T) { + sel := Doc().Find("h2").Prev() + assertLength(t, sel.Nodes, 0) +} + +func TestPrevFiltered(t *testing.T) { + sel := Doc().Find(".row-fluid").PrevFiltered(".row-fluid") + assertLength(t, sel.Nodes, 5) +} + +func TestPrevFilteredRollback(t *testing.T) { + sel := Doc().Find(".row-fluid") + sel2 := sel.PrevFiltered(".row-fluid").End() + assertEqual(t, sel, sel2) +} + +func TestNextAll(t *testing.T) { + sel := Doc().Find("#cf2 div:nth-child(1)").NextAll() + assertLength(t, sel.Nodes, 3) +} + +func TestNextAllRollback(t *testing.T) { + sel := Doc().Find("#cf2 div:nth-child(1)") + sel2 := sel.NextAll().End() + assertEqual(t, sel, sel2) +} + +func TestNextAll2(t *testing.T) { + sel := Doc().Find("div[ng-cloak]").NextAll() + assertLength(t, sel.Nodes, 1) +} + +func TestNextAllNone(t *testing.T) { + sel := Doc().Find(".footer").NextAll() + assertLength(t, sel.Nodes, 0) +} + +func TestNextAllFiltered(t *testing.T) { + sel := Doc().Find("#cf2 .row-fluid").NextAllFiltered("[ng-cloak]") + assertLength(t, sel.Nodes, 2) +} + +func TestNextAllFilteredRollback(t *testing.T) { + sel := Doc().Find("#cf2 .row-fluid") + sel2 := sel.NextAllFiltered("[ng-cloak]").End() + assertEqual(t, sel, sel2) +} + +func TestNextAllFiltered2(t *testing.T) { + sel := Doc().Find(".close").NextAllFiltered("h4") + assertLength(t, sel.Nodes, 1) +} + +func TestPrevAll(t *testing.T) { + sel := Doc().Find("[ng-view]").PrevAll() + assertLength(t, sel.Nodes, 2) +} + +func TestPrevAllOrder(t *testing.T) { + sel := Doc().Find("[ng-view]").PrevAll() + assertLength(t, sel.Nodes, 2) + assertSelectionIs(t, sel, "#cf4", "#cf3") +} + +func TestPrevAllRollback(t *testing.T) { + sel := Doc().Find("[ng-view]") + sel2 := sel.PrevAll().End() + assertEqual(t, sel, sel2) +} + +func TestPrevAll2(t *testing.T) { + sel := Doc().Find(".pvk-gutter").PrevAll() + assertLength(t, sel.Nodes, 6) +} + +func TestPrevAllFiltered(t *testing.T) { + sel := Doc().Find(".pvk-gutter").PrevAllFiltered(".pvk-content") + assertLength(t, sel.Nodes, 3) +} + +func TestPrevAllFilteredRollback(t *testing.T) { + sel := Doc().Find(".pvk-gutter") + sel2 := sel.PrevAllFiltered(".pvk-content").End() + assertEqual(t, sel, sel2) +} + +func TestNextUntil(t *testing.T) { + sel := Doc().Find(".alert a").NextUntil("p") + assertLength(t, sel.Nodes, 1) + assertSelectionIs(t, sel, "h4") +} + +func TestNextUntil2(t *testing.T) { + sel := Doc().Find("#cf2-1").NextUntil("[ng-cloak]") + assertLength(t, sel.Nodes, 1) + assertSelectionIs(t, sel, "#cf2-2") +} + +func TestNextUntilOrder(t *testing.T) { + sel := Doc().Find("#cf2-1").NextUntil("#cf2-4") + assertLength(t, sel.Nodes, 2) + assertSelectionIs(t, sel, "#cf2-2", "#cf2-3") +} + +func TestNextUntilRollback(t *testing.T) { + sel := Doc().Find("#cf2-1") + sel2 := sel.PrevUntil("#cf2-4").End() + assertEqual(t, sel, sel2) +} + +func TestNextUntilSelection(t *testing.T) { + sel := Doc2().Find("#n2") + sel2 := Doc2().Find("#n4") + sel2 = sel.NextUntilSelection(sel2) + assertLength(t, sel2.Nodes, 1) + assertSelectionIs(t, sel2, "#n3") +} + +func TestNextUntilSelectionRollback(t *testing.T) { + sel := Doc2().Find("#n2") + sel2 := Doc2().Find("#n4") + sel2 = sel.NextUntilSelection(sel2).End() + assertEqual(t, sel, sel2) +} + +func TestNextUntilNodes(t *testing.T) { + sel := Doc2().Find("#n2") + sel2 := Doc2().Find("#n5") + sel2 = sel.NextUntilNodes(sel2.Nodes...) + assertLength(t, sel2.Nodes, 2) + assertSelectionIs(t, sel2, "#n3", "#n4") +} + +func TestNextUntilNodesRollback(t *testing.T) { + sel := Doc2().Find("#n2") + sel2 := Doc2().Find("#n5") + sel2 = sel.NextUntilNodes(sel2.Nodes...).End() + assertEqual(t, sel, sel2) +} + +func TestPrevUntil(t *testing.T) { + sel := Doc().Find(".alert p").PrevUntil("a") + assertLength(t, sel.Nodes, 1) + assertSelectionIs(t, sel, "h4") +} + +func TestPrevUntil2(t *testing.T) { + sel := Doc().Find("[ng-cloak]").PrevUntil(":not([ng-cloak])") + assertLength(t, sel.Nodes, 1) + assertSelectionIs(t, sel, "[ng-cloak]") +} + +func TestPrevUntilOrder(t *testing.T) { + sel := Doc().Find("#cf2-4").PrevUntil("#cf2-1") + assertLength(t, sel.Nodes, 2) + assertSelectionIs(t, sel, "#cf2-3", "#cf2-2") +} + +func TestPrevUntilRollback(t *testing.T) { + sel := Doc().Find("#cf2-4") + sel2 := sel.PrevUntil("#cf2-1").End() + assertEqual(t, sel, sel2) +} + +func TestPrevUntilSelection(t *testing.T) { + sel := Doc2().Find("#n4") + sel2 := Doc2().Find("#n2") + sel2 = sel.PrevUntilSelection(sel2) + assertLength(t, sel2.Nodes, 1) + assertSelectionIs(t, sel2, "#n3") +} + +func TestPrevUntilSelectionRollback(t *testing.T) { + sel := Doc2().Find("#n4") + sel2 := Doc2().Find("#n2") + sel2 = sel.PrevUntilSelection(sel2).End() + assertEqual(t, sel, sel2) +} + +func TestPrevUntilNodes(t *testing.T) { + sel := Doc2().Find("#n5") + sel2 := Doc2().Find("#n2") + sel2 = sel.PrevUntilNodes(sel2.Nodes...) + assertLength(t, sel2.Nodes, 2) + assertSelectionIs(t, sel2, "#n4", "#n3") +} + +func TestPrevUntilNodesRollback(t *testing.T) { + sel := Doc2().Find("#n5") + sel2 := Doc2().Find("#n2") + sel2 = sel.PrevUntilNodes(sel2.Nodes...).End() + assertEqual(t, sel, sel2) +} + +func TestNextFilteredUntil(t *testing.T) { + sel := Doc2().Find(".two").NextFilteredUntil(".even", ".six") + assertLength(t, sel.Nodes, 4) + assertSelectionIs(t, sel, "#n3", "#n5", "#nf3", "#nf5") +} + +func TestNextFilteredUntilRollback(t *testing.T) { + sel := Doc2().Find(".two") + sel2 := sel.NextFilteredUntil(".even", ".six").End() + assertEqual(t, sel, sel2) +} + +func TestNextFilteredUntilSelection(t *testing.T) { + sel := Doc2().Find(".even") + sel2 := Doc2().Find(".five") + sel = sel.NextFilteredUntilSelection(".even", sel2) + assertLength(t, sel.Nodes, 2) + assertSelectionIs(t, sel, "#n3", "#nf3") +} + +func TestNextFilteredUntilSelectionRollback(t *testing.T) { + sel := Doc2().Find(".even") + sel2 := Doc2().Find(".five") + sel3 := sel.NextFilteredUntilSelection(".even", sel2).End() + assertEqual(t, sel, sel3) +} + +func TestNextFilteredUntilNodes(t *testing.T) { + sel := Doc2().Find(".even") + sel2 := Doc2().Find(".four") + sel = sel.NextFilteredUntilNodes(".odd", sel2.Nodes...) + assertLength(t, sel.Nodes, 4) + assertSelectionIs(t, sel, "#n2", "#n6", "#nf2", "#nf6") +} + +func TestNextFilteredUntilNodesRollback(t *testing.T) { + sel := Doc2().Find(".even") + sel2 := Doc2().Find(".four") + sel3 := sel.NextFilteredUntilNodes(".odd", sel2.Nodes...).End() + assertEqual(t, sel, sel3) +} + +func TestPrevFilteredUntil(t *testing.T) { + sel := Doc2().Find(".five").PrevFilteredUntil(".odd", ".one") + assertLength(t, sel.Nodes, 4) + assertSelectionIs(t, sel, "#n4", "#n2", "#nf4", "#nf2") +} + +func TestPrevFilteredUntilRollback(t *testing.T) { + sel := Doc2().Find(".four") + sel2 := sel.PrevFilteredUntil(".odd", ".one").End() + assertEqual(t, sel, sel2) +} + +func TestPrevFilteredUntilSelection(t *testing.T) { + sel := Doc2().Find(".odd") + sel2 := Doc2().Find(".two") + sel = sel.PrevFilteredUntilSelection(".odd", sel2) + assertLength(t, sel.Nodes, 2) + assertSelectionIs(t, sel, "#n4", "#nf4") +} + +func TestPrevFilteredUntilSelectionRollback(t *testing.T) { + sel := Doc2().Find(".even") + sel2 := Doc2().Find(".five") + sel3 := sel.PrevFilteredUntilSelection(".even", sel2).End() + assertEqual(t, sel, sel3) +} + +func TestPrevFilteredUntilNodes(t *testing.T) { + sel := Doc2().Find(".even") + sel2 := Doc2().Find(".four") + sel = sel.PrevFilteredUntilNodes(".odd", sel2.Nodes...) + assertLength(t, sel.Nodes, 2) + assertSelectionIs(t, sel, "#n2", "#nf2") +} + +func TestPrevFilteredUntilNodesRollback(t *testing.T) { + sel := Doc2().Find(".even") + sel2 := Doc2().Find(".four") + sel3 := sel.PrevFilteredUntilNodes(".odd", sel2.Nodes...).End() + assertEqual(t, sel, sel3) +} + +func TestClosestItself(t *testing.T) { + sel := Doc2().Find(".three") + sel2 := sel.Closest(".row") + assertLength(t, sel2.Nodes, sel.Length()) + assertSelectionIs(t, sel2, "#n3", "#nf3") +} + +func TestClosestNoDupes(t *testing.T) { + sel := Doc().Find(".span12") + sel2 := sel.Closest(".pvk-content") + assertLength(t, sel2.Nodes, 1) + assertClass(t, sel2, "pvk-content") +} + +func TestClosestNone(t *testing.T) { + sel := Doc().Find("h4") + sel2 := sel.Closest("a") + assertLength(t, sel2.Nodes, 0) +} + +func TestClosestMany(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.Closest(".pvk-content") + assertLength(t, sel2.Nodes, 2) + assertSelectionIs(t, sel2, "#pc1", "#pc2") +} + +func TestClosestRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.Closest(".pvk-content").End() + assertEqual(t, sel, sel2) +} + +func TestClosestSelectionItself(t *testing.T) { + sel := Doc2().Find(".three") + sel2 := sel.ClosestSelection(Doc2().Find(".row")) + assertLength(t, sel2.Nodes, sel.Length()) +} + +func TestClosestSelectionNoDupes(t *testing.T) { + sel := Doc().Find(".span12") + sel2 := sel.ClosestSelection(Doc().Find(".pvk-content")) + assertLength(t, sel2.Nodes, 1) + assertClass(t, sel2, "pvk-content") +} + +func TestClosestSelectionNone(t *testing.T) { + sel := Doc().Find("h4") + sel2 := sel.ClosestSelection(Doc().Find("a")) + assertLength(t, sel2.Nodes, 0) +} + +func TestClosestSelectionMany(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.ClosestSelection(Doc().Find(".pvk-content")) + assertLength(t, sel2.Nodes, 2) + assertSelectionIs(t, sel2, "#pc1", "#pc2") +} + +func TestClosestSelectionRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.ClosestSelection(Doc().Find(".pvk-content")).End() + assertEqual(t, sel, sel2) +} + +func TestClosestNodesItself(t *testing.T) { + sel := Doc2().Find(".three") + sel2 := sel.ClosestNodes(Doc2().Find(".row").Nodes...) + assertLength(t, sel2.Nodes, sel.Length()) +} + +func TestClosestNodesNoDupes(t *testing.T) { + sel := Doc().Find(".span12") + sel2 := sel.ClosestNodes(Doc().Find(".pvk-content").Nodes...) + assertLength(t, sel2.Nodes, 1) + assertClass(t, sel2, "pvk-content") +} + +func TestClosestNodesNone(t *testing.T) { + sel := Doc().Find("h4") + sel2 := sel.ClosestNodes(Doc().Find("a").Nodes...) + assertLength(t, sel2.Nodes, 0) +} + +func TestClosestNodesMany(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.ClosestNodes(Doc().Find(".pvk-content").Nodes...) + assertLength(t, sel2.Nodes, 2) + assertSelectionIs(t, sel2, "#pc1", "#pc2") +} + +func TestClosestNodesRollback(t *testing.T) { + sel := Doc().Find(".container-fluid") + sel2 := sel.ClosestNodes(Doc().Find(".pvk-content").Nodes...).End() + assertEqual(t, sel, sel2) +} + +func TestIssue26(t *testing.T) { + img1 := `150x150` + img2 := `150x150` + cases := []struct { + s string + l int + }{ + {s: img1 + img2, l: 2}, + {s: img1, l: 1}, + {s: img2, l: 1}, + } + for _, c := range cases { + doc, err := NewDocumentFromReader(strings.NewReader(c.s)) + if err != nil { + t.Fatal(err) + } + sel := doc.Find("img[src]") + assertLength(t, sel.Nodes, c.l) + } +} diff --git a/vendor/github.com/PuerkitoBio/goquery/type_test.go b/vendor/github.com/PuerkitoBio/goquery/type_test.go new file mode 100644 index 00000000..98ee3a64 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/type_test.go @@ -0,0 +1,192 @@ +package goquery + +import ( + "bytes" + "fmt" + "os" + "testing" + + "golang.org/x/net/html" +) + +// Test helper functions and members +var doc *Document +var doc2 *Document +var doc3 *Document +var docB *Document +var docW *Document + +func Doc() *Document { + if doc == nil { + doc = loadDoc("page.html") + } + return doc +} +func DocClone() *Document { + return CloneDocument(Doc()) +} +func Doc2() *Document { + if doc2 == nil { + doc2 = loadDoc("page2.html") + } + return doc2 +} +func Doc2Clone() *Document { + return CloneDocument(Doc2()) +} +func Doc3() *Document { + if doc3 == nil { + doc3 = loadDoc("page3.html") + } + return doc3 +} +func Doc3Clone() *Document { + return CloneDocument(Doc3()) +} +func DocB() *Document { + if docB == nil { + docB = loadDoc("gotesting.html") + } + return docB +} +func DocBClone() *Document { + return CloneDocument(DocB()) +} +func DocW() *Document { + if docW == nil { + docW = loadDoc("gowiki.html") + } + return docW +} +func DocWClone() *Document { + return CloneDocument(DocW()) +} + +func assertLength(t *testing.T, nodes []*html.Node, length int) { + if len(nodes) != length { + t.Errorf("Expected %d nodes, found %d.", length, len(nodes)) + for i, n := range nodes { + t.Logf("Node %d: %+v.", i, n) + } + } +} + +func assertClass(t *testing.T, sel *Selection, class string) { + if !sel.HasClass(class) { + t.Errorf("Expected node to have class %s, found %+v.", class, sel.Get(0)) + } +} + +func assertPanic(t *testing.T) { + if e := recover(); e == nil { + t.Error("Expected a panic.") + } +} + +func assertEqual(t *testing.T, s1 *Selection, s2 *Selection) { + if s1 != s2 { + t.Error("Expected selection objects to be the same.") + } +} + +func assertSelectionIs(t *testing.T, sel *Selection, is ...string) { + for i := 0; i < sel.Length(); i++ { + if !sel.Eq(i).Is(is[i]) { + t.Errorf("Expected node %d to be %s, found %+v", i, is[i], sel.Get(i)) + } + } +} + +func printSel(t *testing.T, sel *Selection) { + if testing.Verbose() { + h, err := sel.Html() + if err != nil { + t.Fatal(err) + } + t.Log(h) + } +} + +func loadDoc(page string) *Document { + var f *os.File + var e error + + if f, e = os.Open(fmt.Sprintf("./testdata/%s", page)); e != nil { + panic(e.Error()) + } + defer f.Close() + + var node *html.Node + if node, e = html.Parse(f); e != nil { + panic(e.Error()) + } + return NewDocumentFromNode(node) +} + +func TestNewDocument(t *testing.T) { + if f, e := os.Open("./testdata/page.html"); e != nil { + t.Error(e.Error()) + } else { + defer f.Close() + if node, e := html.Parse(f); e != nil { + t.Error(e.Error()) + } else { + doc = NewDocumentFromNode(node) + } + } +} + +func TestNewDocumentFromReader(t *testing.T) { + cases := []struct { + src string + err bool + sel string + cnt int + }{ + 0: { + src: ` + + +Test + +

Hi

+ +`, + sel: "h1", + cnt: 1, + }, + 1: { + // Actually pretty hard to make html.Parse return an error + // based on content... + src: `>>qq>`, + }, + } + buf := bytes.NewBuffer(nil) + + for i, c := range cases { + buf.Reset() + buf.WriteString(c.src) + + d, e := NewDocumentFromReader(buf) + if (e != nil) != c.err { + if c.err { + t.Errorf("[%d] - expected error, got none", i) + } else { + t.Errorf("[%d] - expected no error, got %s", i, e) + } + } + if c.sel != "" { + s := d.Find(c.sel) + if s.Length() != c.cnt { + t.Errorf("[%d] - expected %d nodes, found %d", i, c.cnt, s.Length()) + } + } + } +} + +func TestNewDocumentFromResponseNil(t *testing.T) { + _, e := NewDocumentFromResponse(nil) + if e == nil { + t.Error("Expected error, got none") + } +} diff --git a/vendor/github.com/andybalholm/cascadia/LICENSE b/vendor/github.com/andybalholm/cascadia/LICENSE old mode 100644 new mode 100755 diff --git a/vendor/github.com/andybalholm/cascadia/benchmark_test.go b/vendor/github.com/andybalholm/cascadia/benchmark_test.go new file mode 100644 index 00000000..42bf5000 --- /dev/null +++ b/vendor/github.com/andybalholm/cascadia/benchmark_test.go @@ -0,0 +1,53 @@ +package cascadia + +import ( + "strings" + "testing" + + "golang.org/x/net/html" +) + +func MustParseHTML(doc string) *html.Node { + dom, err := html.Parse(strings.NewReader(doc)) + if err != nil { + panic(err) + } + return dom +} + +var selector = MustCompile(`div.matched`) +var doc = ` + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +` +var dom = MustParseHTML(doc) + +func BenchmarkMatchAll(b *testing.B) { + var matches []*html.Node + for i := 0; i < b.N; i++ { + matches = selector.MatchAll(dom) + } + _ = matches +} diff --git a/vendor/github.com/andybalholm/cascadia/parser_test.go b/vendor/github.com/andybalholm/cascadia/parser_test.go new file mode 100644 index 00000000..47dd4a69 --- /dev/null +++ b/vendor/github.com/andybalholm/cascadia/parser_test.go @@ -0,0 +1,86 @@ +package cascadia + +import ( + "testing" +) + +var identifierTests = map[string]string{ + "x": "x", + "96": "", + "-x": "-x", + `r\e9 sumé`: "résumé", + `a\"b`: `a"b`, +} + +func TestParseIdentifier(t *testing.T) { + for source, want := range identifierTests { + p := &parser{s: source} + got, err := p.parseIdentifier() + + if err != nil { + if want == "" { + // It was supposed to be an error. + continue + } + t.Errorf("parsing %q: got error (%s), want %q", source, err, want) + continue + } + + if want == "" { + if err == nil { + t.Errorf("parsing %q: got %q, want error", source, got) + } + continue + } + + if p.i < len(source) { + t.Errorf("parsing %q: %d bytes left over", source, len(source)-p.i) + continue + } + + if got != want { + t.Errorf("parsing %q: got %q, want %q", source, got, want) + } + } +} + +var stringTests = map[string]string{ + `"x"`: "x", + `'x'`: "x", + `'x`: "", + "'x\\\r\nx'": "xx", + `"r\e9 sumé"`: "résumé", + `"a\"b"`: `a"b`, +} + +func TestParseString(t *testing.T) { + for source, want := range stringTests { + p := &parser{s: source} + got, err := p.parseString() + + if err != nil { + if want == "" { + // It was supposed to be an error. + continue + } + t.Errorf("parsing %q: got error (%s), want %q", source, err, want) + continue + } + + if want == "" { + if err == nil { + t.Errorf("parsing %q: got %q, want error", source, got) + } + continue + } + + if p.i < len(source) { + t.Errorf("parsing %q: %d bytes left over", source, len(source)-p.i) + continue + } + + if got != want { + t.Errorf("parsing %q: got %q, want %q", source, got, want) + } + } +} diff --git a/vendor/github.com/andybalholm/cascadia/selector_test.go b/vendor/github.com/andybalholm/cascadia/selector_test.go new file mode 100644 index 00000000..8438d384 --- /dev/null +++ b/vendor/github.com/andybalholm/cascadia/selector_test.go @@ -0,0 +1,559 @@ +package cascadia + +import ( + "strings" + "testing" + + "golang.org/x/net/html" +) + +type selectorTest struct { + HTML, selector string + results []string +} + +func nodeString(n *html.Node) string { + switch n.Type { + case html.TextNode: + return n.Data + case html.ElementNode: + return html.Token{ + Type: html.StartTagToken, + Data: n.Data, + Attr: n.Attr, + }.String() + } + return "" +} + +var selectorTests = []selectorTest{ + { + `
This address...
`, + "address", + []string{ + "
", + }, + }, + { + ``, + "*", + []string{ + "", + "", + "", + "", + }, + }, + { + `

`, + "#foo", + []string{ + `

`, + }, + }, + { + `

+#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 +| +| +| +|
+| +| +| +|

+ +#data + +#errors +Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +Line: 1 Col: 10 Expected closing tag. Unexpected end of file. +#document +| +| +| diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests10.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests10.dat new file mode 100644 index 00000000..4f8df86f --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests10.dat @@ -0,0 +1,799 @@ +#data + +#errors +#document +| +| +| +| +| + +#data +a +#errors +29: Bogus comment +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| + +#data + +#errors +35: Stray “svg” start tag. +42: Stray end tag “svg” +#document +| +| +| +| +| +#errors +43: Stray “svg” start tag. +50: Stray end tag “svg” +#document +| +| +| +| +|

+#errors +34: Start tag “svg” seen in “table”. +41: Stray end tag “svg”. +#document +| +| +| +| +| +| + +#data +
foo
+#errors +34: Start tag “svg” seen in “table”. +46: Stray end tag “g”. +53: Stray end tag “svg”. +#document +| +| +| +| +| +| +| "foo" +| + +#data +
foobar
+#errors +34: Start tag “svg” seen in “table”. +46: Stray end tag “g”. +58: Stray end tag “g”. +65: Stray end tag “svg”. +#document +| +| +| +| +| +| +| "foo" +| +| "bar" +| + +#data +
foobar
+#errors +41: Start tag “svg” seen in “table”. +53: Stray end tag “g”. +65: Stray end tag “g”. +72: Stray end tag “svg”. +#document +| +| +| +| +| +| +| "foo" +| +| "bar" +| +| + +#data +
foobar
+#errors +45: Start tag “svg” seen in “table”. +57: Stray end tag “g”. +69: Stray end tag “g”. +76: Stray end tag “svg”. +#document +| +| +| +| +| +| +| "foo" +| +| "bar" +| +| +| + +#data +
foobar
+#errors +#document +| +| +| +| +| +| +| +|
+| +| +| "foo" +| +| "bar" + +#data +
foobar

baz

+#errors +#document +| +| +| +| +| +| +| +|
+| +| +| "foo" +| +| "bar" +|

+| "baz" + +#data +
foobar

baz

+#errors +#document +| +| +| +| +| +|
+| +| +| "foo" +| +| "bar" +|

+| "baz" + +#data +
foobar

baz

quux +#errors +70: HTML start tag “p” in a foreign namespace context. +81: “table” closed but “caption” was still open. +#document +| +| +| +| +| +|
+| +| +| "foo" +| +| "bar" +|

+| "baz" +|

+| "quux" + +#data +
foobarbaz

quux +#errors +78: “table” closed but “caption” was still open. +78: Unclosed elements on stack. +#document +| +| +| +| +| +|
+| +| +| "foo" +| +| "bar" +| "baz" +|

+| "quux" + +#data +foobar

baz

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 +| +| +| +| +| +| +| "foo" +| +| "bar" +|

+| "baz" +| +| +|

+| "quux" + +#data +

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 +| +| +| +| +| +| +| +|
+|

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 +| +| +| +| +| +|

+| "quux" + +#data +foobar

baz +#errors +41: Stray “svg” start tag. +68: HTML start tag “p” in a foreign namespace context. +#document +| +| +| +| +| +| +| "foo" +| +| "bar" +|

+| "baz" + +#data +foobar

baz +#errors +34: Stray “svg” start tag. +61: HTML start tag “p” in a foreign namespace context. +#document +| +| +| +| +| +| +| "foo" +| +| "bar" +|

+| "baz" + +#data +

+#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 +| +| +| +| + +#data +

+#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 +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| xlink:href="foo" +| +| xlink href="foo" + +#data + +#errors +#document +| +| +| +| +| xlink:href="foo" +| xml:lang="en" +| +| +| xlink href="foo" +| xml lang="en" + +#data + +#errors +#document +| +| +| +| +| xlink:href="foo" +| xml:lang="en" +| +| +| xlink href="foo" +| xml lang="en" + +#data +bar +#errors +#document +| +| +| +| +| xlink:href="foo" +| xml:lang="en" +| +| +| xlink href="foo" +| xml lang="en" +| "bar" + +#data + +#errors +#document +| +| +| +| + +#data +

a +#errors +#document +| +| +| +|
+| +| "a" + +#data +
a +#errors +#document +| +| +| +|
+| +| +| "a" + +#data +
+#errors +#document +| +| +| +|
+| +| +| + +#data +
a +#errors +#document +| +| +| +|
+| +| +| +| +| "a" + +#data +

a +#errors +#document +| +| +| +|

+| +| +| +|

+| "a" + +#data +
    a +#errors +40: HTML start tag “ul” in a foreign namespace context. +41: End of file in a foreign namespace context. +#document +| +| +| +| +| +| +|
    +| +|
      +| "a" + +#data +
        a +#errors +35: HTML start tag “ul” in a foreign namespace context. +36: End of file in a foreign namespace context. +#document +| +| +| +| +| +| +| +|
          +| "a" + +#data +

          +#errors +#document +| +| +| +| +|

          +| +| +|

          + +#data +

          +#errors +#document +| +| +| +| +|

          +| +| +|

          + +#data +

          +#errors +#document +| +| +| +|

          +| +| +| +|

          +|

          + +#data +
          +#errors +#document +| +| +| +| +| +|
          +| +|
          +| +| + +#data +
          +#errors +#document +| +| +| +| +| +| +| +|
          +|
          +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data +

+#errors +#document +| +| +| +| +|
+| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| +| + +#data +
+#errors +#document +| +| +| +| +| +| +| +|
+| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| +| +| +| +| +| +| +| +| diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests11.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests11.dat new file mode 100644 index 00000000..638cde47 --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests11.dat @@ -0,0 +1,482 @@ +#data + +#errors +#document +| +| +| +| +| +| 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 + +#errors +#document +| +| +| +| +| +| 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 + +#errors +#document +| +| +| +| +| +| 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 + +#errors +#document +| +| +| +| +| +| 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 + +#errors +#document +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests12.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests12.dat new file mode 100644 index 00000000..63107d27 --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests12.dat @@ -0,0 +1,62 @@ +#data +

foobazeggs

spam

quuxbar +#errors +#document +| +| +| +| +|

+| "foo" +| +| +| +| "baz" +| +| +| +| +| "eggs" +| +| +|

+| "spam" +| +| +| +|
+| +| +| "quux" +| "bar" + +#data +foobazeggs

spam
quuxbar +#errors +#document +| +| +| +| +| "foo" +| +| +| +| "baz" +| +| +| +| +| "eggs" +| +| +|

+| "spam" +| +| +| +|
+| +| +| "quux" +| "bar" diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests14.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests14.dat new file mode 100644 index 00000000..b8713f88 --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests14.dat @@ -0,0 +1,74 @@ +#data + +#errors +#document +| +| +| +| +| + +#data + +#errors +#document +| +| +| +| +| +| + +#data + +#errors +15: Unexpected start tag html +#document +| +| +| abc:def="gh" +| +| +| + +#data + +#errors +15: Unexpected start tag html +#document +| +| +| xml:lang="bar" +| +| + +#data + +#errors +#document +| +| +| 123="456" +| +| + +#data + +#errors +#document +| +| +| 123="456" +| 789="012" +| +| + +#data + +#errors +#document +| +| +| +| +| 789="012" diff --git a/vendor/golang.org/x/net/html/testdata/webkit/tests15.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests15.dat new file mode 100644 index 00000000..6ce1c0d1 --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests15.dat @@ -0,0 +1,208 @@ +#data +

X +#errors +Line: 1 Col: 31 Unexpected end tag (p). Ignored. +Line: 1 Col: 36 Expected closing tag. Unexpected end of file. +#document +| +| +| +| +|

+| +| +| +| +| +| +| " " +|

+| "X" + +#data +

+

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 +| +| +| +|

+| +| +| +| +| +| +| " +" +|

+| "X" + +#data + +#errors +Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element. +#document +| +| +| +| +| " " + +#data + +#errors +Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. +#document +| +| +| +| +| + +#data + +#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 +| +| +| +| + +#data +X +#errors +Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. +#document +| +| +| +| +| +| "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/vendor/golang.org/x/net/html/testdata/webkit/tests16.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests16.dat new file mode 100644 index 00000000..c8ef66f0 --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests16.dat @@ -0,0 +1,2299 @@ +#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>--> +#errors +Line: 1 Col: 52 Unexpected end tag (title). +#document +| +| +| +| +| "<!--<title>" +| <body> +| "-->" + +#data +<!doctype html><title></title> +#errors +#document +| +| +| +| +| "" +| + +#data +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>--> +#errors +Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +Line: 1 Col: 37 Unexpected end tag (title). +#document +| +| +| +| "<!--<title>" +| <body> +| "-->" + +#data +<title></title> +#errors +Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +#document +| +| +| +| "" +| + +#data +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/vendor/golang.org/x/net/html/testdata/webkit/tests17.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests17.dat new file mode 100644 index 00000000..7b555f88 --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests17.dat @@ -0,0 +1,153 @@ +#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/vendor/golang.org/x/net/html/testdata/webkit/tests18.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests18.dat new file mode 100644 index 00000000..680e1f06 --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests18.dat @@ -0,0 +1,269 @@ +#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/vendor/golang.org/x/net/html/testdata/webkit/tests19.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests19.dat new file mode 100644 index 00000000..0d62f5a5 --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests19.dat @@ -0,0 +1,1237 @@ +#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/vendor/golang.org/x/net/html/testdata/webkit/tests2.dat b/vendor/golang.org/x/net/html/testdata/webkit/tests2.dat new file mode 100644 index 00000000..60d85922 --- /dev/null +++ b/vendor/golang.org/x/net/html/testdata/webkit/tests2.dat @@ -0,0 +1,763 @@ +#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> +#errors +#document +| +| +| +| +| +| "test</body>" + +#data +<!DOCTYPE html><body><title>X +#errors +#document +| +| +| +| +| +| "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 +#errors +#document +| +| +| +| +#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 +| +| +| +#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 +| +| +| +#errors +Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +#document +| +| +| +| +| "x" +| 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 +| +| +| --> x +#errors +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +#document +| +| +| x +#errors +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +#document +| +| +| x +#errors +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +#document +| +| +| x +#errors +Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +#document +| +| +|

+#errors +#document +| +| +| +| +| +| ddd +#errors +#document +| +| +| +#errors +#document +| +| +| +| +|
  • +| +| ", + "