c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel/**
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * The contents of this file are subject to the terms of the Common Development and
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * Distribution License (the License). You may not use this file except in compliance with the
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * License.
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel *
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * specific language governing permission and limitations under the License.
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel *
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * When distributing Covered Software, include this CDDL Header Notice in each file and include
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * Header, with the fields enclosed by brackets [] replaced by your own identifying
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * information: "Portions copyright [year] [name of copyright owner]".
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel *
90929d4c6b284dd318f4a78c2aa407afb7423747oliver.bradley * Copyright 2014-2015 ForgeRock AS.
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel */
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel/*global require, define, module, $, QUnit, window*/
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feaseldefine([
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel "sinon",
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel "org/forgerock/commons/ui/common/main/Configuration",
332640a088cdafcfbbf498774b017f5f4f438422Jason Browne "org/forgerock/openidm/ui/LoginView",
332640a088cdafcfbbf498774b017f5f4f438422Jason Browne "org/forgerock/openidm/ui/util/delegates/SiteIdentificationDelegate",
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne "./mocks/siteIdentification",
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel "./mocks/adminUserView",
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel "./mocks/oldPassword"
332640a088cdafcfbbf498774b017f5f4f438422Jason Browne], function (sinon, conf, LoginView, siteIdentificationDelegate, siteIdentificationMocks, adminUserViewMock, oldPasswordMock) {
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne return {
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne executeAll: function (server) {
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne module("EndUser UI Functions");
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne QUnit.asyncTest("Site Identification for login screen", function () {
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne siteIdentificationMocks(server);
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne conf.globalData.siteIdentification = true;
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne LoginView.element = $("<div>")[0];
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel delete LoginView.route;
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne LoginView.render([], function () {
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne var siteIdStub = sinon.stub(siteIdentificationDelegate, "getSiteIdentificationForLogin", function (login, callback) {
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne siteIdentificationDelegate.getSiteIdentificationForLogin.restore();
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne siteIdentificationDelegate.getSiteIdentificationForLogin(login, function (data) {
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne callback(data);
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne QUnit.equal(LoginView.$el.find("#siteImage").css('display'), "block", "Site Image displayed");
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne QUnit.equal(LoginView.$el.find("#passPhrase").text(), "human", "Site ID Phrase displayed");
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne QUnit.start();
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne });
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne });
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne LoginView.$el.find("[name=login]").val("openidm-admin").trigger("change");
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel });
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne });
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel QUnit.asyncTest("Change password dialog", function () {
332640a088cdafcfbbf498774b017f5f4f438422Jason Browne var oldPasswordDialog = require("org/forgerock/openidm/ui/profile/EnterOldPasswordDialog");
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel oldPasswordMock(server);
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel oldPasswordDialog.render([], function () {
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel var userDelegate = require("UserDelegate");
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel sinon.stub(userDelegate, "checkCredentials", function (value, successCallback, errorCallback) {
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel if (value === "testpassword") {
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel successCallback();
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel } else {
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel errorCallback("Incorrect");
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel }
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel });
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel oldPasswordDialog.$el.find("input[name=oldPassword]").val("test").trigger("change");
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel QUnit.equal(oldPasswordDialog.$el.find("input[name=oldPassword]").attr('data-validation-status'), 'error', 'Old password field should be disabled following incorrect password value');
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel QUnit.equal(oldPasswordDialog.$el.find("input[type=submit]").prop('disabled'), false, 'Submit button for form should still be enabled after validation failed');
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel oldPasswordDialog.$el.find("input[name=oldPassword]").val("testpassword").trigger("change");
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel QUnit.equal(oldPasswordDialog.$el.find("input[name=oldPassword]").attr('data-validation-status'), 'ok', 'Old password field should be enabled following correct password value');
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel QUnit.start();
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel })
752b76285765ab296a5fcc8f9445f71746968c97Jake Feasel });
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne }
9e96d125a9791698fa1061abff36e6fa38ee2cdcJason Browne };
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel});