123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295 |
- /*!
- * hex-color-regex <https://github.com/regexps/hex-color-regex>
- *
- * Copyright (c) 2015 Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk)
- * Released under the MIT license.
- */
- /* jshint asi:true */
- 'use strict'
- var test = require('mukla')
- var hexColorRegex = require('./index')
- var sixDigits = {
- pass: [
- '#afebe3',
- '#AFEBE3',
- '#3cb371',
- '#3CB371',
- '#556b2f',
- '#556B2F',
- '#708090',
- '#7b68ee',
- '#7B68EE',
- '#eeeeee',
- '#ffffff',
- '#123fff}',
- '#111111'
- ],
- fail: [
- 'afebe3',
- 'AFEBE3',
- '3cb371',
- 'ABC371',
- '556b2f',
- '5A6B2F',
- '708090',
- '7b68ee',
- '7B68EE',
- 'eeeeee',
- 'ffffff',
- '111111',
- 'afebef',
- '3c537f',
- '556B2f',
- '708135',
- 'EE3EF1',
- '7f68ZY',
- '#7f68ZY',
- '#7z68ZY',
- '#GR68',
- '#Z68',
- '#666EFR'
- ]
- }
- var threeDigits = {
- pass: [
- '#afe',
- '#AF3',
- '#3cb',
- '#3CB',
- '#b2f',
- '#5B2',
- '#708',
- '#68e',
- '#7AF',
- '#777',
- '#FFF',
- '#fff',
- '#f3f}',
- '#111'
- ],
- fail: [
- 'fff',
- '4zy',
- '4g1',
- '111',
- 'Ge3',
- 'zY1',
- '#ggg',
- '#4zy',
- '#4g1',
- '#Ge3',
- '#zY1'
- ]
- }
- var fourDigits = {
- pass: ['#afe0', '#AF31', '#3cba', '#3CBA', '#b2ff', '#5B2F'],
- fail: ['afe0', 'AF31', '#3cbg', '#3CBy', '#b2fz']
- }
- var eightDigits = {
- pass: ['#afebe300', '#AFEBE3AA', '#3cb371ff', '#3CB371CC', '#556b2f55'],
- fail: ['afebe300', 'AFEBE3AA', '#3cb371fg', '#3CB371xy', '#556b2fz9']
- }
- test('hex-color-regex:', function() {
- test('in no strict mode', function() {
- test('six digit hex', function() {
- test('should be `true`', function() {
- sixDigits.pass.forEach(function(hex) {
- test('when `' + hex + '` value', function() {
- test.equal(hexColorRegex().test(hex), true)
- })
- })
- test('when `foo #ae3f4c bar` value', function() {
- test.equal(hexColorRegex().test('foo #ae3f4c bar'), true)
- })
- })
- test('should be `false`', function() {
- sixDigits.fail.forEach(function(hex) {
- test('when `' + hex + '` value', function() {
- test.equal(hexColorRegex().test(hex), false)
- })
- })
- })
- })
- test('three digit hex', function() {
- test('should be `true`', function() {
- threeDigits.pass.forEach(function(hex) {
- test('when `' + hex + '` value', function() {
- test.equal(hexColorRegex().test(hex), true)
- })
- })
- test('when `foo #e4f bar` value', function() {
- test.equal(hexColorRegex().test('foo #e4f bar'), true)
- })
- })
- test('should be `false`', function() {
- threeDigits.fail.forEach(function(hex) {
- test('when `' + hex + '` value', function() {
- test.equal(hexColorRegex().test(hex), false)
- })
- })
- })
- })
- test('eight digit alpha channel hex', function() {
- test('should be `true`', function() {
- eightDigits.pass.forEach(function(hex) {
- test('when `' + hex + '` value', function() {
- test.equal(hexColorRegex().test(hex), true)
- })
- })
- test('when `foo #ae3f4c bar` value', function() {
- test.equal(hexColorRegex().test('foo #ae3f4c00 bar'), true)
- })
- })
- test('should be `false`', function() {
- eightDigits.fail.forEach(function(hex) {
- test('when `' + hex + '` value', function() {
- test.equal(hexColorRegex().test(hex), false)
- })
- })
- })
- })
- test('four digit alpha channel hex', function() {
- test('should be `true`', function() {
- fourDigits.pass.forEach(function(hex) {
- test('when `' + hex + '` value', function() {
- test.equal(hexColorRegex().test(hex), true)
- })
- })
- test('when `foo #ae3f4c bar` value', function() {
- test.equal(hexColorRegex().test('foo #ae3f bar'), true)
- })
- })
- test('should be `false`', function() {
- fourDigits.fail.forEach(function(hex) {
- test('when `' + hex + '` value', function() {
- test.equal(hexColorRegex().test(hex), false)
- })
- })
- })
- })
- test('using regex().exec(hex)', function() {
- sixDigits.pass.forEach(function(hex) {
- var hexed = hex.replace('}', '')
- test('should match `' + hexed + '` when `' + hex + '` hex', function() {
- var actual = hexColorRegex().exec(hex)[0]
- var expected = hexed
- test.equal(actual, expected)
- })
- })
- test('should match `#ae3f4c` when `foo #ae3f4c bar` string', function() {
- var actual = hexColorRegex().exec('foo #ae3f4c bar')[0]
- var expected = '#ae3f4c'
- test.equal(actual, expected)
- })
- threeDigits.pass.forEach(function(hex) {
- var hexed = hex.replace('}', '')
- test('should match `' + hexed + '` when `' + hex + '` hex', function() {
- var actual = hexColorRegex().exec(hex)[0]
- var expected = hexed
- test.equal(actual, expected)
- })
- })
- test('should match `#e7f` when `foo #e7f bar` string', function() {
- var actual = hexColorRegex().exec('foo #e7f bar')[0]
- var expected = '#e7f'
- test.equal(actual, expected)
- })
- eightDigits.pass.forEach(function(hex) {
- var hexed = hex.replace('}', '')
- test('should match `' + hexed + '` when `' + hex + '` hex', function() {
- var actual = hexColorRegex().exec(hex)[0]
- var expected = hexed
- test.equal(actual, expected)
- })
- })
- test('should match `#ae3f4c00` when `foo #ae3f4c00 bar` string', function() {
- var actual = hexColorRegex().exec('foo #ae3f4c00 bar')[0]
- var expected = '#ae3f4c00'
- test.equal(actual, expected)
- })
- fourDigits.pass.forEach(function(hex) {
- var hexed = hex.replace('}', '')
- test('should match `' + hexed + '` when `' + hex + '` hex', function() {
- var actual = hexColorRegex().exec(hex)[0]
- var expected = hexed
- test.equal(actual, expected)
- })
- })
- test('should match `#e7f0` when `foo #e7f0 bar` string', function() {
- var actual = hexColorRegex().exec('foo #e7f0 bar')[0]
- var expected = '#e7f0'
- test.equal(actual, expected)
- })
- })
- })
- test('in strict mode', function() {
- test('six digit hex `#123fff}` should return false', function() {
- test.equal(hexColorRegex({ strict: true }).test('#123fff}'), false)
- })
- test('string contain six digit hex `foo #ae3f4c bar` return false', function() {
- test.equal(hexColorRegex({ strict: true }).test('foo #ae3f4c bar'), false)
- })
- test('three digit hex `#f3f}` should return false', function() {
- test.equal(hexColorRegex({ strict: true }).test('#f3f}'), false)
- })
- test('string contain three digit hex `foo #e7f bar` return false', function() {
- test.equal(hexColorRegex({ strict: true }).test('foo #e7f bar'), false)
- })
- test('eight digit alpha channel hex `#123fff00}` should return false', function() {
- test.equal(hexColorRegex({ strict: true }).test('#123fff00}'), false)
- })
- test('string contain eight digit alpha channel hex `foo #ae3f4cff bar` return false', function() {
- test.equal(
- hexColorRegex({ strict: true }).test('foo #ae3f4cff bar'),
- false
- )
- })
- test('four digit alpha channel hex `#f3f0}` should return false', function() {
- test.equal(hexColorRegex({ strict: true }).test('#f3f0}'), false)
- })
- test('string contain four digit alpha channel hex `foo #e7ff bar` return false', function() {
- test.equal(hexColorRegex({ strict: true }).test('foo #e7ff bar'), false)
- })
- test('should not match when `foo #ae3f4c bar` string', function() {
- var actual = hexColorRegex({ strict: true }).exec('foo #ae3f4c bar')
- var expected = null
- test.equal(actual, expected)
- })
- test('should not match when `foo #e7f bar` string', function() {
- var actual = hexColorRegex({ strict: true }).exec('foo #e7f bar')
- var expected = null
- test.equal(actual, expected)
- })
- test('should not match when `foo #ae3f4cff bar` string', function() {
- var actual = hexColorRegex({ strict: true }).exec('foo #ae3f4cff bar')
- var expected = null
- test.equal(actual, expected)
- })
- test('should not match when `foo #e7ff bar` string', function() {
- var actual = hexColorRegex({ strict: true }).exec('foo #e7ff bar')
- var expected = null
- test.equal(actual, expected)
- })
- })
- })
|