From 8256bdfe448b4c55c2c747cae03acf5b19912fdb Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Wed, 22 Jan 2014 12:20:41 +0100 Subject: [PATCH] [IMP] website: add a log report in tour test bzr revid: chm@openerp.com-20140122112041-id595hkptgzoym6w --- addons/website/static/src/js/website.tour.js | 44 +++++++++++++++---- .../website/tests/ui_suite/ui_test_runner.js | 3 ++ .../static/src/js/website.tour.shop.js | 3 +- .../website_sale-sale_process-test.js | 2 +- 4 files changed, 41 insertions(+), 11 deletions(-) diff --git a/addons/website/static/src/js/website.tour.js b/addons/website/static/src/js/website.tour.js index 7e8d2aea7a0..02ffecba335 100644 --- a/addons/website/static/src/js/website.tour.js +++ b/addons/website/static/src/js/website.tour.js @@ -295,6 +295,7 @@ }, }); + website.EditorBar.include({ tours: [], init: function () { @@ -340,13 +341,23 @@ window.onbeforeunload = function () { clearTimeout(overlapsCrash); }; + function throwError (message) { + console.log(JSON.parse(window.localStorage.getItem("test-report"))); + test.reset(); + throw message; + } function executeStep (step) { + // check if they are a cycle var lastStep = window.localStorage.getItem(testId); - var tryStep = lastStep != step.stepId ? 0 : parseInt(window.localStorage.getItem("last-"+testId) || 0, 10)+1; - window.localStorage.setItem("last-"+testId, tryStep); + var tryStep = lastStep != step.stepId ? 0 : (+(window.localStorage.getItem("test-last-"+testId) || 0) + 1); + window.localStorage.setItem("test-last-"+testId, tryStep); if (tryStep > 2) { - window.localStorage.removeItem(testId); - throw "Test: '" + testId + "' cycling step: '" + step.stepId + "'"; + throwError("Test: '" + testId + "' cycling step: '" + step.stepId + "'"); + } + + // set last time for report + if (tryStep == 0 || !window.localStorage.getItem("test-last-time")) { + window.localStorage.setItem("test-last-time", new Date().getTime()); } var _next = false; @@ -354,6 +365,12 @@ function next () { clearTimeout(overlapsCrash); _next = true; + + // set report + var report = JSON.parse(window.localStorage.getItem("test-report")) || {}; + report[step.stepId] = (new Date().getTime() - window.localStorage.getItem("test-last-time")) + " ms"; + window.localStorage.setItem("test-report", JSON.stringify(report)); + var nextStep = actionSteps.shift(); if (nextStep) { setTimeout(function () { @@ -364,12 +381,17 @@ } } overlapsCrash = setTimeout(function () { - window.localStorage.removeItem(testId); - throw "Test: '" + testId + "' can't resolve step: '" + step.stepId + "'"; - }, (step.delay || defaultDelay) + 500); + throwError("Test: '" + testId + "' can't resolve step: '" + step.stepId + "'"); + }, (step.delay || defaultDelay) + 1000); var $element = $(step.element); - if (step.triggers) step.triggers(next); + if (step.triggers) { + try { + step.triggers(next); + } catch (e) { + throwError(e); + } + } if ((step.trigger === 'reload' || (step.trigger && step.trigger.url)) && _next) return; if (step.snippet && step.trigger === 'drag') { @@ -415,6 +437,12 @@ }, reset: function () { window.localStorage.removeItem(testId); + window.localStorage.removeItem("test-report"); + for (var k in window.localStorage) { + if (window.localStorage[k].indexOf("test-last")) { + window.localStorage.removeItem(k); + } + } }, }; website.TestConsole.tests.push(test); diff --git a/addons/website/tests/ui_suite/ui_test_runner.js b/addons/website/tests/ui_suite/ui_test_runner.js index 3ba8cc3cb43..db61dedd6bd 100644 --- a/addons/website/tests/ui_suite/ui_test_runner.js +++ b/addons/website/tests/ui_suite/ui_test_runner.js @@ -10,6 +10,9 @@ function waitFor (ready, callback, timeout, timeoutMessageCallback) { var message = timeoutMessageCallback ? timeoutMessageCallback() : "Timeout after "+timeout+" ms"; console.log('{ "event": "error", "message": "'+message+'" }'); console.log("Waiting for...\n"+ready); + if (window.localStorage.getItem("test-report")) { + console.log(JSON.parse(website.localStorage.getItem("test-report"))); + } phantom.exit(1); } else { clearInterval(interval); diff --git a/addons/website_sale/static/src/js/website.tour.shop.js b/addons/website_sale/static/src/js/website.tour.shop.js index 78643d1b110..d5d508ebaf9 100644 --- a/addons/website_sale/static/src/js/website.tour.shop.js +++ b/addons/website_sale/static/src/js/website.tour.shop.js @@ -292,8 +292,7 @@ url: /shop\/confirmation\//, }, afterTrigger: function (tour) { - window.localStorage.setItem("test-success", "{}"); - throw "afterTrigger test finish, remove this throw"; + window.localStorage.setItem("shoptest-test-success", "true"); }, } ]; diff --git a/addons/website_sale/tests/ui_suite/website_sale-sale_process-test.js b/addons/website_sale/tests/ui_suite/website_sale-sale_process-test.js index c1027107e44..82bab6158c9 100644 --- a/addons/website_sale/tests/ui_suite/website_sale-sale_process-test.js +++ b/addons/website_sale/tests/ui_suite/website_sale-sale_process-test.js @@ -17,7 +17,7 @@ testRunner.run(function websiteSaleTest (page, timeout) { waitFor(function testExecuted () { return page.evaluate(function () { var res = window.localStorage && window.localStorage.getItem - && window.localStorage.getItem("test-success"); + && window.localStorage.getItem("shoptest-test-success"); return res; }); }, function finish () {