blob: 580643e8d6afbe28712f7c3b97ac5338e65fa20f [file] [log] [blame]
#!/usr/bin/python
# Copyright 2011 Software Freedom Conservancy.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import unittest
from selenium.webdriver.support.color import Color
class ColorTests(unittest.TestCase):
def test_rgb_to_rgb(self):
rgb = "rgb(1, 2, 3)"
assert Color.from_string(rgb).rgb == rgb
def test_rgb_to_rgba(self):
rgb = "rgb(1, 2, 3)"
assert Color.from_string(rgb).rgba == "rgba(1, 2, 3, 1)"
def test_rgb_pct_to_rgba(self):
rgb = "rgb(10%, 20%, 30%)"
assert Color.from_string(rgb).rgba == "rgba(25, 51, 76, 1)"
def test_rgb_allows_whitespace(self):
rgb = "rgb(\t1, 2 , 3)"
assert Color.from_string(rgb).rgb == "rgb(1, 2, 3)"
def test_rgba_to_rgba(self):
rgba = "rgba(1, 2, 3, 0.5)"
assert Color.from_string(rgba).rgba == rgba
def test_rgba_pct_to_rgba(self):
rgba = "rgba(10%, 20%, 30%, 0.5)"
assert Color.from_string(rgba).rgba == "rgba(25, 51, 76, 0.5)"
def test_hex_to_hex(self):
hex_ = "#ff00a0"
assert Color.from_string(hex_).hex == hex_
def test_hex_to_rgb(self):
hex_ = "#01Ff03"
rgb = "rgb(1, 255, 3)"
assert Color.from_string(hex_).rgb == rgb
def test_hex_to_rgba(self):
hex_ = "#01Ff03"
rgba = "rgba(1, 255, 3, 1)"
assert Color.from_string(hex_).rgba == rgba
hex_ = "#00ff33"
rgba = "rgba(0, 255, 51, 1)"
assert Color.from_string(hex_).rgba == rgba
def test_rgb_to_hex(self):
assert Color.from_string("rgb(1, 255, 3)").hex == "#01ff03"
def test_hex3_to_rgba(self):
assert Color.from_string("#0f3").rgba == "rgba(0, 255, 51, 1)"
def test_hsl_to_rgba(self):
hsl = "hsl(120, 100%, 25%)"
rgba = "rgba(0, 128, 0, 1)"
assert Color.from_string(hsl).rgba == rgba
hsl = "hsl(100, 0%, 50%)"
rgba = "rgba(128, 128, 128, 1)"
assert Color.from_string(hsl).rgba == rgba
def test_hsla_to_rgba(self):
hsla = "hsla(120, 100%, 25%, 1)"
rgba = "rgba(0, 128, 0, 1)"
assert Color.from_string(hsla).rgba == rgba
hsla = "hsla(100, 0%, 50%, 0.5)"
rgba = "rgba(128, 128, 128, 0.5)"
assert Color.from_string(hsla).rgba == rgba
def test_named_color(self):
assert Color.from_string("green").rgba == "rgba(0, 128, 0, 1)"
assert Color.from_string("gray").rgba == "rgba(128, 128, 128, 1)"
assert Color.from_string("aqua").hex == "#00ffff"
assert Color.from_string("transparent").rgba == "rgba(0, 0, 0, 0)"
def test_equals(self):
assert Color.from_string("#f00") == Color.from_string("rgb(255, 0, 0)")
assert Color.from_string("rgba(30, 30, 30, 0.2)") != Color.from_string("rgba(30, 30, 30, 1)")
def test_hash(self):
hash1 = hash(Color.from_string("#f00"))
hash2 = hash(Color.from_string("rgb(255, 0, 0)"))
assert hash1 == hash2