From fde2328ba6293c10b32558de470a3d8e9ce36d4a Mon Sep 17 00:00:00 2001 From: Christopher Chedeau Date: Thu, 11 Dec 2014 13:30:46 +0000 Subject: [PATCH] better pretty-print function --- src/Layout-test-utils.js | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/src/Layout-test-utils.js b/src/Layout-test-utils.js index 4d02f96a..20e75e38 100644 --- a/src/Layout-test-utils.js +++ b/src/Layout-test-utils.js @@ -9,6 +9,38 @@ /* globals document, computeLayout */ var layoutTestUtils = (function() { + + jasmine.matchersUtil.buildFailureMessage = function () { + var args = Array.prototype.slice.call(arguments, 0), + matcherName = args[0], + isNot = args[1], + actual = args[2], + expected = args.slice(3), + englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) { return ' ' + s.toLowerCase(); }); + + var pp = function(node) { + return JSON.stringify(node, null, 2) + .replace(/"([a-zA-Z]+)":/g, '$1:'); + }; + + var message = 'Expected ' + + pp(actual) + + (isNot ? ' not ' : ' ') + + '\n' + + englishyPredicate; + + if (expected.length > 0) { + for (var i = 0; i < expected.length; i++) { + if (i > 0) { + message += ','; + } + message += ' ' + pp(expected[i]); + } + } + + return message + '.'; + }; + var cachedIframe; function getIframe() { if (cachedIframe) { @@ -39,6 +71,9 @@ var layoutTestUtils = (function() { margin: 0; padding: 0; } + body { + width: 0; + } */} + '').slice(15, -4); doc.head.appendChild(style); cachedIframe = iframe; @@ -115,6 +150,7 @@ var layoutTestUtils = (function() { transferSpacing(div, node, 'border', 'Width'); transfer(div, node, 'flexDirection'); transfer(div, node, 'flex'); + transfer(div, node, 'flexWrap'); transfer(div, node, 'justifyContent'); transfer(div, node, 'alignSelf'); transfer(div, node, 'alignItems'); @@ -303,16 +339,12 @@ var layoutTestUtils = (function() { textSizes: textSizes, preDefinedTextSizes: preDefinedTextSizes, testLayout: function(node, expectedLayout) { - node.style = node.style || {}; - node.style.alignSelf = 'flex-start'; var layout = computeCSSLayout(node); var domLayout = computeDOMLayout(node); testNamedLayout('expected-dom', expectedLayout, domLayout); testNamedLayout('layout-dom', layout, domLayout); }, testRandomLayout: function(node, i) { - node.style = node.style || {}; - node.style.alignSelf = 'flex-start'; expect({i: i, node: node, layout: computeCSSLayout(node)}) .toEqual({i: i, node: node, layout: computeDOMLayout(node)}); },