...

Source file src/github.com/mazznoer/csscolorparser/chromium_test.go

Documentation: github.com/mazznoer/csscolorparser

     1  package csscolorparser
     2  
     3  import "testing"
     4  
     5  func TestBrowserChromium(t *testing.T) {
     6  	type testData struct {
     7  		colorStr   string
     8  		r, g, b, a uint8
     9  	}
    10  	// Randomly generated color string, parsed using Chromium 87.0.4280.66
    11  	data := []testData{
    12  		{"#13EF", 17, 51, 238, 255},
    13  		{"#b42f", 187, 68, 34, 255},
    14  		{"#49e97851", 73, 233, 120, 81},
    15  		{"#8C68B2E0", 140, 104, 178, 224},
    16  		{"#AE42B424", 174, 66, 180, 36},
    17  		{"#60b", 102, 0, 187, 255},
    18  		{"#9675E6EA", 150, 117, 230, 234},
    19  		{"#7858", 119, 136, 85, 136},
    20  		{"#f06", 255, 0, 102, 255},
    21  		{"#C82", 204, 136, 34, 255},
    22  		{"#70A8AA", 112, 168, 170, 255},
    23  		{"#198", 17, 153, 136, 255},
    24  		{"#bc94198b", 188, 148, 25, 139},
    25  		{"#FC3B98", 252, 59, 152, 255},
    26  		{"#541a3847", 84, 26, 56, 71},
    27  		{"#29A", 34, 153, 170, 255},
    28  		{"#4FA2DC", 79, 162, 220, 255},
    29  		{"#812", 136, 17, 34, 255},
    30  		{"#7A57AD0C", 122, 87, 173, 12},
    31  		{"#F74", 255, 119, 68, 255},
    32  		{"#ADB", 170, 221, 187, 255},
    33  		{"#774AD2B1", 119, 74, 210, 177},
    34  		{"#ECC", 238, 204, 204, 255},
    35  		{"#DCF724B3", 220, 247, 36, 179},
    36  		{"#716195", 113, 97, 149, 255},
    37  		{"#FC39", 255, 204, 51, 153},
    38  		{"#D3B", 221, 51, 187, 255},
    39  		{"#7795", 119, 119, 153, 85},
    40  		{"#387B", 51, 136, 119, 187},
    41  		{"#C3CE", 204, 51, 204, 238},
    42  		{"#BF88D793", 191, 136, 215, 147},
    43  		{"#D97C", 221, 153, 119, 204},
    44  		{"#401D", 68, 0, 17, 221},
    45  		{"#0daf68", 13, 175, 104, 255},
    46  		{"#C84E7484", 200, 78, 116, 132},
    47  		{"#284", 34, 136, 68, 255},
    48  		{"#248", 34, 68, 136, 255},
    49  		{"#3422AF", 52, 34, 175, 255},
    50  		{"#46E", 68, 102, 238, 255},
    51  		{"#2ec6d703", 46, 198, 215, 3},
    52  		{"#29F659", 41, 246, 89, 255},
    53  		{"#69355999", 105, 53, 89, 153},
    54  		{"#4099", 68, 0, 153, 153},
    55  		{"#44abea", 68, 171, 234, 255},
    56  		{"#0623B60A", 6, 35, 182, 10},
    57  		{"#4304F493", 67, 4, 244, 147},
    58  		{"#91176A", 145, 23, 106, 255},
    59  		{"#875994CF", 135, 89, 148, 207},
    60  		{"#806F", 136, 0, 102, 255},
    61  		{"#DD32", 221, 221, 51, 34},
    62  		{"rgb(105.927,150.994,15.104)", 106, 151, 15, 255},
    63  		{"rgb(10.837,152.535,154.317,0.568)", 11, 153, 154, 145},
    64  		{"rgb(237.623,156.627,211.140,-0.058)", 238, 157, 211, 0},
    65  		{"rgb(80.685,2.873,82.097,0.592)", 81, 3, 82, 151},
    66  		{"rgb(31.530,138.330,246.696)", 32, 138, 247, 255},
    67  		{"rgb(127.659,188.444,102.421)", 128, 188, 102, 255},
    68  		{"rgb(114.062,6.757,101.538)", 114, 7, 102, 255},
    69  		{"rgb(34.047,96.606,76.235,0.045)", 34, 97, 76, 11},
    70  		{"rgb(214.707,10.143,78.461)", 215, 10, 78, 255},
    71  		{"rgb(158.355,172.716,136.060)", 158, 173, 136, 255},
    72  		{"rgb(41.366,221.162,32.067,1.107)", 41, 221, 32, 255},
    73  		{"rgb(247.083,25.052,0.185)", 247, 25, 0, 255},
    74  		{"rgb(67.440,90.228,257.506)", 67, 90, 255, 255},
    75  		{"rgb(99.603,18.924,133.951)", 100, 19, 134, 255},
    76  		{"rgb(71.837,242.253,112.316)", 72, 242, 112, 255},
    77  		{"rgb(262.877,206.567,71.233)", 255, 207, 71, 255},
    78  		{"rgb(153.467,73.396,96.642,1.070)", 153, 73, 97, 255},
    79  		{"rgb(253.472,35.005,92.178,0.210)", 253, 35, 92, 54},
    80  		{"rgb(63.611,20.378,1.885)", 64, 20, 2, 255},
    81  		{"rgb(70.695,209.671,111.060)", 71, 210, 111, 255},
    82  		{"rgb(35.748,184.365,-3.144,-0.099)", 36, 184, 0, 0},
    83  		{"rgb(213.630,43.353,243.800,0.932)", 214, 43, 244, 238},
    84  		{"rgb(4.895,236.929,198.497,0.162)", 5, 237, 198, 41},
    85  		{"rgb(262.492,104.420,135.986)", 255, 104, 136, 255},
    86  		{"rgb(196.148,82.928,2.328,1.194)", 196, 83, 2, 255},
    87  		{"rgb(3.984,130.315,223.066)", 4, 130, 223, 255},
    88  		{"rgb(5.098,7.075,228.457)", 5, 7, 228, 255},
    89  		{"rgb(132.649,122.071,261.147)", 133, 122, 255, 255},
    90  		{"rgb(215.091,198.018,80.956,0.673)", 215, 198, 81, 172},
    91  		{"rgb(224.466,219.548,80.411)", 224, 220, 80, 255},
    92  		{"rgb(88.093,249.677,143.753)", 88, 250, 144, 255},
    93  		{"rgb(261.342,42.332,150.964,0.257)", 255, 42, 151, 66},
    94  		{"rgb(24.315,19.390,143.873)", 24, 19, 144, 255},
    95  		{"rgb(206.152,103.265,49.028)", 206, 103, 49, 255},
    96  		{"rgb(121.903,253.961,42.196,0.698)", 122, 254, 42, 178},
    97  		{"rgb(81.981,163.951,231.462)", 82, 164, 231, 255},
    98  		{"rgb(-9.058,143.858,233.204)", 0, 144, 233, 255},
    99  		{"rgb(192.509,117.856,-7.540)", 193, 118, 0, 255},
   100  		{"rgb(25.067,206.513,164.628)", 25, 207, 165, 255},
   101  		{"rgb(194.332,192.906,10.594,0.980)", 194, 193, 11, 250},
   102  		{"rgb(112.924,234.651,160.614)", 113, 235, 161, 255},
   103  		{"rgb(250.062,24.310,60.243)", 250, 24, 60, 255},
   104  		{"rgb(103.655,61.625,36.981)", 104, 62, 37, 255},
   105  		{"rgb(41.189,109.543,71.332)", 41, 110, 71, 255},
   106  		{"rgb(62.731,22.426,-1.441,0.018)", 63, 22, 0, 5},
   107  		{"rgb(260.117,262.267,234.967)", 255, 255, 235, 255},
   108  		{"rgb(4.026,-1.738,159.101)", 4, 0, 159, 255},
   109  		{"rgb(231.300,105.609,231.611,0.289)", 231, 106, 232, 74},
   110  		{"rgb(92.148,125.339,3.161)", 92, 125, 3, 255},
   111  		{"rgb(141.451,213.294,42.291)", 141, 213, 42, 255},
   112  		{"rgb(106.637%,63.245%,13.953%)", 255, 161, 36, 255},
   113  		{"rgb(36.891%,83.946%,-0.776%,-0.109)", 94, 214, 0, 0},
   114  		{"rgb(30.098%,57.177%,97.202%)", 77, 146, 248, 255},
   115  		{"rgb(20.348%,9.007%,50.198%)", 52, 23, 128, 255},
   116  		{"rgb(65.635%,38.597%,51.540%)", 167, 98, 131, 255},
   117  		{"rgb(82.140%,86.294%,74.226%)", 209, 220, 189, 255},
   118  		{"rgb(68.001%,43.582%,-8.031%,0.953)", 173, 111, 0, 243},
   119  		{"rgb(97.555%,88.344%,107.508%,1.067)", 249, 225, 255, 255},
   120  		{"rgb(103.833%,31.883%,106.519%,1.096)", 255, 81, 255, 255},
   121  		{"rgb(91.878%,77.833%,42.737%,1.036)", 234, 198, 109, 255},
   122  		{"rgb(-1.946%,104.666%,92.518%)", 0, 255, 236, 255},
   123  		{"rgb(-8.918%,43.768%,48.678%)", 0, 112, 124, 255},
   124  		{"rgb(22.344%,108.142%,25.588%,0.568)", 57, 255, 65, 145},
   125  		{"rgb(-4.792%,103.802%,25.728%,1.044)", 0, 255, 66, 255},
   126  		{"rgb(9.756%,-4.527%,55.095%)", 25, 0, 140, 255},
   127  		{"rgb(4.812%,102.908%,-9.392%)", 12, 255, 0, 255},
   128  		{"rgb(3.693%,104.465%,84.813%)", 9, 255, 216, 255},
   129  		{"rgb(29.187%,99.246%,53.246%)", 74, 253, 136, 255},
   130  		{"rgb(-7.354%,95.764%,105.057%)", 0, 244, 255, 255},
   131  		{"rgb(47.159%,48.044%,109.916%)", 120, 123, 255, 255},
   132  		{"rgb(45.759%,42.046%,91.989%)", 117, 107, 235, 255},
   133  		{"rgb(86.097%,91.214%,42.376%,0.086)", 220, 233, 108, 22},
   134  		{"rgb(13.127%,1.330%,40.329%)", 33, 3, 103, 255},
   135  		{"rgb(65.359%,88.567%,8.510%)", 167, 226, 22, 255},
   136  		{"rgb(63.728%,14.245%,39.191%)", 163, 36, 100, 255},
   137  		{"rgb(82.029%,70.333%,22.627%,0.130)", 209, 179, 58, 33},
   138  		{"rgb(-7.584%,24.596%,106.456%,0.540)", 0, 63, 255, 138},
   139  		{"rgb(34.295%,33.879%,25.945%)", 87, 86, 66, 255},
   140  		{"rgb(36.848%,55.483%,24.020%,0.215)", 94, 141, 61, 55},
   141  		{"rgb(34.615%,79.081%,96.135%,0.104)", 88, 202, 245, 27},
   142  		{"rgb(29.072%,76.973%,103.559%)", 74, 196, 255, 255},
   143  		{"rgb(-1.165%,18.030%,23.750%)", 0, 46, 61, 255},
   144  		{"rgb(23.834%,-4.078%,35.657%)", 61, 0, 91, 255},
   145  		{"rgb(10.751%,0.545%,73.270%)", 27, 1, 187, 255},
   146  		{"rgb(44.688%,9.295%,-1.679%)", 114, 24, 0, 255},
   147  		{"rgb(72.485%,65.899%,108.170%,0.917)", 185, 168, 255, 234},
   148  		{"rgb(34.422%,77.037%,93.107%)", 88, 196, 237, 255},
   149  		{"rgb(91.368%,55.279%,62.854%)", 233, 141, 160, 255},
   150  		{"rgb(102.434%,56.702%,33.212%)", 255, 145, 85, 255},
   151  		{"rgb(39.892%,87.191%,100.708%)", 102, 222, 255, 255},
   152  		{"rgb(65.042%,105.175%,5.622%)", 166, 255, 14, 255},
   153  		{"rgb(-5.767%,48.382%,-5.126%)", 0, 123, 0, 255},
   154  		{"rgb(17.665%,40.385%,80.169%)", 45, 103, 204, 255},
   155  		{"rgb(84.019%,-0.364%,9.859%,0.625)", 214, 0, 25, 159},
   156  		{"rgb(108.993%,100.397%,52.671%)", 255, 255, 134, 255},
   157  		{"rgb(19.223%,47.737%,51.318%)", 49, 122, 131, 255},
   158  		{"rgb(7.603%,70.494%,61.450%)", 19, 180, 157, 255},
   159  		{"rgb(10.202%,89.790%,78.516%)", 26, 229, 200, 255},
   160  		{"rgb(77.686%,97.221%,100.579%,0.246)", 198, 248, 255, 63},
   161  		{"rgb(-2.333%,11.540%,89.009%,0.802)", 0, 29, 227, 205},
   162  		{"hsl(303.505deg,40.607%,47.237%,-0.108)", 169, 72, 164, 0},
   163  		{"hsl(166.317grad,35.505%,61.623%,0.885)", 122, 192, 157, 226},
   164  		{"hsl(0.890turn,84.315%,-4.192%,0.733)", 0, 0, 0, 187},
   165  		{"hsl(4.367rad,26.559%,25.815%,1.025)", 54, 48, 83, 255},
   166  		{"hsl(129.011deg,24.599%,10.476%)", 20, 33, 22, 255},
   167  		{"hsl(0.132turn,18.948%,108.092%)", 255, 255, 255, 255},
   168  		{"hsl(6.366rad,86.281%,76.850%)", 247, 153, 145, 255},
   169  		{"hsl(0.025turn,9.070%,17.743%)", 49, 42, 41, 255},
   170  		{"hsl(346.054grad,22.344%,71.574%,-0.062)", 199, 166, 193, 0},
   171  		{"hsl(0.015turn,35.648%,92.027%)", 242, 229, 227, 255},
   172  		{"hsl(47.756grad,14.468%,86.803%)", 226, 223, 216, 255},
   173  		{"hsl(82.948deg,106.898%,51.390%,0.409)", 160, 255, 7, 104},
   174  		{"hsl(30.836deg,-6.307%,103.528%)", 255, 255, 255, 255},
   175  		{"hsl(43.265,70.201%,70.996%)", 233, 204, 129, 255},
   176  		{"hsl(128.089grad,69.628%,64.418%)", 111, 227, 101, 255},
   177  		{"hsl(32.213,84.179%,0.508%,0.967)", 2, 1, 0, 247},
   178  		{"hsl(243.278deg,107.466%,94.419%,-0.087)", 228, 227, 255, 0},
   179  		{"hsl(17.877,56.334%,102.965%,0.275)", 255, 255, 255, 70},
   180  		{"hsl(290.112,107.611%,108.356%)", 255, 255, 255, 255},
   181  		{"hsl(200.221grad,30.283%,11.069%)", 20, 37, 37, 255},
   182  		{"hsl(0.738turn,12.560%,3.624%,0.318)", 9, 8, 10, 81},
   183  		{"hsl(0.109turn,70.850%,74.131%,1.187)", 236, 203, 142, 255},
   184  		{"hsl(163.566,83.141%,36.520%)", 16, 171, 128, 255},
   185  		{"hsl(132.194,80.652%,105.081%,1.052)", 255, 255, 255, 255},
   186  		{"hsl(307.249deg,60.237%,26.132%)", 107, 26, 97, 255},
   187  		{"hsl(87.916grad,18.382%,-5.926%,0.725)", 0, 0, 0, 185},
   188  		{"hsl(0.923turn,22.762%,41.884%,1.001)", 131, 82, 105, 255},
   189  		{"hsl(316.684grad,55.930%,52.703%,0.661)", 168, 67, 202, 169},
   190  		{"hsl(0.939turn,57.243%,97.977%,1.009)", 253, 247, 249, 255},
   191  		{"hsl(-0.091turn,27.351%,92.166%)", 240, 230, 236, 255},
   192  		{"hsl(1.089turn,103.459%,55.996%,0.097)", 255, 150, 31, 25},
   193  		{"hsl(174.033deg,10.079%,29.391%)", 67, 83, 81, 255},
   194  		{"hsl(201.674,28.476%,8.261%)", 15, 23, 27, 255},
   195  		{"hsl(142.622deg,39.472%,90.933%,-0.126)", 223, 241, 230, 0},
   196  		{"hsl(4.658rad,107.070%,7.771%,0.600)", 18, 0, 40, 153},
   197  		{"hsl(4.880rad,80.889%,-9.699%,0.319)", 0, 0, 0, 81},
   198  		{"hsl(1.121rad,-5.569%,97.761%,1.084)", 249, 249, 249, 255},
   199  		{"hsl(262.036,5.324%,-4.960%,0.148)", 0, 0, 0, 38},
   200  		{"hsl(-0.455grad,41.379%,78.928%)", 224, 179, 179, 255},
   201  		{"hsl(0.390turn,105.835%,79.907%)", 153, 255, 187, 255},
   202  		{"hsl(0.347turn,-9.555%,33.512%)", 85, 85, 85, 255},
   203  		{"hsl(5.535rad,84.788%,36.228%)", 171, 14, 126, 255},
   204  		{"hsl(202.153,42.328%,57.768%)", 102, 159, 193, 255},
   205  		{"hsl(4.754rad,99.620%,30.456%,-0.115)", 84, 0, 155, 0},
   206  		{"hsl(0.703turn,-9.041%,64.426%,1.076)", 164, 164, 164, 255},
   207  		{"hsl(-0.020turn,22.850%,95.116%,0.123)", 245, 240, 240, 31},
   208  		{"hsl(403.987grad,42.191%,10.063%)", 36, 16, 15, 255},
   209  		{"hsl(0.104turn,49.789%,74.133%,0.198)", 222, 197, 156, 50},
   210  		{"hsl(0.088turn,32.001%,103.668%)", 255, 255, 255, 255},
   211  		{"hsl(53.662,57.956%,60.528%)", 213, 200, 96, 255},
   212  	}
   213  	for i, d := range data {
   214  		c, err := Parse(d.colorStr)
   215  		if err != nil {
   216  			t.Errorf("Parse error: %s", d.colorStr)
   217  			continue
   218  		}
   219  		r, g, b, a := c.RGBA255()
   220  		rgba := [4]uint8{r, g, b, a}
   221  		out := [4]uint8{d.r, d.g, d.b, d.a}
   222  		if rgba != out {
   223  			t.Errorf("(%d) %s -> %v != %v", i, d.colorStr, out, rgba)
   224  		}
   225  	}
   226  }
   227  

View as plain text