mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.6 KiB
63 lines
1.6 KiB
// Copyright 2023 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
package util |
|
|
|
import ( |
|
"testing" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func Test_HexToRBGColor(t *testing.T) { |
|
cases := []struct { |
|
colorString string |
|
expectedR float64 |
|
expectedG float64 |
|
expectedB float64 |
|
}{ |
|
{"2b8685", 43, 134, 133}, |
|
{"1e1", 17, 238, 17}, |
|
{"#1e1", 17, 238, 17}, |
|
{"1e16", 17, 238, 17}, |
|
{"3bb6b3", 59, 182, 179}, |
|
{"#3bb6b399", 59, 182, 179}, |
|
{"#0", 0, 0, 0}, |
|
{"#00000", 0, 0, 0}, |
|
{"#1234567", 0, 0, 0}, |
|
} |
|
for n, c := range cases { |
|
r, g, b := HexToRBGColor(c.colorString) |
|
assert.InDelta(t, c.expectedR, r, 0, "case %d: error R should match: expected %f, but get %f", n, c.expectedR, r) |
|
assert.InDelta(t, c.expectedG, g, 0, "case %d: error G should match: expected %f, but get %f", n, c.expectedG, g) |
|
assert.InDelta(t, c.expectedB, b, 0, "case %d: error B should match: expected %f, but get %f", n, c.expectedB, b) |
|
} |
|
} |
|
|
|
func Test_UseLightText(t *testing.T) { |
|
cases := []struct { |
|
color string |
|
expected string |
|
}{ |
|
{"#d73a4a", "#fff"}, |
|
{"#0075ca", "#fff"}, |
|
{"#cfd3d7", "#000"}, |
|
{"#a2eeef", "#000"}, |
|
{"#7057ff", "#fff"}, |
|
{"#008672", "#fff"}, |
|
{"#e4e669", "#000"}, |
|
{"#d876e3", "#000"}, |
|
{"#ffffff", "#000"}, |
|
{"#2b8684", "#fff"}, |
|
{"#2b8786", "#fff"}, |
|
{"#2c8786", "#000"}, |
|
{"#3bb6b3", "#000"}, |
|
{"#7c7268", "#fff"}, |
|
{"#7e716c", "#fff"}, |
|
{"#81706d", "#fff"}, |
|
{"#807070", "#fff"}, |
|
{"#84b6eb", "#000"}, |
|
} |
|
for n, c := range cases { |
|
assert.Equal(t, c.expected, ContrastColor(c.color), "case %d: error should match", n) |
|
} |
|
}
|
|
|