コード例 #1
0
ファイル: sanity_check.go プロジェクト: geoah/go-fosp
func testSanityCheck() (success bool) {
	defer func() {
		if r := recover(); r != nil {
			println("Error in sanity-check test")
			if s, ok := r.(string); ok {
				println(s)
			}
			success = false
		}
	}()
	user := "******"
	password := "******"
	url, _ := fosp.ParseURL(user + "@" + host + "/")
	child, _ := fosp.ParseURL(user + "@" + host + "/foo")
	obj1, _ := fosp.UnmarshalObject(`{"data": "foo"}`)
	obj2, _ := fosp.UnmarshalObject(`{"data": "bar"}`)
	objNoWrite, _ := fosp.UnmarshalObject(`{ "acl": { "owner": ["not-data-write"], "users": { "` + user + "@" + host + `" : [ "not-data-write" ] } } }`)
	attachment := []byte("Hello World!")

	client := &fosp.Client{}
	err := client.OpenConnection(host)
	if err != nil {
		println("Failed to open connection")
		success = false
		return
	}
	expectE(client.Connect())
	expectE(client.Register(user, password))
	expectE(client.Authenticate(user, password))
	expectE(client.Select(url))
	expectE(client.List(url))
	expectE(client.Create(child, obj1))
	expectE(client.List(url))
	expectE(client.Update(child, obj2))
	expectE(client.Delete(child))
	expectFailed(client.Delete(child))
	expectE(client.Create(child, obj1))
	expectE(client.Update(child, objNoWrite))
	expectFailed(client.Update(child, obj2))
	expectE(client.Write(child, attachment))
	expect(E{Body: string(attachment)})(client.Read(child))
	success = true
	return
}
コード例 #2
0
ファイル: acl.go プロジェクト: geoah/go-fosp
func testAcl() (success bool) {
	defer func() {
		if r := recover(); r != nil {
			println("Error in access control test")
			if s, ok := r.(string); ok {
				println(s)
			}
			success = false
		}
	}()

	userOne := "alice"
	passwordOne := "password"
	clientOne := &fosp.Client{}
	err := clientOne.OpenConnection(host)
	if err != nil {
		panic("Failed to open connection for client one.")
	}
	expectE(clientOne.Connect())
	expectE(clientOne.Register(userOne, passwordOne))
	expectE(clientOne.Authenticate(userOne, passwordOne))

	userTwo := "bob"
	passwordTwo := "password"
	clientTwo := &fosp.Client{}
	err = clientTwo.OpenConnection(host)
	if err != nil {
		panic("Falied to open connection for client two.")
	}
	expectE(clientTwo.Connect())
	expectE(clientTwo.Register(userTwo, passwordTwo))
	expectE(clientTwo.Authenticate(userTwo, passwordTwo))

	rootOne, err := fosp.ParseURL(userOne + "@" + host)
	if err != nil {
		panic("Error when parsing root URL of user one")
	}

	expect(E{Failed: true})(clientTwo.Select(rootOne))
	return true
}