File: yadis_discovery_test.go

package info (click to toggle)
golang-github-yohcop-openid-go 0.0~git20170901.0.cfc72ed-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 184 kB
  • sloc: makefile: 3
file content (51 lines) | stat: -rw-r--r-- 1,187 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package openid

import (
	"bytes"
	"testing"
)

func TestFindMetaXrdsLocation(t *testing.T) {
	searchMeta(t, `
      <html>
        <head>
          <meta http-equiv="X-XRDS-Location" content="foo.com">
      `, "foo.com", false)
	searchMeta(t, `
      <html>
        <head>
          <meta http-equiv="other" content="blah.com">
          <meta http-equiv="X-XRDS-Location" content="foo.com">
      `, "foo.com", false)
}

func TestMetaXrdsLocationOutsideHead(t *testing.T) {
	searchMeta(t, `
      <html>
        <meta http-equiv="X-XRDS-Location" content="foo.com">
      `, "", true)
	searchMeta(t, `
      <html>
        <head></head>
        <meta http-equiv="X-XRDS-Location" content="foo.com">
      `, "", true)
}

func TestNoMetaXrdsLocation(t *testing.T) {
	searchMeta(t, `
      <html><head>
        <meta http-equiv="bad-tag" content="foo.com">
      `, "", true)
}

func searchMeta(t *testing.T, doc, loc string, err bool) {
	r := bytes.NewReader([]byte(doc))
	res, e := findMetaXrdsLocation(r)
	if (e != nil) != err {
		t.Errorf("Unexpected error: '%s'", e)
	} else if e == nil {
		if res != loc {
			t.Errorf("Found bad location: Expected %s, Got %s", loc, res)
		}
	}
}