瀏覽代碼

[UI Test] list view (#3684)

* [UI Test] List view

* some fixes in test_list_menu

* codacy fixes

* minor fixes

* removed menu test
version-14
Utkarsh Yadav 8 年之前
committed by Rushabh Mehta
父節點
當前提交
f4c955d5b6
共有 5 個文件被更改,包括 191 次插入4 次删除
  1. +16
    -0
      frappe/tests/ui/data/test_data_for_views.js
  2. +60
    -4
      frappe/tests/ui/data/test_lib.js
  3. +62
    -0
      frappe/tests/ui/test_list_delete.js
  4. +35
    -0
      frappe/tests/ui/test_list_filter.js
  5. +18
    -0
      frappe/tests/ui/test_list_paging.js

+ 16
- 0
frappe/tests/ui/data/test_data_for_views.js 查看文件

@@ -0,0 +1,16 @@
$.extend(frappe.test_data, {
'User': {
'user1@mail.com': [
{first_name: 'User 1'},
{email: 'user1@mail.com'},
{send_welcome_email: 0}
]
},
'Kanban Board': {
'kanban 1': [
{kanban_board_name: 'kanban 1'},
{reference_doctype: 'ToDo'},
{field_name: 'status'}
]
}
});

+ 60
- 4
frappe/tests/ui/data/test_lib.js 查看文件

@@ -8,8 +8,14 @@ frappe.tests = {
() => frappe.set_route('List', doctype),
() => frappe.new_doc(doctype),
() => {
let frm = frappe.quick_entry ? frappe.quick_entry.dialog : cur_frm;
return frappe.tests.set_form_values(frm, data);
if (frappe.quick_entry)
{
frappe.quick_entry.dialog.$wrapper.find('.edit-full').click();
return frappe.timeout(1);
}
},
() => {
return frappe.tests.set_form_values(cur_frm, data);
},
() => frappe.timeout(1),
() => (frappe.quick_entry ? frappe.quick_entry.insert() : cur_frm.save())
@@ -90,7 +96,57 @@ frappe.tests = {
});

return frappe.run_serially(tasks);
}
}]);
},
click_and_wait: (button, obj=0.1) => {
return frappe.run_serially([
() => {
//check if obj value is passed
if (obj == 0.1)
$(button).click();
else
$(button)[obj].click();
},
() => frappe.timeout(0.5)
]);
},
create_todo: (todo_needed) => {
let status_list = ['Closed', 'Open'];
let priority_list = ['Low', 'Medium', 'High'];
let date_list = ['2017-05-05', '2017-06-06', '2017-07-07', '2017-08-08'];
let owner_list = ['Administrator', 'user1@mail.com'];
let i;
let num_of_todo;
let tasks = [];

return frappe.run_serially([
() => frappe.set_route('List', 'ToDo', 'List'),
() => {
//remove todo filters
for (i=1; i<=5; i++)
$('.col-md-2:nth-child('+i+') .input-sm').val('');
},
() => cur_list.page.btn_secondary.click(),
() => frappe.timeout(0.5),
() => num_of_todo = cur_list.data.length,//todo present
() => {
if (num_of_todo < todo_needed)
{
for (i=0; i<(todo_needed-num_of_todo); i+=1)
{
tasks.push(() => frappe.tests.make("ToDo", [
{description: 'ToDo for testing'},
{status: status_list[i%2]},
{priority: priority_list[i%3]},
{date: date_list[i%4]},
{owner: owner_list[i%2]}
]));
tasks.push(() => i+=1);
}
i=0;
}
},
() => frappe.run_serially(tasks)
]);
},
click_page_head_item: (text) => {
@@ -175,4 +231,4 @@ frappe.tests = {
$(`a:contains("${text}"):visible`).click();
return frappe.timeout(1);
}
};
};

+ 62
- 0
frappe/tests/ui/test_list_delete.js 查看文件

@@ -0,0 +1,62 @@
QUnit.module('views');

