internal/screentest: update screenshot extensions

The screenshot file extensions are updated such that
when the hostname of the origins for a testcase are
equal, for example when comparing cached screenshots
to live screenshots from the same server, the output
filenames do not collide.

Change-Id: I0b82f94d87912923e734fc30ba457a440ede94f4
Reviewed-on: https://go-review.googlesource.com/c/website/+/378476
Run-TryBot: Jamal Carvalho <jamal@golang.org>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Trust: Jamal Carvalho <jamalcarvalho@google.com>
diff --git a/internal/screentest/screentest.go b/internal/screentest/screentest.go
index bfa8bf1..fdf9fac 100644
--- a/internal/screentest/screentest.go
+++ b/internal/screentest/screentest.go
@@ -561,8 +561,8 @@
 			if gcsBucket {
 				outfile = out + "/" + sanitized(test.name)
 			}
-			test.outImgA = outfile + "." + sanitized(urlA.Host) + ".png"
-			test.outImgB = outfile + "." + sanitized(urlB.Host) + ".png"
+			test.outImgA = outfile + "." + sanitized(urlA.Host) + ".a.png"
+			test.outImgB = outfile + "." + sanitized(urlB.Host) + ".b.png"
 			test.outDiff = outfile + ".diff.png"
 		default:
 			// We should never reach this error.
diff --git a/internal/screentest/screentest_test.go b/internal/screentest/screentest_test.go
index fac5d55..587b1d7 100644
--- a/internal/screentest/screentest_test.go
+++ b/internal/screentest/screentest_test.go
@@ -43,8 +43,8 @@
 					name:           "go.dev homepage",
 					urlA:           "https://go.dev/",
 					urlB:           "http://localhost:6060/go.dev/",
-					outImgA:        filepath.Join(cache, "readtests-txt", "go-dev-homepage.go-dev.png"),
-					outImgB:        filepath.Join(cache, "readtests-txt", "go-dev-homepage.localhost-6060.png"),
+					outImgA:        filepath.Join(cache, "readtests-txt", "go-dev-homepage.go-dev.a.png"),
+					outImgB:        filepath.Join(cache, "readtests-txt", "go-dev-homepage.localhost-6060.b.png"),
 					outDiff:        filepath.Join(cache, "readtests-txt", "go-dev-homepage.diff.png"),
 					viewportWidth:  1536,
 					viewportHeight: 960,
@@ -54,8 +54,8 @@
 					name:           "go.dev homepage 540x1080",
 					urlA:           "https://go.dev/",
 					urlB:           "http://localhost:6060/go.dev/",
-					outImgA:        filepath.Join(cache, "readtests-txt", "go-dev-homepage-540x1080.go-dev.png"),
-					outImgB:        filepath.Join(cache, "readtests-txt", "go-dev-homepage-540x1080.localhost-6060.png"),
+					outImgA:        filepath.Join(cache, "readtests-txt", "go-dev-homepage-540x1080.go-dev.a.png"),
+					outImgB:        filepath.Join(cache, "readtests-txt", "go-dev-homepage-540x1080.localhost-6060.b.png"),
 					outDiff:        filepath.Join(cache, "readtests-txt", "go-dev-homepage-540x1080.diff.png"),
 					viewportWidth:  540,
 					viewportHeight: 1080,
@@ -65,8 +65,8 @@
 					name:           "about page",
 					urlA:           "https://go.dev/about",
 					urlB:           "http://localhost:6060/go.dev/about",
-					outImgA:        filepath.Join(cache, "readtests-txt", "about-page.go-dev.png"),
-					outImgB:        filepath.Join(cache, "readtests-txt", "about-page.localhost-6060.png"),
+					outImgA:        filepath.Join(cache, "readtests-txt", "about-page.go-dev.a.png"),
+					outImgB:        filepath.Join(cache, "readtests-txt", "about-page.localhost-6060.b.png"),
 					outDiff:        filepath.Join(cache, "readtests-txt", "about-page.diff.png"),
 					screenshotType: fullScreenshot,
 					viewportWidth:  1536,
@@ -76,8 +76,8 @@
 					name:              "pkg.go.dev homepage .go-Carousel",
 					urlA:              "https://pkg.go.dev/",
 					urlB:              "https://beta.pkg.go.dev/",
-					outImgA:           filepath.Join(cache, "readtests-txt", "pkg-go-dev-homepage--go-Carousel.pkg-go-dev.png"),
-					outImgB:           filepath.Join(cache, "readtests-txt", "pkg-go-dev-homepage--go-Carousel.beta-pkg-go-dev.png"),
+					outImgA:           filepath.Join(cache, "readtests-txt", "pkg-go-dev-homepage--go-Carousel.pkg-go-dev.a.png"),
+					outImgB:           filepath.Join(cache, "readtests-txt", "pkg-go-dev-homepage--go-Carousel.beta-pkg-go-dev.b.png"),
 					outDiff:           filepath.Join(cache, "readtests-txt", "pkg-go-dev-homepage--go-Carousel.diff.png"),
 					screenshotType:    elementScreenshot,
 					screenshotElement: ".go-Carousel",
