define([
    'jquery',
    'underscore',
    'common/js/spec_helpers/template_helpers',
    'js/student_account/views/InstitutionLoginView',
], function($, _, TemplateHelpers, InstitutionLoginView) {
    'use strict';
    describe('edx.student.account.InstitutionLoginView', function() {

        var view = null,
            PLATFORM_NAME = 'edX',
            THIRD_PARTY_AUTH = {
                currentProvider: null,
                providers: [],
                secondaryProviders: [
                    {
                        id: 'oa2-google-oauth2',
                        name: 'Google',
                        iconClass: 'fa-google-plus',
                        loginUrl: '/auth/login/google-oauth2/?auth_entry=account_login',
                        registerUrl: '/auth/login/google-oauth2/?auth_entry=account_register'
                    },
                    {
                        id: 'oa2-facebook',
                        name: 'Facebook',
                        iconClass: 'fa-facebook',
                        loginUrl: '/auth/login/facebook/?auth_entry=account_login',
                        registerUrl: '/auth/login/facebook/?auth_entry=account_register'
                    }
                ]
            };

        var createInstLoginView = function(mode) {
            // Initialize the login view
            view = new InstitutionLoginView({
                mode: mode,
                thirdPartyAuth: THIRD_PARTY_AUTH,
                platformName: PLATFORM_NAME
            });
            view.render();
        };

        beforeEach(function() {
            setFixtures('<div id="institution_login-form"></div>');
            TemplateHelpers.installTemplate('templates/student_account/institution_login');
            TemplateHelpers.installTemplate('templates/student_account/institution_register');
        });

        it('displays a list of providers', function() {
            createInstLoginView('login');
            expect($('#institution_login-form').html()).not.toBe("");
            var $google = $('li a:contains("Google")');
            expect($google).toBeVisible();
            expect($google).toHaveAttr(
                'href', '/auth/login/google-oauth2/?auth_entry=account_login'
            );
            var $facebook = $('li a:contains("Facebook")');
            expect($facebook).toBeVisible();
            expect($facebook).toHaveAttr(
                'href', '/auth/login/facebook/?auth_entry=account_login'
            );
        });

        it('displays a list of providers', function() {
            createInstLoginView('register');
            expect($('#institution_login-form').html()).not.toBe("");
            var $google = $('li a:contains("Google")');
            expect($google).toBeVisible();
            expect($google).toHaveAttr(
                'href', '/auth/login/google-oauth2/?auth_entry=account_register'
            );
            var $facebook = $('li a:contains("Facebook")');
            expect($facebook).toBeVisible();
            expect($facebook).toHaveAttr(
                'href', '/auth/login/facebook/?auth_entry=account_register'
            );
        });

    });
});
