| // 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'); |
| }); |
| |
| }); |