@@ -91,8 +91,8 @@
 					name:           "net package doc",
 					urlA:           "https://pkg.go.dev/net",
 					urlB:           "https://beta.pkg.go.dev/net",
-					outImgA:        filepath.Join(cache, "readtests-txt", "net-package-doc.pkg-go-dev.png"),
-					outImgB:        filepath.Join(cache, "readtests-txt", "net-package-doc.beta-pkg-go-dev.png"),
+					outImgA:        filepath.Join(cache, "readtests-txt", "net-package-doc.pkg-go-dev.a.png"),
+					outImgB:        filepath.Join(cache, "readtests-txt", "net-package-doc.beta-pkg-go-dev.b.png"),
 					outDiff:        filepath.Join(cache, "readtests-txt", "net-package-doc.diff.png"),
 					screenshotType: viewportScreenshot,
 					viewportWidth:  1536,
@@ -105,8 +105,8 @@
 					name:           "net package doc 540x1080",
 					urlA:           "https://pkg.go.dev/net",
 					urlB:           "https://beta.pkg.go.dev/net",
-					outImgA:        filepath.Join(cache, "readtests-txt", "net-package-doc-540x1080.pkg-go-dev.png"),
-					outImgB:        filepath.Join(cache, "readtests-txt", "net-package-doc-540x1080.beta-pkg-go-dev.png"),
+					outImgA:        filepath.Join(cache, "readtests-txt", "net-package-doc-540x1080.pkg-go-dev.a.png"),
+					outImgB:        filepath.Join(cache, "readtests-txt", "net-package-doc-540x1080.beta-pkg-go-dev.b.png"),
 					outDiff:        filepath.Join(cache, "readtests-txt", "net-package-doc-540x1080.diff.png"),
 					screenshotType: viewportScreenshot,
 					viewportWidth:  540,
@@ -121,8 +121,8 @@
 					cacheA:         true,
 					urlB:           "http://localhost:8080/about",
 					headers:        map[string]interface{}{"Authorization": "Bearer token"},
-					outImgA:        filepath.Join(cache, "readtests-txt", "about.pkg-go-dev.png"),
-					outImgB:        filepath.Join(cache, "readtests-txt", "about.localhost-8080.png"),
+					outImgA:        filepath.Join(cache, "readtests-txt", "about.pkg-go-dev.a.png"),
+					outImgB:        filepath.Join(cache, "readtests-txt", "about.localhost-8080.b.png"),
 					outDiff:        filepath.Join(cache, "readtests-txt", "about.diff.png"),
 					screenshotType: viewportScreenshot,
 					viewportWidth:  1536,
@@ -134,8 +134,8 @@
 					cacheA:         true,
 					urlB:           "http://localhost:8080/eval",
 					headers:        map[string]interface{}{"Authorization": "Bearer token"},
-					outImgA:        filepath.Join(cache, "readtests-txt", "eval.pkg-go-dev.png"),
-					outImgB:        filepath.Join(cache, "readtests-txt", "eval.localhost-8080.png"),
+					outImgA:        filepath.Join(cache, "readtests-txt", "eval.pkg-go-dev.a.png"),
+					outImgB:        filepath.Join(cache, "readtests-txt", "eval.localhost-8080.b.png"),
 					outDiff:        filepath.Join(cache, "readtests-txt", "eval.diff.png"),
 					screenshotType: viewportScreenshot,
 					viewportWidth:  1536,
@@ -151,8 +151,8 @@
 					urlB:           "http://localhost:8080/gcs-output",
 					gcsBucket:      true,
 					headers:        map[string]interface{}{"Authorization": "Bearer token"},
-					outImgA:        "gs://bucket-name/gcs-output.pkg-go-dev.png",
-					outImgB:        "gs://bucket-name/gcs-output.localhost-8080.png",
+					outImgA:        "gs://bucket-name/gcs-output.pkg-go-dev.a.png",
+					outImgB:        "gs://bucket-name/gcs-output.localhost-8080.b.png",
 					outDiff:        "gs://bucket-name/gcs-output.diff.png",
 					screenshotType: viewportScreenshot,
 					viewportWidth:  1536,
