15107: Add login-redirect test.
authorTom Clegg <tclegg@veritasgenetics.com>
Wed, 13 Nov 2019 20:02:09 +0000 (15:02 -0500)
committerTom Clegg <tclegg@veritasgenetics.com>
Wed, 13 Nov 2019 20:02:09 +0000 (15:02 -0500)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

lib/controller/rpc/conn_test.go

index 80e90a043f23e66c85d2c49f49280de84a061ee8..7a5403e930edb3ec197191d6319487a7ae2f5eda 100644 (file)
@@ -36,10 +36,21 @@ func (s *RPCSuite) SetUpTest(c *check.C) {
        ctx := ctxlog.Context(context.Background(), ctxlog.TestLogger(c))
        s.ctx = context.WithValue(ctx, contextKeyTestTokens, []string{arvadostest.ActiveToken})
        s.conn = NewConn("zzzzz", &url.URL{Scheme: "https", Host: os.Getenv("ARVADOS_TEST_API_HOST")}, true, func(ctx context.Context) ([]string, error) {
-               return ctx.Value(contextKeyTestTokens).([]string), nil
+               tokens, _ := ctx.Value(contextKeyTestTokens).([]string)
+               return tokens, nil
        })
 }
 
+func (s *RPCSuite) TestLogin(c *check.C) {
+       s.ctx = context.Background()
+       opts := arvados.LoginOptions{
+               ReturnTo: "https://foo.example.com/bar",
+       }
+       resp, err := s.conn.Login(s.ctx, opts)
+       c.Check(err, check.IsNil)
+       c.Check(resp.RedirectLocation, check.Equals, "/auth/joshid?return_to="+url.QueryEscape(","+opts.ReturnTo))
+}
+
 func (s *RPCSuite) TestCollectionCreate(c *check.C) {
        coll, err := s.conn.CollectionCreate(s.ctx, arvados.CreateOptions{Attrs: map[string]interface{}{
                "owner_uuid":         arvadostest.ActiveUserUUID,