it('can be unset at runtime', function () {
      auth.delegate({
        login: function () {}
      });

      var collection = new MockCollection();
      var wall = buildWall({
        collection: collection, // may not always work
        postButton: true
      }, collection);
      wall._hasReceivedTranslations = true;
      wall.configure({forceReconstruct: true});
      expect(wall.$el.find('menu').children().length).toBe(1);
            // ok now to remove it by specifying false
      wall.configure({
        postButton: false
      });
      expect(wall.$el.find('menu').children().length).toBe(0);
            // restore
      wall.configure({
        postButton: true
      });
      expect(wall.$el.find('menu').children().length).toBe(1);
            // ok now to remove it by specifying undefined
      wall.configure({
        postButton: undefined
      });
      expect(wall.$el.find('menu').children().length).toBe(0);
      wall.destroy();
    });
Example #2
0
        it('invokes old delegate loginByCookie correctly', function() {
            var loginByCookieSpy = sinon.spy(oldDelegate, 'loginByCookie');
            var newDelegate = authAdapters.oldToNew(oldDelegate);
            auth.delegate(newDelegate);

            expect(loginByCookieSpy).to.be.calledOnce;
            expect(loginByCookieSpy.getCall(0).args.length).to.equal(1);
        });
Example #3
0
        it('invokes old delegate logout method correcly', function() {
            var logoutSpy = sinon.spy(oldDelegate, 'logout');
            var newDelegate = authAdapters.oldToNew(oldDelegate);
            auth.delegate(newDelegate);

            auth.logout();
            expect(logoutSpy).to.be.calledOnce;
        });
Example #4
0
        it('invokes old delegate logout callback correcly', function() {
            var onceSpy = sinon.spy(window.Livefyre.user, 'once');
            var newDelegate = authAdapters.oldToNew(betaDelegate);
            auth.delegate(newDelegate);

            auth.logout();
            expect(onceSpy).to.be.calledOnce;
            expect(onceSpy.calledWith('logout')).to.be.true;
        });
Example #5
0
        it('invokes old delegate login method correcly', function() {
            var newDelegate = authAdapters.oldToNew(betaDelegate);
            auth.delegate(newDelegate);
            var loginSpy = sinon.spy(betaDelegate, 'login');

            auth.login();
            expect(loginSpy).to.be.calledOnce;
            loginSpy.restore();
        });
Example #6
0
        it('binds to old delegate user token changes', function() {
            var fyreOnSpy = sinon.spy(window.fyre.conv.user, 'on');
            var fyreOffSpy = sinon.spy(window.fyre.conv.user, 'off');
            var newDelegate = authAdapters.oldToNew(oldDelegate);
            auth.delegate(newDelegate);

            expect(fyreOnSpy).to.be.calledOnce;
            expect(fyreOnSpy.getCall(0).args[0]).to.equal('change:token');
            fyreOnSpy.restore();
            fyreOffSpy.restore();
        });
Example #7
0
        it('invokes old delegate login method correcly', function() {
            var loginSpy = sinon.spy(oldDelegate, 'login');
            var newDelegate = authAdapters.oldToNew(oldDelegate);
            auth.delegate(newDelegate);

            auth.login();
            expect(loginSpy).to.be.calledOnce;
            expect(loginSpy.getCall(0).args.length).to.equal(1);
            expect(loginSpy.getCall(0).args[0].success).to.be.a('function');
            expect(loginSpy.getCall(0).args[0].failure).to.be.a('function');
        });
Example #8
0
        it('invokes old delegate editProfile correctly', function() {
            var editProfileSpy = sinon.spy(oldDelegate, 'editProfile');
            var newDelegate = authAdapters.oldToNew(oldDelegate);
            auth.delegate(newDelegate);

            auth.editProfile(123);
            expect(editProfileSpy).to.be.calledOnce;
            expect(editProfileSpy.getCall(0).args.length).to.equal(2);
            expect(editProfileSpy.getCall(0).args[0].success).to.be.a('function');
            expect(editProfileSpy.getCall(0).args[0].failure).to.be.a('function');
            expect(editProfileSpy.getCall(0).args[1]).to.equal(123);
        });
        beforeEach(function () {
            // Auth mock user
            mockUserFactory = new MockUserFactory();
            user = mockUserFactory.createUser();

            cmdSpy = jasmine.createSpy('command function');
            cmd = new Command(cmdSpy);
            authReqCmd = new AuthRequiredCommand(cmd);
            
            observer = jasmine.createSpy('change:canExecute');
            authReqCmd.on('change:canExecute', observer);

            auth.delegate({
                login: function () {}
            });
            auth.delegate({
                login: function () {},
                logout: function (loggedOut) {
                    loggedOut();
                }
            });
        });
Example #10
0
 it('is present if there is an auth login delegate and collection and opts.postButton is truthy', function () {
     auth.delegate({
         login: function () {}
     });
     var fakeCollection = {
         pipe: function () {}
     };
     var wall = new WallComponent({
         collection: fakeCollection, // may not always work
         postButton: true
     });
     wall.render();
     expect(wall.$('menu').children().length).toBe(1);
 });
