/*globals define*/
/*jslint nomen:true*/
define([
'jquery',
'testsuite/qunit',
'de_epages/shop/linkpicker/linktextview',
'$ready!'
/**
* linkpicker test case: additionalpagesview
* @param {[type]} QUnit [description]
* @param {[type]} $ [description]
* @param {[type]} Linkpicker [description]
* @return {[type]} [description]
*/
], function ($, QUnit, Linktextview) {
'use strict';
var container = $('#qunit-fixture'),
data = {},
linktextview = new Linktextview(),
view = linktextview.render().$el;
QUnit.module("de_epages/shop/linkpicker/linktextview");
QUnit.test("Linkpicker-linktextview Prototype", function () {
$.each([
'render',
'getLinkText',
'setLinkText',
'setLinkUrl',
'setLinkTarget',
'_openPreview',
'_publishLinkText',
'_publishTargetOption'], function (i, fn) {
QUnit.deepEqual($.isFunction(linktextview[fn]), true, "Check whether " + fn + " is a function: $.isFunction(linktextview.prototype['" + fn + "'] )");
});
});
QUnit.test("Rendered Template and UI", function () {
container.empty().append(view);
QUnit.strictEqual(container.html(), '<div>' + view.html() + '</div>', 'Template is rendered correctly');
linktextview.setLinkText('Test Link 1');
QUnit.strictEqual(container.find('#ep-linkpicker-linkText').val(), 'Test Link 1', 'Link text inserted correctly');
QUnit.strictEqual(linktextview.getLinkText(), 'Test Link 1', 'Link text fetched correctly');
linktextview.setLinkUrl('www.google.de');
QUnit.strictEqual($(container.find('.ep-linkpicker-linkPreview')[0]).attr('title'), 'www.google.de', 'Link url inserted correctly (sprite title)');
QUnit.strictEqual($(container.find('.ep-linkpicker-linkPreview')[1]).attr('title'), 'www.google.de', 'Link url inserted correctly (link title)');
// check if preview is opened with correct url (should run twice since there are two 'linkpreview' elments [icon, label])
linktextview.setLinkTarget(true);
QUnit.strictEqual(container.find('#ep-linkpicker-linkTargetBlank').prop('checked'), true, 'Link target set correctly');
linktextview.on('previewopened', function (_url) {
QUnit.strictEqual(_url, 'http://www.google.de', 'Link url converted correctly (forgotten protocol)');
});
linktextview.linkPreview.trigger('click');
linktextview.off('previewopened');
linktextview.on('previewopened', function (_url) {
QUnit.strictEqual(_url, 'http://www.DemoShop.de/Shop.sf?ViewAction=Foo', 'Link url converted correctly (relative Link)');
});
linktextview.setLinkUrl('?ViewAction=Foo');
linktextview.linkPreview.trigger('click');
linktextview.off('previewopened');
linktextview.on('previewopened', function (_url) {
QUnit.strictEqual(_url, 'http://www.DemoShop.de/WebRoot/image.png', 'Link url converted correctly (file)');
});
linktextview.setLinkUrl('/WebRoot/image.png');
linktextview.linkPreview.trigger('click');
linktextview.off('previewopened');
});
});