@@ -222,8 +222,8 @@
 			wantErr: true,
 			wantFiles: []string{
 				filepath.Join(cache, "fail-txt", "homepage.diff.png"),
-				filepath.Join(cache, "fail-txt", "homepage.go-dev.png"),
-				filepath.Join(cache, "fail-txt", "homepage.pkg-go-dev.png"),
+				filepath.Join(cache, "fail-txt", "homepage.go-dev.a.png"),
+				filepath.Join(cache, "fail-txt", "homepage.pkg-go-dev.b.png"),
 			},
 		},
 		{
@@ -233,7 +233,8 @@
 				glob:   "testdata/cached.txt",
 			},
 			wantFiles: []string{
-				filepath.Join("testdata", "screenshots", "cached", "homepage.go-dev.png"),
+				filepath.Join("testdata", "screenshots", "cached", "homepage.go-dev.a.png"),
+				filepath.Join("testdata", "screenshots", "cached", "homepage.go-dev.b.png"),
 			},
 		},
 	}
@@ -278,8 +279,8 @@
 		cacheA:            true,
 		urlB:              "http://localhost:6061",
 		headers:           map[string]interface{}{"Authorization": "Bearer token"},
-		outImgA:           filepath.Join("testdata", "screenshots", "headers", "headers-test.localhost-6061.png"),
-		outImgB:           filepath.Join("testdata", "screenshots", "headers", "headers-test.localhost-6061.png"),
+		outImgA:           filepath.Join("testdata", "screenshots", "headers", "headers-test.localhost-6061.a.png"),
+		outImgB:           filepath.Join("testdata", "screenshots", "headers", "headers-test.localhost-6061.b.png"),
 		outDiff:           filepath.Join("testdata", "screenshots", "headers", "headers-test.diff.png"),
 		viewportWidth:     1536,
 		viewportHeight:    960,
@@ -343,7 +344,7 @@
 }
 
 func Test_cleanDirs(t *testing.T) {
-	f, err := os.Create("testdata/screenshots/cached/should-delete.go-dev.png")
+	f, err := os.Create("testdata/screenshots/cached/should-delete.go-dev.a.png")
 	if err != nil {
 		t.Fatal(err)
 	}
@@ -369,17 +370,20 @@
 					"testdata":                     true,
 				},
 				keepFiles: map[string]bool{
-					"testdata/screenshots/cached/homepage.go-dev.png":              true,
-					"testdata/screenshots/headers/headers-test.localhost-6061.png": true,
+					"testdata/screenshots/cached/homepage.go-dev.a.png":              true,
+					"testdata/screenshots/cached/homepage.go-dev.b.png":              true,
+					"testdata/screenshots/headers/headers-test.localhost-6061.a.png": true,
 				},
 				safeExts: map[string]bool{
-					"go-dev.png":         true,
-					"localhost-6061.png": true,
+					"go-dev.a.png":         true,
+					"go-dev.b.png":         true,
+					"localhost-6061.a.png": true,
+					"localhost-6061.b.png": true,
 				},
 			},
 			wantFiles: map[string]bool{
-				"testdata/screenshots/cached/homepage.go-dev.png":              true,
-				"testdata/screenshots/headers/headers-test.localhost-6061.png": true,
+				"testdata/screenshots/cached/homepage.go-dev.a.png":              true,
+				"testdata/screenshots/headers/headers-test.localhost-6061.a.png": true,
 			},
 		},
 		{
diff --git a/internal/screentest/testdata/screenshots/cached/homepage.go-dev.a.png b/internal/screentest/testdata/screenshots/cached/homepage.go-dev.a.png
new file mode 100644
index 0000000..e7b4e34
--- /dev/null
+++ b/internal/screentest/testdata/screenshots/cached/homepage.go-dev.a.png
Binary files differ
diff --git a/internal/screentest/testdata/screenshots/cached/homepage.go-dev.b.png b/internal/screentest/testdata/screenshots/cached/homepage.go-dev.b.png
new file mode 100644
index 0000000..e7b4e34
--- /dev/null
+++ b/internal/screentest/testdata/screenshots/cached/homepage.go-dev.b.png
Binary files differ
diff --git a/internal/screentest/testdata/screenshots/cached/homepage.go-dev.png b/internal/screentest/testdata/screenshots/cached/homepage.go-dev.png
deleted file mode 100755
index b58a0c7..0000000
--- a/internal/screentest/testdata/screenshots/cached/homepage.go-dev.png
+++ /dev/null
Binary files differ
diff --git a/internal/screentest/testdata/screenshots/headers/headers-test.localhost-6061.a.png b/internal/screentest/testdata/screenshots/headers/headers-test.localhost-6061.a.png
new file mode 100644
index 0000000..3291df1
--- /dev/null
+++ b/internal/screentest/testdata/screenshots/headers/headers-test.localhost-6061.a.png
Binary files differ
diff --git a/internal/screentest/testdata/screenshots/headers/headers-test.localhost-6061.png b/internal/screentest/testdata/screenshots/headers/headers-test.localhost-6061.png
deleted file mode 100755
index 04f9f49..0000000
--- a/internal/screentest/testdata/screenshots/headers/headers-test.localhost-6061.png
+++ /dev/null
Binary files differ