An error occurred while loading the file. Please try again.
-
Ghislain Loas authored73d527bd
search_input_test.js 6.15 KiB
/**
* Copyright (c) 2014, Agence Française Informatique (AFI). All rights reserved.
*
* BOKEH is free software; you can redistribute it and/or modify
* it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
* the Free Software Foundation.
*
* There are special exceptions to the terms and conditions of the AGPL as it
* is applied to this software (see README file).
*
* BOKEH is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
* along with BOKEH; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
var fixture;
var html = $('html');
html.find('div').css('color', 'green');
QUnit.module('search_widget', {
setup: function() {
fixture = $('<div>'
+'<article>Bokeh</article>'
+'<div class="article_full_separator"></div>'
+'<article>Biquette</article>'
+'<div class="article_full_separator"></div>'
+'<article>La biquette</article>'
+'</div>');
fixture_ul_li = $(
'<div>'
+ '<ul>'
+ '<li>'
+ '<div class="sections">Listes</div>'
+ '<div class="actions">Actions</div>'
+ '<ul>'
+ '<li>'
+ '<div class="contents">Prems</div>'
+ '<div class="actions">Actions</div>'
+ '</li>'
+ '<li>'
+ '<div class="contents">Seconds</div>'
+ '<div class="actions">Actions</div>'
+ '</li>'
+ '</ul>'
+ '</li>'
+ '<li>'
+ '<div class="sections">Categories</div>'
+ '<div class="actions">Actions</div>'
+ '<ul>'
+ '<li>'
+ '<div class="contents">Premier</div>'
+ '<div class="actions">Actions</div>'
+ '</li>'
+ '<li>'
+ '<div class="contents">Premier bis</div>'
+ '<div class="actions">Actions</div>'
+ '</li>'
+ '<li>'
+ '<div class="contents">Premier ter</div>'
+ '<div class="actions">Actions</div>'
+ '</li>'
+ '<li>'
+ '<div class="contents">Deuxieme</div>'
+ '<div class="actions">Actions</div>'
+ '</li>'
+ '</ul></li></ul></div>');
fixture.search_input({ id : 'admin_left_menu',
label : '' ,
fixed_display : 'div'});
fixture_ul_li.search_input({ id : 'admin_left_menu',
label : '' ,
search_path : 'ul li div'});
}
});
test('search input should be present', function() {
deepEqual(fixture.find('input[name="search_input"][id="admin_left_menu"]').length, 1, fixture.html());
});
test('search input css should be present', function() {
deepEqual(html.find('link[href*="public/opac/java/search_input/search_input.css"]').length, 1, html.html());
});
test('div class separator should not be hide', function() {
fixture.find('input').val('biq');
fixture.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
deepEqual(fixture.find('div.search_input_not_found.article_full_separator').length, 0, fixture.html());
});
test('search term "biq" should hide article Bokeh', function() {
fixture.find('input').val('biq');
fixture.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
deepEqual(fixture.find('article.search_input_not_found').length, 1, fixture.html());
});
test('search terms "biq la" should hide articles Bokeh and Biquette', function() {
fixture.find('input').val('biq la');
fixture.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
deepEqual(fixture.find('article.search_input_not_found').length, 2, fixture.html());
});
test('search terms "prem" should hide li contents Seconds and Deuxieme', function() {
fixture_ul_li.find('input').val('prem');
fixture_ul_li.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
equal(fixture_ul_li.find('div.contents.search_input_not_found').length, 2,
fixture_ul_li.html());
});
test('search terms "prem" should hide 2 div.actions', function() {
fixture_ul_li.find('input').val('prem');
fixture_ul_li.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
equal(fixture_ul_li.find('div.actions.search_input_not_found').length, 2,
fixture_ul_li.html());
});
test('search terms "prem" should not hide li sections', function() {
fixture_ul_li.find('input').val('prem');
fixture_ul_li.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
equal(fixture_ul_li.find('div.sections.search_input_not_found').length, 0,
fixture_ul_li.html());
});
test('search terms "deux" should hide li contents Prems Seconds and Premier', function() {
fixture_ul_li.find('input').val('deux');
fixture_ul_li.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
equal(fixture_ul_li.find('div.contents.search_input_not_found').length, 5,
fixture_ul_li.html());
});
test('search terms "deux" should hide 6 div.actions', function() {
fixture_ul_li.find('input').val('deux');
fixture_ul_li.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
equal(fixture_ul_li.find('div.actions.search_input_not_found').length, 6,
fixture_ul_li.html());
});
test('search terms "deux" should hide li sections Listes', function() {
fixture_ul_li.find('input').val('deux');
fixture_ul_li.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
equal(fixture_ul_li.find('div.sections.search_input_not_found').length, 1,
fixture_ul_li.html());
});
test('search terms "cate" should not hide his childs', function() {
fixture_ul_li.find('input').val('cate');
fixture_ul_li.find('input').trigger($.Event( "keyup", { keyCode: 0 }));
equal(fixture_ul_li.find('div.contents.search_input_not_found').length, 2,
fixture_ul_li.html());
});
test('keypress on search input should be bind', function() {
$events = $._data(fixture_ul_li.find('input')[0], 'events');
equal($events['keypress'] !== undefined , true);
});