mirror of https://github.com/OCA/web.git
[MIG] web_responsive test to 11.0
parent
d1f6d20444
commit
dbb13fd15a
|
@ -1,275 +1,315 @@
|
||||||
/* Copyright 2016 LasLabs Inc.
|
/* Copyright 2016 LasLabs Inc.
|
||||||
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
|
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
|
||||||
|
|
||||||
odoo.define_section('web_responsive', ['web_responsive'], function(test) {
|
odoo.define('web_responsive.test', function(require) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
// It provides a base drawer compatible interface for testing
|
var core = require('web.core');
|
||||||
self.initInterface = function(AppDrawer) {
|
var responsive = require('web_responsive');
|
||||||
|
|
||||||
var $el = $('<div class="drawer drawer--left">');
|
QUnit.module('web_responsive', {
|
||||||
$el.append(
|
beforeEach: function() {
|
||||||
$('<header role="banner">')
|
var $el = $(
|
||||||
.append(
|
'<div class="drawer drawer--left">' +
|
||||||
$('<button class="drawer-toggle"><span class="drawer-hamburger-icon">')
|
'<header role="banner">' +
|
||||||
)
|
'<button class="drawer-toggle">' +
|
||||||
.append(
|
'<span class="drawer-hamburger-icon"/>' +
|
||||||
$('<nav class="drawer-nav"><ul class="drawer-menu"><li class="drawer-menu-item">')
|
'</button>' +
|
||||||
)
|
'<nav class="drawer-nav">' +
|
||||||
.append(
|
'<ul class="drawer-menu">' +
|
||||||
$('<div class="panel-title" id="appDrawerAppPanelHead">')
|
'<li class="drawer-menu-item"/>' +
|
||||||
)
|
'</ul>' +
|
||||||
).append($('<main role="main">'));
|
'</nav>' +
|
||||||
|
'<div class="panel-title" id="appDrawerAppPanelHead"></div>' +
|
||||||
|
'</header>' +
|
||||||
|
'<main role="main"></main>' +
|
||||||
|
'<a class="oe_menu_leaf"/>' +
|
||||||
|
'<div>' +
|
||||||
|
'<div class="o_sub_menu_content"></div>' +
|
||||||
|
'</div>' +
|
||||||
|
'<div class="dropdown-scrollable"></div>' +
|
||||||
|
'</div>'
|
||||||
|
);
|
||||||
|
|
||||||
self.$clickZone = $('<a class="oe_menu_leaf">');
|
this.$clickZone = $el.find('a.oe_menu_leaf');
|
||||||
|
this.$secondaryMenu = $el.find('div.o_sub_menu_content').parent();
|
||||||
|
this.$dropdown = $el.find('div.dropdown-scrollable');
|
||||||
|
|
||||||
self.$secondaryMenu = $('<div><div class="o_sub_menu_content">');
|
this.document = $("#qunit-fixture");
|
||||||
|
this.document.append($el);
|
||||||
|
|
||||||
self.$dropdown = $('<div class="dropdown-scrollable">');
|
this.drawer = new responsive.AppDrawer();
|
||||||
|
},
|
||||||
|
|
||||||
$el.append(self.$clickZone)
|
linkGrid: function() {
|
||||||
.append(self.$secondaryMenu)
|
|
||||||
.append(self.$dropdown);
|
|
||||||
|
|
||||||
var $document = $("#qunit-fixture");
|
|
||||||
$document.append($el);
|
|
||||||
|
|
||||||
self.drawer = new AppDrawer.AppDrawer();
|
|
||||||
|
|
||||||
return $document;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
self.linkGrid = function() {
|
|
||||||
for(var i = 0; i < 3; i++){
|
for(var i = 0; i < 3; i++){
|
||||||
self.drawer.$el.append(
|
this.drawer.$el.append(
|
||||||
$('<div class="row">').append(
|
$('<div class="row">').append(
|
||||||
$('<a class="col-md-6" id="a_' + i + '"><span class="app-drawer-icon-app /></a>' +
|
$('<a class="col-md-6" id="a_' + i + '"><span class="app-drawer-icon-app /></a>' +
|
||||||
'<a class="col-md-6" id="b_' + i + '"><span class="app-drawer-icon-app /></a>'
|
'<a class="col-md-6" id="b_' + i + '"><span class="app-drawer-icon-app /></a>'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
self.drawer.$appLinks = $('a.col-md-6');
|
this.drawer.$appLinks = this.drawer.$el.find('a.col-md-6');
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
});
|
||||||
|
|
||||||
test('It should set initialized after success init',
|
QUnit.test('It should set initialized after success init',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
assert.ok(self.drawer.initialized);
|
|
||||||
|
assert.ok(this.drawer.initialized);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should close drawer after click on clickZone',
|
QUnit.test('It should close drawer after click on clickZone',
|
||||||
{asserts: 1},
|
function(assert) {
|
||||||
function(assert, AppDrawer) {
|
assert.expect(1);
|
||||||
self.initInterface(AppDrawer);
|
|
||||||
self.$clickZone.click();
|
this.$clickZone.click();
|
||||||
|
|
||||||
|
var self = this;
|
||||||
var d = $.Deferred();
|
var d = $.Deferred();
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
assert.ok(self.drawer.$el.hasClass('drawer-close'));
|
assert.ok(self.drawer.$el.hasClass('drawer-close'));
|
||||||
d.resolve();
|
d.resolve();
|
||||||
}, 100);
|
}, 100);
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should collapse open secondary menus during handleClickZones',
|
QUnit.test('It should collapse open secondary menus during handleClickZones',
|
||||||
{asserts: 1},
|
function(assert) {
|
||||||
function(assert, AppDrawer) {
|
assert.expect(1);
|
||||||
self.initInterface(AppDrawer);
|
|
||||||
self.$clickZone.click();
|
this.$clickZone.click();
|
||||||
|
|
||||||
|
var self = this;
|
||||||
var d = $.Deferred();
|
var d = $.Deferred();
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
assert.equal(self.$secondaryMenu.attr('aria-expanded'), 'false');
|
assert.equal(self.$secondaryMenu.attr('aria-expanded'), 'false');
|
||||||
d.resolve();
|
d.resolve();
|
||||||
}, 100);
|
}, 200);
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should update max-height on scrollable dropdowns',
|
QUnit.test('It should update max-height on scrollable dropdowns',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
self.drawer.handleWindowResize();
|
|
||||||
var height = $(window).height() * self.drawer.dropdownHeightFactor;
|
this.drawer.handleWindowResize();
|
||||||
assert.equal(
|
|
||||||
self.$dropdown.css('max-height'),
|
var height = $(window).height() * this.drawer.dropdownHeightFactor;
|
||||||
height + 'px'
|
var actual = parseFloat(this.$dropdown.css('max-height'));
|
||||||
);
|
|
||||||
|
var pass = Math.abs(actual - height) < 0.001;
|
||||||
|
|
||||||
|
assert.pushResult({
|
||||||
|
result: pass,
|
||||||
|
actual: actual,
|
||||||
|
expect: height,
|
||||||
|
message: ''
|
||||||
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should return keybuffer + new key',
|
QUnit.test('It should return keybuffer + new key',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
self.drawer.keyBuffer = 'TES';
|
|
||||||
var res = self.drawer.handleKeyBuffer(84);
|
this.drawer.keyBuffer = 'TES';
|
||||||
|
var res = this.drawer.handleKeyBuffer(84);
|
||||||
assert.equal(res, 'TEST');
|
assert.equal(res, 'TEST');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should clear keybuffer after timeout',
|
QUnit.test('It should clear keybuffer after timeout',
|
||||||
{asserts: 1},
|
function(assert) {
|
||||||
function(assert, AppDrawer) {
|
assert.expect(1);
|
||||||
self.initInterface(AppDrawer);
|
|
||||||
self.drawer.keyBuffer = 'TES';
|
this.drawer.keyBuffer = 'TES';
|
||||||
self.drawer.keyBufferTime = 10;
|
this.drawer.keyBufferTime = 10;
|
||||||
self.drawer.handleKeyBuffer(84);
|
this.drawer.handleKeyBuffer(84);
|
||||||
|
|
||||||
|
var self = this;
|
||||||
var d = $.Deferred();
|
var d = $.Deferred();
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
assert.equal(self.drawer.keyBuffer, "");
|
assert.equal(self.drawer.keyBuffer, "");
|
||||||
d.resolve();
|
d.resolve();
|
||||||
}, 100);
|
}, 100);
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should trigger core bus event for drawer close',
|
QUnit.test('It should trigger core bus event for drawer close',
|
||||||
['web.core'], {asserts: 1},
|
function(assert) {
|
||||||
function(assert, AppDrawer, core) {
|
assert.expect(1);
|
||||||
self.initInterface(AppDrawer);
|
|
||||||
self.drawer.onDrawerOpen();
|
this.drawer.onDrawerOpen();
|
||||||
var d = $.Deferred();
|
var d = $.Deferred();
|
||||||
core.bus.on('drawer.closed', this, function() {
|
core.bus.on('drawer.closed', this, function() {
|
||||||
assert.ok(true);
|
assert.ok(true);
|
||||||
d.resolve();
|
d.resolve();
|
||||||
});
|
});
|
||||||
self.drawer.$el.trigger({type: 'drawer.closed'});
|
|
||||||
|
this.drawer.$el.trigger({type: 'drawer.closed'});
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should set isOpen to false when closing',
|
QUnit.test('It should set isOpen to false when closing',
|
||||||
{asserts: 1},
|
function(assert) {
|
||||||
function(assert, AppDrawer) {
|
assert.expect(1);
|
||||||
self.initInterface(AppDrawer);
|
|
||||||
self.drawer.onDrawerOpen();
|
this.drawer.onDrawerOpen();
|
||||||
|
|
||||||
|
var self = this;
|
||||||
var d = $.Deferred();
|
var d = $.Deferred();
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
assert.equal(self.drawer.isOpen, false);
|
assert.equal(self.drawer.isOpen, false);
|
||||||
d.resolve();
|
d.resolve();
|
||||||
});
|
}, 100);
|
||||||
self.drawer.$el.trigger({type: 'drawer.closed'});
|
|
||||||
|
this.drawer.$el.trigger({type: 'drawer.closed'});
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should set isOpen to true when opening',
|
QUnit.test('It should set isOpen to true when opening',
|
||||||
{asserts: 1},
|
function(assert) {
|
||||||
function(assert, AppDrawer) {
|
assert.expect(1);
|
||||||
self.initInterface(AppDrawer);
|
|
||||||
|
this.drawer.$el.trigger({type: 'drawer.opened'});
|
||||||
|
|
||||||
|
var self = this;
|
||||||
var d = $.Deferred();
|
var d = $.Deferred();
|
||||||
self.drawer.$el.trigger({type: 'drawer.opened'});
|
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
assert.ok(self.drawer.isOpen);
|
assert.ok(self.drawer.isOpen);
|
||||||
d.resolve();
|
d.resolve();
|
||||||
});
|
}, 100);
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should trigger core bus event for drawer open',
|
QUnit.test('It should trigger core bus event for drawer open',
|
||||||
['web.core'], {asserts: 1},
|
function(assert) {
|
||||||
function(assert, AppDrawer, core) {
|
assert.expect(1);
|
||||||
self.initInterface(AppDrawer);
|
|
||||||
self.drawer.onDrawerOpen();
|
this.drawer.onDrawerOpen();
|
||||||
var d = $.Deferred();
|
var d = $.Deferred();
|
||||||
|
|
||||||
core.bus.on('drawer.opened', this, function() {
|
core.bus.on('drawer.opened', this, function() {
|
||||||
assert.ok(true);
|
assert.ok(true);
|
||||||
d.resolve();
|
d.resolve();
|
||||||
});
|
});
|
||||||
self.drawer.$el.trigger({type: 'drawer.opened'});
|
|
||||||
|
this.drawer.$el.trigger({type: 'drawer.opened'});
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should choose link to right',
|
QUnit.test('It should choose link to right',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
self.linkGrid();
|
|
||||||
|
this.linkGrid();
|
||||||
|
|
||||||
var $appLink = $('#a_1'),
|
var $appLink = $('#a_1'),
|
||||||
$expect = $('#a_2'),
|
$expect = $('#a_2'),
|
||||||
$res = self.drawer.findAdjacentAppLink(
|
$res = this.drawer.findAdjacentAppLink(
|
||||||
$appLink, self.drawer.RIGHT
|
$appLink, this.drawer.RIGHT
|
||||||
);
|
);
|
||||||
|
|
||||||
assert.equal($res[0].id, $expect[0].id);
|
assert.equal($res[0].id, $expect[0].id);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should choose link to left',
|
QUnit.test('It should choose link to left',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
self.linkGrid();
|
|
||||||
|
this.linkGrid();
|
||||||
var $appLink = $('#a_2'),
|
var $appLink = $('#a_2'),
|
||||||
$expect = $('#a_1'),
|
$expect = $('#a_1'),
|
||||||
$res = self.drawer.findAdjacentAppLink(
|
$res = this.drawer.findAdjacentAppLink(
|
||||||
$appLink, self.drawer.LEFT
|
$appLink, this.drawer.LEFT
|
||||||
);
|
);
|
||||||
assert.equal($res[0].id, $expect[0].id);
|
assert.equal($res[0].id, $expect[0].id);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should choose link above',
|
QUnit.test('It should choose link above',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
self.linkGrid();
|
|
||||||
|
this.linkGrid();
|
||||||
var $appLink = $('#a_1'),
|
var $appLink = $('#a_1'),
|
||||||
$expect = $('#a_0'),
|
$expect = $('#a_0'),
|
||||||
$res = self.drawer.findAdjacentAppLink(
|
$res = this.drawer.findAdjacentAppLink(
|
||||||
$appLink, self.drawer.UP
|
$appLink, this.drawer.UP
|
||||||
);
|
);
|
||||||
assert.equal($res[0].id, $expect[0].id);
|
assert.equal($res[0].id, $expect[0].id);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should choose link below',
|
QUnit.test('It should choose link below',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
self.linkGrid();
|
|
||||||
|
this.linkGrid();
|
||||||
var $appLink = $('#a_1'),
|
var $appLink = $('#a_1'),
|
||||||
$expect = $('#a_2'),
|
$expect = $('#a_2'),
|
||||||
$res = self.drawer.findAdjacentAppLink(
|
$res = this.drawer.findAdjacentAppLink(
|
||||||
$appLink, self.drawer.DOWN
|
$appLink, this.drawer.DOWN
|
||||||
);
|
);
|
||||||
assert.equal($res[0].id, $expect[0].id);
|
assert.equal($res[0].id, $expect[0].id);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should choose first link if next on last',
|
QUnit.test('It should choose first link if next on last',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
self.linkGrid();
|
|
||||||
|
this.linkGrid();
|
||||||
var $appLink = $('#b_2'),
|
var $appLink = $('#b_2'),
|
||||||
$expect = $('#a_0'),
|
$expect = $('#a_0'),
|
||||||
$res = self.drawer.findAdjacentAppLink(
|
$res = this.drawer.findAdjacentAppLink(
|
||||||
$appLink, self.drawer.RIGHT
|
$appLink, this.drawer.RIGHT
|
||||||
);
|
);
|
||||||
assert.equal($res[0].id, $expect[0].id);
|
assert.equal($res[0].id, $expect[0].id);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should choose bottom link if up on top',
|
QUnit.test('It should choose bottom link if up on top',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
self.linkGrid();
|
|
||||||
|
this.linkGrid();
|
||||||
var $appLink = $('#a_0'),
|
var $appLink = $('#a_0'),
|
||||||
$expect = $('#a_2'),
|
$expect = $('#a_2'),
|
||||||
$res = self.drawer.findAdjacentAppLink(
|
$res = this.drawer.findAdjacentAppLink(
|
||||||
$appLink, self.drawer.UP
|
$appLink, this.drawer.UP
|
||||||
);
|
);
|
||||||
assert.equal($res[0].id, $expect[0].id);
|
assert.equal($res[0].id, $expect[0].id);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
test('It should choose top link if down on bottom',
|
QUnit.test('It should choose top link if down on bottom',
|
||||||
function(assert, AppDrawer) {
|
function(assert) {
|
||||||
self.initInterface(AppDrawer);
|
assert.expect(1);
|
||||||
self.linkGrid();
|
|
||||||
|
this.linkGrid();
|
||||||
var $appLink = $('#a_2'),
|
var $appLink = $('#a_2'),
|
||||||
$expect = $('#a_0'),
|
$expect = $('#a_0'),
|
||||||
$res = self.drawer.findAdjacentAppLink(
|
$res = this.drawer.findAdjacentAppLink(
|
||||||
$appLink, self.drawer.DOWN
|
$appLink, this.drawer.DOWN
|
||||||
);
|
);
|
||||||
assert.equal($res[0].id, $expect[0].id);
|
assert.equal($res[0].id, $expect[0].id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
from . import test_ui
|
Loading…
Reference in New Issue