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, QUnit, $ */
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feaseldefine([
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel "sinon",
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel "org/forgerock/commons/ui/common/util/Constants",
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel "org/forgerock/commons/ui/common/main/Router",
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel "org/forgerock/commons/ui/common/main/EventManager",
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel "org/forgerock/openidm/ui/common/MandatoryPasswordChangeDialog",
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel "org/forgerock/commons/ui/common/util/ModuleLoader",
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel "org/forgerock/commons/ui/common/LoginView",
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel "./mocks/encryptedPW",
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel "./mocks/cleartextPW"
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel], function (sinon, constants, router, eventManager, mandatoryPasswordChangeDialog, ModuleLoader, loginView, encryptedPW, cleartextPW) {
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel return {
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel executeAll: function (server) {
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel module('Common IDM functionality');
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel QUnit.asyncTest("Login Form", function () {
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel loginView.render([], function () {
352c411653c48af103d64372adc7832043da4257Elizabeth Browne QUnit.ok(loginView.$el.find("#login").length && loginView.$el.find("#password").length, "Username and Password displayed");
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel QUnit.start();
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel });
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel });
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel QUnit.asyncTest("Initial Login Process", function () {
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel var dialogRenderStub = sinon.stub(mandatoryPasswordChangeDialog, "render", function (args, callback) {
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel mandatoryPasswordChangeDialog.render.restore();
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel mandatoryPasswordChangeDialog.render(args, function () {
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel QUnit.ok(true, "Mandatory password change dialog displayed when cleartext password used");
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel QUnit.equal(mandatoryPasswordChangeDialog.$el.find(".validationRules > .field-rule").length, 4, "Four validation rules for password displayed");
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel if (callback) {
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel callback();
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel }
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel QUnit.start();
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel });
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel });
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel cleartextPW(server);
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel eventManager.sendEvent(constants.EVENT_LOGIN_REQUEST, { userName: "openidm-admin", password: "openidm-admin" });
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel });
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel QUnit.asyncTest("Subsequent Login Process", function () {
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel ModuleLoader.load(router.configuration.routes.landingPage.view).then(function (landingPageView) {
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel sinon.stub(landingPageView, "render", function (args, callback) {
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel landingPageView.render.restore();
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel landingPageView.render(args, function () {
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel var viewManager = require("org/forgerock/commons/ui/common/main/ViewManager");
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel QUnit.ok(viewManager.currentView === router.configuration.routes.landingPage.view && viewManager.currentDialog === null, "Landing page shown after successful login with encrypted password");
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel if (callback) {
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel callback();
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel }
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel QUnit.start();
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel });
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel });
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel encryptedPW(server);
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel eventManager.sendEvent(constants.EVENT_LOGIN_REQUEST, { userName: "openidm-admin", password: "Passw0rd" });
d1e25a21be0403ed5f4ea45f589a3956592befd9Jake Feasel });
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel });
e217869edbae075c18fd85c2d468a7ce9050b3b3Jake Feasel
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel }
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel };
c54f5c9f018cfaf6792ae351d3f0be15efdd175eJake Feasel
0e2f85c75c270eec9d148bab17911441d8843a2aJake Feasel});