blob: 5c7db92982be1c4752d3a3d1d622d92922b4cd9e [file] [log] [blame] [edit]
// Copyright 2015 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview Jasmine test file for process_log.js.
*/
describe('ProcessLog', function() {
var doc;
var managerDiv;
beforeEach((function() {
doc = document;
managerDiv = doc.createElement('div');
managerDiv.className = 'managers';
var fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.id = 'file_name';
managerDiv.appendChild(fileInput);
doc.body.appendChild(managerDiv);
}));
afterEach((function() {
managerDiv.parentNode.removeChild(managerDiv);
doc = null;
managerDiv = null;
}));
it('should properly clean up when a new file is selected', function() {
var checkDiv;
var child1 = doc.createElement('h2');
managerDiv.appendChild(child1);
checkDiv = document.getElementsByClassName('managers');
expect(checkDiv[0].childNodes.length).toBe(2);
cleanupForNewFile();
checkDiv = document.getElementsByClassName('managers');
expect(checkDiv[0].hasChildNodes()).toBe(false);
});
it('should not process a log when a file is not selected', function() {
var readFileSpy = jasmine.createSpy('readFile');
parseFile();
expect(readFileSpy.calls.any()).toEqual(false);
});
it('should add end state for supplicant states for Android logs',
function() {
var logSummary = new LogSummary();
var wsm = new WifiStateMachine(0, 0, 0);
logSummary.wifiStateMachines = [wsm];
wsm.endTime = 10;
wsm.supplicantStates.push({'x': 0, 'y': 'SCANNING'});
wsm.supplicantStates.push({'x': 1, 'y': 'SCANNING'});
wsm.supplicantStates.push({'x': 1, 'y': 'ASSOCIATING'});
spyOn(androidStateGraph, 'createGraph'); // Mock out call
displayAndroidLogSummary(logSummary);
expect(wsm.supplicantStates.length).toBe(4);
expect(wsm.supplicantStates[3].x).toBe(10);
expect(wsm.supplicantStates[3].y).toBe('ASSOCIATING');
});
it('should add end state for single supplicant state for Android logs',
function() {
var logSummary = new LogSummary();
var wsm = new WifiStateMachine(0, 0, 0);
logSummary.wifiStateMachines = [wsm];
wsm.endTime = 10;
wsm.supplicantStates.push({'x': 0, 'y': 'SCANNING'});
spyOn(androidStateGraph, 'createGraph');
displayAndroidLogSummary(logSummary);
expect(wsm.supplicantStates.length).toBe(2);
expect(wsm.supplicantStates[1].x).toBe(10);
expect(wsm.supplicantStates[1].y).toBe('SCANNING');
});
it('should add end state for WifiStateMachine states for Android logs',
function() {
var logSummary = new LogSummary();
var wsm = new WifiStateMachine(0, 0, 0);
logSummary.wifiStateMachines = [wsm];
wsm.endTime = 10;
wsm.networkDetailedStates.push({'x': 0, 'y': 'SCANNING'});
wsm.networkDetailedStates.push({'x': 1, 'y': 'SCANNING'});
wsm.networkDetailedStates.push({'x': 1, 'y': 'ASSOCIATING'});
spyOn(androidStateGraph, 'createGraph');
displayAndroidLogSummary(logSummary);
expect(wsm.networkDetailedStates.length).toBe(4);
expect(wsm.networkDetailedStates[3].x).toBe(10);
expect(wsm.networkDetailedStates[3].y).toBe('ASSOCIATING');
});
it('should add end state for single WifiStateMachine state for Android logs',
function() {
var logSummary = new LogSummary();
var wsm = new WifiStateMachine(0, 0, 0);
logSummary.wifiStateMachines = [wsm];
wsm.endTime = 10;
wsm.networkDetailedStates.push({'x': 0, 'y': 'SCANNING'});
spyOn(androidStateGraph, 'createGraph');
displayAndroidLogSummary(logSummary);
expect(wsm.networkDetailedStates.length).toBe(2);
expect(wsm.networkDetailedStates[1].x).toBe(10);
expect(wsm.networkDetailedStates[1].y).toBe('SCANNING');
});
it('should add end state for supplicant states for shill logs',
function() {
var logSummary = new LogSummary();
var manager = new Manager(0, 0, 0);
logSummary.managers = [manager];
manager.endTime = 10;
manager.supplicantStates.push({'x': 0, 'y': 'SCANNING'});
manager.supplicantStates.push({'x': 1, 'y': 'SCANNING'});
manager.supplicantStates.push({'x': 1, 'y': 'ASSOCIATING'});
spyOn(stateGraph, 'createGraph');
displayLogSummary(logSummary);
expect(manager.supplicantStates.length).toBe(4);
expect(manager.supplicantStates[3].x).toBe(10);
expect(manager.supplicantStates[3].y).toBe('ASSOCIATING');
});
it('should add end state for single supplicant state for shill logs',
function() {
var logSummary = new LogSummary();
var manager = new Manager(0, 0, 0);
logSummary.managers = [manager];
manager.endTime = 10;
manager.supplicantStates.push({'x': 0, 'y': 'SCANNING'});
spyOn(stateGraph, 'createGraph');
displayLogSummary(logSummary);
expect(manager.supplicantStates.length).toBe(2);
expect(manager.supplicantStates[1].x).toBe(10);
expect(manager.supplicantStates[1].y).toBe('SCANNING');
});
it('should add end state for service states for shill logs',
function() {
var logSummary = new LogSummary();
var manager = new Manager(0, 0, 0);
logSummary.managers = [manager];
manager.endTime = 10;
var service = new Service(0);
service.isActive = true;
service.graphData.push({'x': 0, 'y': 'SCANNING'});
service.graphData.push({'x': 1, 'y': 'SCANNING'});
service.graphData.push({'x': 1, 'y': 'ASSOCIATING'});
manager.services.push(service);
spyOn(stateGraph, 'createGraph');
displayLogSummary(logSummary);
expect(service.graphData.length).toBe(4);
expect(service.graphData[3].x).toBe(10);
expect(service.graphData[3].y).toBe('ASSOCIATING');
});
it('should add end state for single service state for shill logs',
function() {
var logSummary = new LogSummary();
var manager = new Manager(0, 0, 0);
logSummary.managers = [manager];
manager.endTime = 10;
var service = new Service(0);
service.isActive = true;
service.graphData.push({'x': 0, 'y': 'SCANNING'});
manager.services.push(service);
spyOn(stateGraph, 'createGraph');
displayLogSummary(logSummary);
expect(service.graphData.length).toBe(2);
expect(service.graphData[1].x).toBe(10);
expect(service.graphData[1].y).toBe('SCANNING');
});
});