github.com/web-platform-tests/wpt.fyi@v0.0.0-20240530210107-70cf978996f1/shared/util_test.go (about) 1 // +build small 2 3 // Copyright 2018 The WPT Dashboard Project. All rights reserved. 4 // Use of this source code is governed by a BSD-style license that can be 5 // found in the LICENSE file. 6 7 package shared 8 9 import ( 10 "testing" 11 12 "github.com/stretchr/testify/assert" 13 ) 14 15 const shortSHA = "abcdef0123" 16 const resultsURLBase = "https://storage.googleapis.com/wptd/" + shortSHA + "/" 17 const product = "chrome-63.0-linux" 18 const resultsURL = resultsURLBase + "/" + product + "-summary_v2.json.gz" 19 20 func TestMapStringKeys(t *testing.T) { 21 m := map[string]int{"foo": 1} 22 keys, err := MapStringKeys(m) 23 if err != nil { 24 assert.FailNow(t, "Error getting map string keys") 25 } 26 assert.Equal(t, []string{"foo"}, keys) 27 28 m2 := map[string]interface{}{"bar": "baz"} 29 keys, err = MapStringKeys(m2) 30 if err != nil { 31 assert.FailNow(t, "Error getting map string keys") 32 } 33 assert.Equal(t, []string{"bar"}, keys) 34 } 35 36 func TestMapStringKeys_NotAMap(t *testing.T) { 37 one := 1 38 keys, err := MapStringKeys(one) 39 assert.Nil(t, keys) 40 assert.NotNil(t, err) 41 } 42 43 func TestMapStringKeys_NotAStringKeyedMap(t *testing.T) { 44 m := map[int]int{1: 1} 45 keys, err := MapStringKeys(m) 46 assert.Nil(t, keys) 47 assert.NotNil(t, err) 48 } 49 50 func TestProductChannelToLabel(t *testing.T) { 51 assert.Equal(t, StableLabel, ProductChannelToLabel("release")) 52 assert.Equal(t, StableLabel, ProductChannelToLabel("stable")) 53 assert.Equal(t, BetaLabel, ProductChannelToLabel("beta")) 54 assert.Equal(t, ExperimentalLabel, ProductChannelToLabel("dev")) 55 assert.Equal(t, ExperimentalLabel, ProductChannelToLabel("nightly")) 56 assert.Equal(t, ExperimentalLabel, ProductChannelToLabel("preview")) 57 assert.Equal(t, ExperimentalLabel, ProductChannelToLabel("experimental")) 58 assert.Equal(t, "", ProductChannelToLabel("not-a-channel")) 59 } 60 61 func TestGetResultsURL_EmptyFile(t *testing.T) { 62 run := TestRun{ResultsURL: resultsURL} 63 run.Revision = shortSHA 64 checkResult(t, run, "", resultsURL) 65 } 66 67 func TestGetResultsURL_TestFile(t *testing.T) { 68 run := TestRun{ResultsURL: resultsURL} 69 run.Revision = shortSHA 70 file := "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-root-node-001b.html" 71 checkResult(t, run, file, resultsURLBase+product+"/"+file) 72 } 73 74 func TestGetResultsURL_TrailingSlash(t *testing.T) { 75 run := TestRun{ResultsURL: resultsURL} 76 run.Revision = shortSHA 77 checkResult(t, run, "/", resultsURL) 78 } 79 80 func checkResult(t *testing.T, testRun TestRun, testFile string, expected string) { 81 got := GetResultsURL(testRun, testFile) 82 if got != expected { 83 t.Errorf("\nGot:\n%q\nExpected:\n%q", got, expected) 84 } 85 } 86 87 func TestGetSharedPath(t *testing.T) { 88 assert.Equal(t, "/a/b/c.html", GetSharedPath("/a/b/c.html")) 89 assert.Equal(t, "/a/b/", GetSharedPath("/a/b/c.html", "/a/b/d.html")) 90 assert.Equal(t, "/", GetSharedPath("/a/b/c.html", "/d/e/f.html")) 91 assert.Equal(t, "/a/", GetSharedPath("/a/z.html", "/a/b/x.html", "/a/b/y.html")) 92 }