diff --git a/IPython/html/tests/notebook/isolated_svg.js b/IPython/html/tests/notebook/isolated_svg.js index 141e9b62c..8c9b7636e 100644 --- a/IPython/html/tests/notebook/isolated_svg.js +++ b/IPython/html/tests/notebook/isolated_svg.js @@ -61,10 +61,8 @@ casper.notebook_test(function () { colors[1] = window.getComputedStyle(svg2).fill; return colors; }); - - - this.test.assert(['#ff0000', 'rgb(255, 0, 0)'].indexOf(colors && colors[0]) > -1, 'display_svg() First svg should be red'); - this.test.assert(['#000000', 'rgb(0, 0, 0)'].indexOf(colors && colors[1]) > -1, 'display_svg() Second svg should be black'); + this.assert_colors_equal('#ff0000', colors && colors[0], 'display_svg() First svg should be red'); + this.assert_colors_equal('#000000', colors && colors[1], 'display_svg() Second svg should be black'); }); // now ensure that we can pass the same metadata dict to plain old display() @@ -91,8 +89,7 @@ casper.notebook_test(function () { colors[1] = window.getComputedStyle(svg2).fill; return colors; }); - - this.test.assert(['#ff0000', 'rgb(255, 0, 0)'].indexOf(colors && colors[0]) > -1, 'display() First svg should be red'); - this.test.assert(['#000000', 'rgb(0, 0, 0)'].indexOf(colors && colors[1]) > -1, 'display() Second svg should be black'); + this.assert_colors_equal('#ff0000', colors && colors[0], 'display() First svg should be red'); + this.assert_colors_equal('#000000', colors && colors[1], 'display() Second svg should be black'); }); }); diff --git a/IPython/html/tests/util.js b/IPython/html/tests/util.js index 22287ce0a..cb7a4f9e3 100644 --- a/IPython/html/tests/util.js +++ b/IPython/html/tests/util.js @@ -417,6 +417,34 @@ casper.cell_has_class = function(index, classes) { }, {i : index, c: classes}); }; +casper.assert_colors_equal = function (hex_color, local_color, msg) { + // Tests to see if two colors are equal. + // + // Parameters + // hex_color: string + // Hexadecimal color code, with or without preceeding hash character. + // local_color: string + // Local color representation. Can either be hexadecimal (default for + // phantom) or rgb (default for slimer). + + // Remove parentheses, hashes, semi-colons, and space characters. + hex_color = hex_color.replace(/[\(\); #]/, ''); + local_color = local_color.replace(/[\(\); #]/, ''); + + // If the local color is rgb, clean it up and replace + if (local_color.substr(0,3).toLowerCase() == 'rgb') { + components = local_color.substr(3).split(','); + local_color = ''; + for (var i = 0; i < components.length; i++) { + var part = parseInt(components[i]).toString(16); + while (part.length < 2) part = '0' + part; + local_color += part; + } + } + + this.test.assertEquals(hex_color.toUpperCase(), local_color.toUpperCase(), msg); +}; + casper.notebook_test = function(test) { // Wrap a notebook test to reduce boilerplate. //