You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
5.0 KiB
174 lines
5.0 KiB
/** |
|
* @copyright 2016, Roeland Jago Douma <roeland@famdouma.nl> |
|
* |
|
* @author Roeland Jago Douma <roeland@famdouma.nl> |
|
* |
|
* @license GNU AGPL version 3 or any later version |
|
* |
|
* This program 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, either version 3 of the |
|
* License, or (at your option) any later version. |
|
* |
|
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>. |
|
* |
|
*/ |
|
|
|
describe('OCA.BruteForceSettings.IPWhiteList tests', function() { |
|
beforeEach(function() { |
|
// init parameters and test table elements |
|
$('#testArea').append( |
|
'<table>'+ |
|
'<tbody id="whitelist-list">' + |
|
'</tbody>' + |
|
'</table>' + |
|
'<input type="text" name="whitelist_ip" id="whitelist_ip" placeholder="1.2.3.4" style="width: 200px;" />/' + |
|
'<input type="number" id="whitelist_mask" name="whitelist_mask" placeholder="24" style="width: 50px;">' + |
|
'<input type="button" id="whitelist_submit" value="Add">' |
|
); |
|
}); |
|
|
|
it('get intial empty', function() { |
|
OCA.BruteForceSettings.WhiteList.init(); |
|
|
|
expect(fakeServer.requests.length).toEqual(1); |
|
expect(fakeServer.requests[0].method).toEqual('GET'); |
|
expect(fakeServer.requests[0].url).toEqual( |
|
OC.generateUrl('/apps/bruteforcesettings/ipwhitelist') |
|
); |
|
fakeServer.requests[0].respond( |
|
200, |
|
{ 'Content-Type': 'application/json' }, |
|
'[]' |
|
); |
|
|
|
expect($('#whitelist-list > tr').length).toEqual(0); |
|
}); |
|
it('get intial filled', function() { |
|
OCA.BruteForceSettings.WhiteList.init(); |
|
|
|
expect(fakeServer.requests.length).toEqual(1); |
|
expect(fakeServer.requests[0].method).toEqual('GET'); |
|
expect(fakeServer.requests[0].url).toEqual( |
|
OC.generateUrl('/apps/bruteforcesettings/ipwhitelist') |
|
); |
|
fakeServer.requests[0].respond( |
|
200, |
|
{ 'Content-Type': 'application/json' }, |
|
JSON.stringify([ |
|
{ |
|
id: 1, |
|
ip: '11.22.0.0', |
|
mask: 16 |
|
}, |
|
{ |
|
id: 12, |
|
ip: 'cafe:cafe::', |
|
mask: 80 |
|
} |
|
]) |
|
); |
|
|
|
expect($('#whitelist-list > tr').length).toEqual(2); |
|
|
|
var el1 = $($('#whitelist-list > tr').get(0)); |
|
expect(el1.data('id')).toEqual(1); |
|
expect($(el1.find('td > span')[0]).html()).toEqual('11.22.0.0/16'); |
|
|
|
var el2 = $($('#whitelist-list > tr').get(1)); |
|
expect(el2.data('id')).toEqual(12); |
|
expect($(el2.find('td > span')[0]).html()).toEqual('cafe:cafe::/80'); |
|
}); |
|
it('add whitelist', function() { |
|
OCA.BruteForceSettings.WhiteList.init(); |
|
|
|
expect(fakeServer.requests.length).toEqual(1); |
|
expect(fakeServer.requests[0].method).toEqual('GET'); |
|
expect(fakeServer.requests[0].url).toEqual( |
|
OC.generateUrl('/apps/bruteforcesettings/ipwhitelist') |
|
); |
|
fakeServer.requests[0].respond( |
|
200, |
|
{ 'Content-Type': 'application/json' }, |
|
'[]' |
|
); |
|
|
|
expect($('#whitelist-list > tr').length).toEqual(0); |
|
|
|
$('#whitelist_ip').val('2.4.8.16'); |
|
$('#whitelist_mask').val('8'); |
|
$('#whitelist_submit').click(); |
|
|
|
expect(fakeServer.requests.length).toEqual(2); |
|
expect(fakeServer.requests[1].method).toEqual('POST'); |
|
expect(JSON.parse(fakeServer.requests[1].requestBody)).toEqual({ |
|
ip: '2.4.8.16', |
|
mask: '8' |
|
}); |
|
expect(fakeServer.requests[1].url).toEqual( |
|
OC.generateUrl('/apps/bruteforcesettings/ipwhitelist') |
|
); |
|
fakeServer.requests[1].respond( |
|
200, |
|
{ 'Content-Type': 'application/json' }, |
|
JSON.stringify({ |
|
id: 99, |
|
ip: '2.4.8.16', |
|
mask: 8 |
|
}) |
|
); |
|
|
|
expect($('#whitelist-list > tr').length).toEqual(1); |
|
|
|
var el1 = $($('#whitelist-list > tr').get(0)); |
|
expect(el1.data('id')).toEqual(99); |
|
expect($(el1.find('td > span')[0]).html()).toEqual('2.4.8.16/8'); |
|
}); |
|
it('delete whitelist', function() { |
|
OCA.BruteForceSettings.WhiteList.init(); |
|
|
|
expect(fakeServer.requests.length).toEqual(1); |
|
expect(fakeServer.requests[0].method).toEqual('GET'); |
|
expect(fakeServer.requests[0].url).toEqual( |
|
OC.generateUrl('/apps/bruteforcesettings/ipwhitelist') |
|
); |
|
fakeServer.requests[0].respond( |
|
200, |
|
{ 'Content-Type': 'application/json' }, |
|
JSON.stringify([ |
|
{ |
|
id: 1, |
|
ip: '1.2.3.4', |
|
mask: 8 |
|
} |
|
]) |
|
); |
|
|
|
expect($('#whitelist-list > tr').length).toEqual(1); |
|
|
|
var el1 = $($('#whitelist-list > tr').get(0)); |
|
expect(el1.data('id')).toEqual(1); |
|
expect($(el1.find('td > span')[0]).html()).toEqual('1.2.3.4/8'); |
|
el1.find('.icon-delete').click(); |
|
|
|
expect(fakeServer.requests.length).toEqual(2); |
|
expect(fakeServer.requests[1].method).toEqual('DELETE'); |
|
expect(fakeServer.requests[1].url).toEqual( |
|
OC.generateUrl('/apps/bruteforcesettings/ipwhitelist/1') |
|
); |
|
|
|
fakeServer.requests[1].respond( |
|
200, |
|
{ 'Content-Type': 'application/json' }, |
|
'[]' |
|
); |
|
|
|
expect($('#whitelist-list > tr').length).toEqual(0); |
|
}); |
|
});
|
|
|