QUnit.test("Test deletion of one list element", function(assert) {
assert.expect(3);
let done = assert.async();
let count;
let random;

frappe.run_serially([
() => frappe.tests.setup_doctype('User'),
() => frappe.tests.create_todo(2),
() => frappe.set_route('List', 'ToDo', 'List'),
() => frappe.timeout(0.5),
() => {
assert.deepEqual(['List', 'ToDo', 'List'], frappe.get_route(), "List opened successfully.");
//total list elements
count = cur_list.data.length;
random = Math.floor(Math.random() * (count) + 1);
//select one element randomly
$('div:nth-child('+random+')>div>div>.list-row-checkbox').click();
},
() => cur_list.page.btn_primary.click(),
() => frappe.timeout(0.5),
() => {
//check if asking for confirmation and click yes
assert.equal("Confirm", cur_dialog.title, "Asking for confirmation.");
cur_dialog.primary_action(frappe.confirm);
},
() => frappe.timeout(1),
//check if total elements decreased by one
() => assert.equal(cur_list.data.length, (count-1), "Only one element is deleted."),
() => done()
]);
});

QUnit.test("Test deletion of all list element", function(assert) {
assert.expect(3);
let done = assert.async();

frappe.run_serially([
() => frappe.tests.setup_doctype('User'),
() => frappe.tests.create_todo(5),
() => frappe.set_route('List', 'ToDo', 'List'),
() => frappe.timeout(0.5),
() => {
assert.deepEqual(['List', 'ToDo', 'List'], frappe.get_route(), "List opened successfully.");
//select all element
$('.list-select-all.hidden-xs').click();
},
() => cur_list.page.btn_primary.click(),
() => frappe.timeout(0.5),
() => {
assert.equal("Confirm", cur_dialog.title, "Asking for confirmation.");
//click yes for deletion
cur_dialog.primary_action(frappe.confirm);
},
() => frappe.timeout(2),
//check zero elements left
() => assert.equal( cur_list.data.length, '0', "No element is present in list."),
() => done()
]);
});

+ 35
- 0
frappe/tests/ui/test_list_filter.js 查看文件

@@ -0,0 +1,35 @@
QUnit.module('views');

QUnit.test("Test filters", function(assert) {
assert.expect(2);
let done = assert.async();

frappe.run_serially([
() => frappe.tests.setup_doctype('User'),
() => frappe.tests.create_todo(6),
() => frappe.set_route('List', 'ToDo', 'List'),
() => frappe.timeout(0.5),
() => {
assert.deepEqual(['List', 'ToDo', 'List'], frappe.get_route(), "List opened successfully.");
//set filter values
$('.col-md-2:nth-child(2) .input-sm').val('Closed');
$('.col-md-2:nth-child(3) .input-sm').val('Low');
$('.col-md-2:nth-child(4) .input-sm').val('05-05-2017');
$('.col-md-2:nth-child(5) .input-sm').val('Administrator');
},
() => frappe.timeout(0.5),
() => cur_list.page.btn_secondary.click(),
() => frappe.timeout(1),
() => {
//get total list element
var count = cur_list.data.length;
//check if all elements are as per filter
var i=0;
for ( ; i < count ; i++)
if ((cur_list.data[i].status!='Closed')||(cur_list.data[i].priority!='Low')||(cur_list.data[i].owner!='Administrator')||(cur_list.data[i].date!='2017-05-05'))
break;
assert.equal(count, i, "Elements present have content according to filters.");
},
() => done()
]);
});

+ 18
- 0
frappe/tests/ui/test_list_paging.js 查看文件

@@ -0,0 +1,18 @@
QUnit.module('views');

QUnit.test("Test paging in list", function(assert) {
assert.expect(3);
let done = assert.async();

frappe.run_serially([
() => frappe.set_route('List', 'DocType'),
() => frappe.timeout(0.5),
() => assert.deepEqual(['List', 'DocType', 'List'], frappe.get_route(), "List opened successfully."),
//check elements less then page length [20 in this case]
() => assert.ok(cur_list.data.length <= cur_list.page_length, "20 or less elements are visible."),
() => frappe.tests.click_and_wait('.btn-sm:contains("100"):visible'),
//check elements less then page length [100 in this case]
() => assert.ok(cur_list.data.length <= cur_list.page_length, "100 or less elements are visible."),
() => done()
]);
});

Loading…
取消
儲存