The second update of the Hyperlink Domain Object with fixed changes

This commit is contained in:
sahajp23 2017-08-03 14:34:43 -07:00
parent a5f6940d67
commit 3e2fd8967a
4 changed files with 90 additions and 74 deletions

View File

@ -57,15 +57,8 @@ define([
"cssClass": "l-input-lg" "cssClass": "l-input-lg"
}, },
{ {
"key": "showTitle",
"control": "checkbox",
"value": false
},{
"key": "displayFormat", "key": "displayFormat",
"name": "Display Format", "name": "Display Format",
"control": "composite",
"items": [
{
"control": "select", "control": "select",
"options": [ "options": [
{ {
@ -78,15 +71,10 @@ define([
} }
], ],
"cssClass": "l-inline" "cssClass": "l-inline"
}
]
}, },
{ {
"key": "openNewTab", "key": "openNewTab",
"name": "Tab to Open Hyperlink", "name": "Tab to Open Hyperlink",
"control": "composite",
"items": [
{
"control": "select", "control": "select",
"options": [ "options": [
{ {
@ -99,13 +87,12 @@ define([
} }
], ],
"cssClass": "l-inline" "cssClass": "l-inline"
}
]
} }
], ],
"model": { "model": {
"displayFormat": ["link"], "displayFormat": "link",
"openNewTab": ["thisTab"], "openNewTab": "thisTab",
"showTitle": false "showTitle": false
} }
@ -115,8 +102,7 @@ define([
{ {
"key": "hyperlink", "key": "hyperlink",
"type": "hyperlink", "type": "hyperlink",
"cssClass": "icon-check", "name": "Hyperlink Display",
"name": "icon",
"template": hyperlinkTemplate, "template": hyperlinkTemplate,
"editable": false "editable": false
} }

View File

@ -24,7 +24,8 @@
<a href="{{domainObject.getModel().url}}" <a href="{{domainObject.getModel().url}}"
ng-attr-target="{{hyperlink.openNewTab() ? '_blank' : undefined}}" ng-attr-target="{{hyperlink.openNewTab() ? '_blank' : undefined}}"
ng-class="{ ng-class="{
's-button': hyperlink.isButton()}"> 's-button': hyperlink.isButton()
}">
{{domainObject.getModel().displayText}} {{domainObject.getModel().displayText}}
</a> </a>
</div> </div>

View File

@ -37,7 +37,7 @@ define(
@returns true if the hyperlink is chosen to open in a different tab, false if the same tab @returns true if the hyperlink is chosen to open in a different tab, false if the same tab
**/ **/
HyperlinkController.prototype.openNewTab = function () { HyperlinkController.prototype.openNewTab = function () {
if (this.$scope.domainObject.getModel().openNewTab[0] === "thisTab") { if (this.$scope.domainObject.getModel().openNewTab === "thisTab") {
return false; return false;
} else { } else {
return true; return true;
@ -47,7 +47,7 @@ define(
@returns true if the hyperlink is chosen to be created as a button, false if a link @returns true if the hyperlink is chosen to be created as a button, false if a link
**/ **/
HyperlinkController.prototype.isButton = function () { HyperlinkController.prototype.isButton = function () {
if (this.$scope.domainObject.getModel().displayFormat[0] === "link") { if (this.$scope.domainObject.getModel().displayFormat === "link") {
return false; return false;
} }
return true; return true;

View File

@ -26,34 +26,63 @@ define(
describe("The controller for hyperlinks", function () { describe("The controller for hyperlinks", function () {
var domainObject, var domainObject,
model,
controller, controller,
link = "http://nasa.gov"; scope;
beforeEach(function () { beforeEach(function () {
scope = jasmine.createSpyObj(
"$scope",
["domainObject"]
);
domainObject = jasmine.createSpyObj( domainObject = jasmine.createSpyObj(
"domainObject", "domainObject",
["getModel"] ["getModel"]
); );
model = jasmine.createSpyObj( scope.domainObject = domainObject;
"getModel", controller = new HyperlinkController(scope);
["link","openNewTab","displayFormat"]
);
domainObject.getModel.link = link;
domainObject.getModel.displayFormat = "button";
domainObject.getModel.openNewTab = "thisTab";
controller = new HyperlinkController();
});
it("opens a specific given link", function () {
expect(domainObject.getModel.link)
.toEqual("http://nasa.gov");
}); });
it("knows when it should open a new tab", function () { it("knows when it should open a new tab", function () {
expect(domainObject.getModel.openNewTab) scope.domainObject.getModel.andReturn({
.toEqual("thisTab"); "displayFormat": "link",
"openNewTab": "newTab",
"showTitle": false
}
);
controller = new HyperlinkController(scope);
expect(controller.openNewTab())
.toBe(true);
}); });
it("knows when it is a button", function () { it("knows when it is a button", function () {
expect(domainObject.getModel.displayFormat) scope.domainObject.getModel.andReturn({
.toEqual("button"); "displayFormat": "button",
"openNewTab": "thisTab",
"showTitle": false
}
);
controller = new HyperlinkController(scope);
expect(controller.isButton())
.toEqual(true);
});
it("knows when it should open in the same tab", function () {
scope.domainObject.getModel.andReturn({
"displayFormat": "link",
"openNewTab": "thisTab",
"showTitle": false
}
);
controller = new HyperlinkController(scope);
expect(controller.openNewTab())
.toBe(false);
});
it("knows when it is a link", function () {
scope.domainObject.getModel.andReturn({
"displayFormat": "link",
"openNewTab": "thisTab",
"showTitle": false
}
);
controller = new HyperlinkController(scope);
expect(controller.openNewTab())
.toBe(false);
}); });
}); });
} }