Path: blob/main/components/gitpod-cli/cmd/preview_test.go
2498 views
// Copyright (c) 2020 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package cmd56import (7"os"8"testing"910"github.com/golang/mock/gomock"11)1213func TestReplaceLocalhostInURL(t *testing.T) {14tests := []struct {15Desc string16Input string17ExpectedPort uint1618PortURL string19Expectation string20}{21{"just localhost", "localhost", 80, "80-workspace-url", "80-workspace-url"},22{"just localhost w port", "localhost:1234", 1234, "1234-workspace-url", "1234-workspace-url"},23{"just localhost w http", "http://localhost", 80, "https://80-workspace-url", "https://80-workspace-url"},24{"just localhost w https", "https://localhost", 80, "https://80-workspace-url", "https://80-workspace-url"},25{"just localhost w port/http", "http://localhost:1234", 1234, "https://1234-workspace-url", "https://1234-workspace-url"},26{"just localhost w port/https", "https://localhost:1234", 1234, "https://1234-workspace-url", "https://1234-workspace-url"},27{"localhost param", "https://something.org?cb=localhost", 0, "", "https://something.org?cb=localhost"},28{"localhost param w port", "https://something.org?cb=localhost:8080", 0, "", "https://something.org?cb=localhost:8080"},29{"localhost param w http", "https://something.org?cb=http://localhost", 80, "https://80-workspace-url", "https://something.org?cb=https://80-workspace-url"},30{"localhost param w http/path", "https://something.org?cb=http://localhost/foo", 80, "https://80-workspace-url", "https://something.org?cb=https://80-workspace-url/foo"},31{"localhost param w https", "https://something.org?cb=https://localhost", 80, "https://80-workspace-url", "https://something.org?cb=https://80-workspace-url"},32{"localhost param w port/http", "https://something.org?cb=http://localhost:8080", 8080, "https://8080-workspace-url", "https://something.org?cb=https://8080-workspace-url"},33{"localhost param w port/https", "https://something.org?cb=https://localhost:8080", 8080, "https://8080-workspace-url", "https://something.org?cb=https://8080-workspace-url"},34{"just 127.0.0.1", "127.0.0.1", 80, "80-workspace-url", "80-workspace-url"},35{"just 127.0.0.1 w port", "127.0.0.1:1234", 1234, "1234-workspace-url", "1234-workspace-url"},36{"just 127.0.0.1 w http", "http://127.0.0.1", 80, "https://80-workspace-url", "https://80-workspace-url"},37{"just 127.0.0.1 w https", "https://127.0.0.1", 80, "https://80-workspace-url", "https://80-workspace-url"},38{"just 127.0.0.1 w port/http", "http://127.0.0.1:1234", 1234, "https://1234-workspace-url", "https://1234-workspace-url"},39{"just 127.0.0.1 w port/https", "https://127.0.0.1:1234", 1234, "https://1234-workspace-url", "https://1234-workspace-url"},40{"127.0.0.1 param", "https://something.org?cb=127.0.0.1", 0, "", "https://something.org?cb=127.0.0.1"},41{"127.0.0.1 param w port", "https://something.org?cb=127.0.0.1:8080", 0, "", "https://something.org?cb=127.0.0.1:8080"},42{"127.0.0.1 param w http", "https://something.org?cb=http://127.0.0.1", 80, "https://80-workspace-url", "https://something.org?cb=https://80-workspace-url"},43{"127.0.0.1 param w http/path", "https://something.org?cb=http://127.0.0.1/foo", 80, "https://80-workspace-url", "https://something.org?cb=https://80-workspace-url/foo"},44{"127.0.0.1 param w https", "https://something.org?cb=https://127.0.0.1", 80, "https://80-workspace-url", "https://something.org?cb=https://80-workspace-url"},45{"127.0.0.1 param w port/http", "https://something.org?cb=http://127.0.0.1:8080", 8080, "https://8080-workspace-url", "https://something.org?cb=https://8080-workspace-url"},46{"127.0.0.1 param w port/https", "https://something.org?cb=https://127.0.0.1:8080", 8080, "https://8080-workspace-url", "https://something.org?cb=https://8080-workspace-url"},47}4849os.Setenv("GITPOD_WORKSPACE_URL", "https://workspace-url")50for _, test := range tests {51t.Run(test.Desc, func(t *testing.T) {52ctrl := gomock.NewController(t)53defer ctrl.Finish()5455act := replaceLocalhostInURL(test.Input)56if act != test.Expectation {57t.Errorf("unexpected result: %s, expected %s", act, test.Expectation)58}59})60}61}626364