1// Copyright (C) 2020 Storj Labs, Inc. 2// See LICENSE for copying information. 3 4package testsuite_test 5 6import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 11 "storj.io/common/testcontext" 12 "storj.io/storj/private/testplanet" 13 "storj.io/uplink" 14) 15 16func TestProject_OpenProjectDialFail(t *testing.T) { 17 testplanet.Run(t, testplanet.Config{ 18 SatelliteCount: 1, 19 StorageNodeCount: 0, 20 UplinkCount: 1, 21 }, func(t *testing.T, ctx *testcontext.Context, planet *testplanet.Planet) { 22 projectInfo := planet.Uplinks[0].Projects[0] 23 access, err := uplink.RequestAccessWithPassphrase(ctx, projectInfo.Satellite.URL(), projectInfo.APIKey, "mypassphrase") 24 require.NoError(t, err) 25 26 err = planet.StopPeer(planet.Satellites[0]) 27 require.NoError(t, err) 28 29 project, err := uplink.OpenProject(ctx, access) 30 require.NoError(t, err) 31 defer ctx.Check(project.Close) 32 33 _, err = project.EnsureBucket(ctx, "bucket") 34 require.Error(t, err) 35 }) 36} 37 38func TestProject_OpenProjectMalformedUserAgent(t *testing.T) { 39 config := uplink.Config{ 40 UserAgent: "Invalid (darwin; amd64) invalid/v7.0.6 version/2020-11-17T00:39:14Z", 41 } 42 43 ctx := testcontext.New(t) 44 defer ctx.Cleanup() 45 _, err := config.OpenProject(ctx, &uplink.Access{}) 46 require.Error(t, err) 47 require.Contains(t, err.Error(), "user agent") 48} 49