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

View File

@ -24,7 +24,8 @@
<a href="{{domainObject.getModel().url}}"
ng-attr-target="{{hyperlink.openNewTab() ? '_blank' : undefined}}"
ng-class="{
's-button': hyperlink.isButton()}">
's-button': hyperlink.isButton()
}">
{{domainObject.getModel().displayText}}
</a>
</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
**/
HyperlinkController.prototype.openNewTab = function () {
if (this.$scope.domainObject.getModel().openNewTab[0] === "thisTab") {
if (this.$scope.domainObject.getModel().openNewTab === "thisTab") {
return false;
} else {
return true;
@ -47,7 +47,7 @@ define(
@returns true if the hyperlink is chosen to be created as a button, false if a link
**/
HyperlinkController.prototype.isButton = function () {
if (this.$scope.domainObject.getModel().displayFormat[0] === "link") {
if (this.$scope.domainObject.getModel().displayFormat === "link") {
return false;
}
return true;

View File

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