Example #11
0
        it('authenticates with the correct collection and auth endpoint, with env', function() {
            var cb;
            window.fyre.conv.user.on = function (ev, callback) {
                cb = callback;
            };
            var newDelegate = authAdapters.oldToNew(oldDelegate, 123, 456, 'test.fyre.co', 'qa.fyre.co');
            auth.delegate(newDelegate);
            var remoteLoginSpy = sinon.spy(auth, 'login');
            cb({}, 'tokenator');

            expect(remoteLoginSpy).to.be.calledOnce;

            remoteLoginSpy.restore();
        });
    it('is present if there is an auth login delegate and collection and opts.postButton is truthy', function () {
      auth.delegate({
        login: function () {}
      });

      var collection = new MockCollection();
      var wall = buildWall({
        collection: collection, // may not always work
        postButton: true
      }, collection);
      wall.render();
      expect(wall.$el.find('menu').children().length).toBe(1);
      wall.destroy();
    });
Example #13
0
        it('authenticates with the correct collection and auth endpoint', function(done) {
            var cb;
            window.Livefyre.user.once = function (ev, callback) {
                cb = callback;
            };
            var newDelegate = authAdapters.oldToNew(betaDelegate, 123, 456);
            auth.delegate(newDelegate);
            var remoteLoginSpy = sinon.spy(auth, 'login');
            auth.login(function() {
                done();
            });
            cb(mockAuthResponse);

            remoteLoginSpy.restore();
        });
    it('can be translated', function () {
      auth.delegate({
        login: function () {}
      });

      var collection = new MockCollection();
      var translation = 'What up!';
      var wall = buildWall({
        collection: collection, // may not always work
        postButton: 'content',
        postButtonText: translation
      }, collection);
      spyOn(wall, 'canRender').and.returnValue(true);
      wall.configure({forceReconstruct: true});
      expect(wall.$el.find('.lf-comment-btn').html()).toBe(translation);
      wall.destroy();
    });
Example #15
0
        it('handles old delegate user token changes', function() {
            var cb;
            window.fyre.conv.user.on = function (ev, callback) {
                cb = callback;
            };
            var newDelegate = authAdapters.oldToNew(oldDelegate, 123, 456, 'test.fyre.co');
            auth.delegate(newDelegate);
            var remoteLoginSpy = sinon.spy(auth, 'login');
            cb({}, 'tokenator');

            expect(remoteLoginSpy).to.be.calledOnce;

            var logoutSpy = sinon.spy(auth, 'logout');
            cb(null);

            expect(logoutSpy).to.be.calledOnce;
            remoteLoginSpy.restore();
            logoutSpy.restore();
        });
 it('can be set as one of content, photo, or contentWithPhoto', function () {
   auth.delegate({
     login: function () {}
   });
   var trials = [{
     postButton: 'content',
     buttonHasClass: 'lf-comment-btn'
   },{
     postButton: 'photo',
     buttonHasClass: 'lf-hub-upload-btn'
   },{
     postButton: 'contentWithPhoto',
     buttonHasClass: 'lf-comment-btn'
   }];
         // try on construction
   trials.forEach(function (trial) {
     var collection = new MockCollection();
     var wall = buildWall({
       collection: collection, // may not always work
       postButton: trial.postButton
     }, collection);
     wall._hasReceivedTranslations = true;
     wall.configure({forceReconstruct: true});
     expect(wall.$el.find('menu').children().length).toBe(1);
     expect(wall.$el.find('menu').children().hasClass(trial.buttonHasClass)).toBe(true);
     wall.destroy();
   });
         // try changing at runtime
   trials.forEach(function (trial) {
     var collection = new MockCollection();
     var wall = buildWall({
       collection: collection
     }, collection);
     wall._hasReceivedTranslations = true;
     wall.configure({forceReconstruct: true});
     wall.configure({
       postButton: trial.postButton
     });
     expect(wall.$el.find('menu').children().length).toBe(1);
     expect(wall.$el.find('menu').children().hasClass(trial.buttonHasClass)).toBe(true);
     wall.destroy();
   });
 });
Example #17
0
 beforeEach(function () {
     auth.delegate({});
 });
Example #18
0
var log = require('debug')('livefyre-sso-auth-demo');
var createAuthButton = require('auth/contrib/auth-button');
var createAuthLog = require('auth/contrib/auth-log');

function singleTokenLogin(token) {
    var singleTokenLoginDelegate = {
        login: function (authenticate) {
            authenticate(null, {
                livefyre: token
            });
        }
    };
    return singleTokenLoginDelegate;
}

var labsToken = 'eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9.eyJkb21haW4iOiAibGFicy5meXJlLmNvIiwgImV4cGlyZXMiOiAxMzk5MTk1MTYwLjE1NTc2MSwgInVzZXJfaWQiOiAiY29tbWVudGVyXzAifQ.N77QlLeF-Z6MMJhospdwpPpZH4HCfaf20fIPhL7GdOY';

var delegate = window.delegate = singleTokenLogin(labsToken);

auth.delegate(delegate);

auth.on('login.livefyre', function (livefyreUser) {
    log("User was logged into Livefyre", livefyreUser);
});

window.token = labsToken;
window.auth = auth;

var authLog = createAuthLog(auth, document.getElementById('auth-log'));
createAuthButton(auth, document.getElementById('auth-button'), authLog);