logger-filesystem.test.js 3.55 KB
/*
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2016 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */

/* eslint max-nested-callbacks: [2, 10]*/
/* eslint no-new: 0 */

/* globals describe */
define([
    'screens/player/firmware/log/impl/logger-filesystem',
    'screens/player/log/logger'
], function(LoggerService, Logger) {
    'use strict';

    describe('screens/player/firmware/log/impl/logger-filesystem', function() {

        // The service cannot be activated in a non browser environment
        // Integration tests will be necessary

        /*
        describe('activate()', function() {

            it('must not start if file system is not available', function(done) {
                // backup objects
                var rfs = window.requestFileSystem;
                var wrfs = window.webkitRequestFileSystem;

                window.requestFileSystem = window.webkitRequestFileSystem = null;

                var restoreFn = function() {
                    window.requestFileSystem = rfs;
                    window.webkitRequestFileSystem = wrfs;
                };

                LoggerService.activate()
                    .then(function() {
                        restoreFn();
                        throw Error('Logger should not be able to start.');
                    }, function() {
                        restoreFn();
                        done();
                    });
            });

            it('must request quota in non-cordova environment', function(done) {
                // backup objects
                var spy = sinon.spy();
                var sinfo = (window.storageInfo || window.webkitStorageInfo);
                var reqQuota = sinfo.requestQuota;

                sinfo.requestQuota = spy;

                var restoreFn = function() {
                    sinfo.requestQuota = reqQuota;
                };

                var verify = function() {
                    restoreFn();
                    expect(spy.calledOnce).to.be.true;
                    done();
                };

                // service might fail initialising
                // due to unavailability of file system
                // still the quota should be requested in any case
                LoggerService.activate()
                    .then(verify, verify);
            });

        });

        // service cannot be activated
        describe('API', function() {

            beforeEach(function(done) {
                LoggerService.activate().then(function() {
                    done();
                });
            });

            afterEach(function(done) {
                LoggerService.deactivate().then(function() {
                    done();
                });
            });

            it('getWriter()', function() {
                var writer = LoggerService.getWriter();

                expect(writer instanceof Logger).to.be.true;
            });

            it('listLogs()', function() {
                var files = LoggerService.listLogs();

                expect(Array.isArray(files)).to.be.true;
            });
        });*/
    });
});