[IMP] Added blog UI test

bzr revid: ddm@openerp.com-20140102151115-16mlisduee7zav6g
This commit is contained in:
ddm 2014-01-02 16:11:15 +01:00
parent c71318e342
commit 0e430008bd
7 changed files with 76 additions and 17 deletions

View File

@ -291,6 +291,7 @@
var self = this;
var testId = 'test_'+tour.id+'_tour';
this.tours.push(tour);
var stepDelay = 100; //ms
var test = {
id: tour.id,
run: function (force) {
@ -309,8 +310,8 @@
setTimeout(function () {
setTimeout(function () {
executeStep(nextStep);
}, 10);
}, 10);
}, stepDelay);
}, 0);
} else {
window.localStorage.removeItem(testId);
}
@ -319,13 +320,7 @@
if (step.snippet && step.trigger === 'drag') {
website.TestConsole.dragAndDropSnippet(step.snippet);
} else if (step.trigger.id === 'change') {
var currentValue = $element.val();
var options = $element[0].options;
// FIXME: It may be necessary to set a particular value
var newValue = _.find(options, function (option) {
return option.value !== currentValue;
}).value;
$element.val(newValue).trigger($.Event("change"));
$element.trigger($.Event("change", { srcElement: $element }));
} else {
$element.trigger($.Event("click", { srcElement: $element }));
}
@ -350,8 +345,8 @@
setTimeout(function () {
setTimeout(function () {
executeStep(currentStep);
}, 10);
}, 10);
}, stepDelay);
}, 0);
}
}
},

View File

@ -81,7 +81,7 @@ class WebsiteUiSuite(unittest.TestSuite):
phantom = subprocess.Popen([
'phantomjs',
os.path.join(os.path.join(os.path.dirname(__file__), 'ui_suite'), self._testfile),
self._testfile,
json.dumps(self._options)
], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
@ -132,8 +132,11 @@ class WebsiteUiSuite(unittest.TestSuite):
except ValueError:
result.addError(self._test, 'Unexpected message: "%s"' % "\n".join(lines))
def full_path(filename):
return os.path.join(os.path.join(os.path.dirname(__file__), 'ui_suite'), filename)
def load_tests(loader, base, _):
base.addTest(WebsiteUiSuite('dummy_test.js', {}))
base.addTest(WebsiteUiSuite('simple_dom_test.js', { 'action': 'website.action_website_homepage' }, 120.0))
base.addTest(WebsiteUiSuite('homepage_test.js', { 'action': 'website.action_website_homepage' }, 120.0))
base.addTest(WebsiteUiSuite(full_path('dummy_test.js'), {}))
base.addTest(WebsiteUiSuite(full_path('simple_dom_test.js'), { 'action': 'website.action_website_homepage' }, 120.0))
base.addTest(WebsiteUiSuite(full_path('homepage_test.js'), { 'action': 'website.action_website_homepage' }, 120.0))
return base

View File

@ -11,6 +11,9 @@ testRunner.run(function homepageTest (page) {
&& window.openerp.website.TestConsole.test('banner');
});
}, function executeTest () {
page.onResourceError = function(error) {
console.log('{ "event": "error", "message": "'+error.url+' failed to load ('+error.errorString+') "}');
};
var before = page.evaluate(function () {
var result = {
carousel: $('#wrap [data-snippet-id=carousel]').length,

View File

@ -43,17 +43,26 @@ function run (test) {
page.viewportSize = { width: 1920, height: 1080 };
page.onError = function(message, trace) {
console.log('{ "event": "error", "message": "'+message+'"}');
phantom.exit(1);
};
page.onAlert = function(message) {
console.log(message);
phantom.exit(1);
};
page.onConsoleMessage = function(message) {
console.log(message);
phantom.exit(1);
};
page.open(url, function (status) {
if (status !== 'success') {
console.log('{ "event": "error", "message": "'+url+' failed to load"}');
phantom.exit(1);
} else {
test(page);
page.onLoadFinished = function(status) {
test(page);
};
}
});
}

View File

@ -21,6 +21,8 @@
from openerp.addons.website_blog.tests import test_controllers
import test_ui
checks = [
test_controllers,
]

View File

@ -0,0 +1,10 @@
import os
import openerp.addons.website.tests.test_ui as test_ui
def full_path(filename):
return os.path.join(os.path.join(os.path.dirname(__file__), 'ui_suite'), filename)
def load_tests(loader, base, _):
base.addTest(test_ui.WebsiteUiSuite(full_path('post_test.js'), { 'action': 'website.action_website_homepage' }, 120.0))
return base

View File

@ -0,0 +1,37 @@
var testRunner = require('../../../website/tests/ui_suite/ui_test_runner.js');
var waitFor = testRunner.waitFor;
testRunner.run(function homepageTest (page) {
page.evaluate(function () { localStorage.clear(); });
waitFor(function clientReady () {
return page.evaluate(function () {
return window.openerp && window.openerp.website
&& window.openerp.website.TestConsole
&& window.openerp.website.TestConsole.test('blog');
});
}, function executeTest () {
page.onResourceError = function(error) {
console.log('{ "event": "error", "message": "'+error.url+' failed to load ('+error.errorString+') "}');
};
page.evaluate(function () {
window.openerp.website.TestConsole.test('blog').run(true);
});
waitFor(function testExecuted () {
var after = page.evaluate(function () {
return $('button[data-action=edit]').is(":visible") && {
image: $('#wrap [data-snippet-id=image-text]').length,
text: $('#wrap [data-snippet-id=text-block]').length,
};
});
var result = after && (after.image === 1) && (after.text === 1);
if (!result && window.location.href.indexOf('/blogpost/') > 0) {
window.location.reload();
}
return result;
}, function finish () {
console.log('{ "event": "success" }');
phantom.exit();
}, 90000);
}, 20000);
});