132 lines
3.6 KiB
JavaScript
132 lines
3.6 KiB
JavaScript
/* global wp, sinon */
|
|
|
|
jQuery( function() {
|
|
module('Custom Header: ChoiceList', {
|
|
setup: function() {
|
|
wp.customize.HeaderTool.currentHeader = new wp.customize.HeaderTool.ImageModel();
|
|
this.apiStub = sinon.stub(wp.customize, 'get').returns('foo');
|
|
this.choiceList = new wp.customize.HeaderTool.ChoiceList();
|
|
},
|
|
teardown: function() {
|
|
this.apiStub.restore();
|
|
}
|
|
});
|
|
|
|
test('should parse _wpCustomizeHeader.uploads into itself', function() {
|
|
equal(this.choiceList.length, 4);
|
|
});
|
|
|
|
test('should sort by newest first', function() {
|
|
equal(this.choiceList.at(2).get('header').attachment_id, 1);
|
|
equal(this.choiceList.first().get('header').attachment_id, 3);
|
|
});
|
|
|
|
module('Custom Header: DefaultsList', {
|
|
setup: function() {
|
|
wp.customize.HeaderTool.currentHeader = new wp.customize.HeaderTool.ImageModel();
|
|
this.apiStub = sinon.stub(wp.customize, 'get').returns('foo');
|
|
this.choiceList = new wp.customize.HeaderTool.DefaultsList();
|
|
},
|
|
teardown: function() {
|
|
this.apiStub.restore();
|
|
}
|
|
});
|
|
|
|
test('it should parse _wpCustomizeHeader.defaults into itself', function() {
|
|
equal(this.choiceList.length, 4);
|
|
});
|
|
|
|
test('it parses the default image names', function() {
|
|
equal(this.choiceList.first().get('header').defaultName, 'circle');
|
|
equal(this.choiceList.at(2).get('header').defaultName, 'star');
|
|
});
|
|
|
|
module('Custom Header: HeaderImage shouldBeCropped()', {
|
|
setup: function() {
|
|
wp.customize.HeaderTool.currentHeader = new wp.customize.HeaderTool.ImageModel();
|
|
this.model = new wp.customize.HeaderTool.ImageModel();
|
|
this.model.set({
|
|
themeWidth: 1000,
|
|
themeHeight: 200
|
|
});
|
|
}
|
|
});
|
|
|
|
test('should not be cropped when the theme does not support flex width or height and the image has the same dimensions of the theme image', function() {
|
|
this.model.set({
|
|
themeFlexWidth: false,
|
|
themeFlexHeight: false,
|
|
imageWidth: 1000,
|
|
imageHeight: 200
|
|
});
|
|
|
|
equal(this.model.shouldBeCropped(), false);
|
|
});
|
|
|
|
test('should be cropped when the image has the same dimensions of the theme image', function() {
|
|
this.model.set({
|
|
themeFlexWidth: false,
|
|
themeFlexHeight: false,
|
|
imageWidth: 2000,
|
|
imageHeight: 400
|
|
});
|
|
|
|
equal(this.model.shouldBeCropped(), true);
|
|
});
|
|
|
|
test('should not be cropped when the theme only supports flex width and the image has the same height as the theme image', function() {
|
|
this.model.set({
|
|
themeFlexWidth: true,
|
|
themeFlexHeight: false,
|
|
imageWidth: 4000,
|
|
imageHeight: 200
|
|
});
|
|
|
|
equal(this.model.shouldBeCropped(), false);
|
|
});
|
|
|
|
test('should not be cropped when the theme only supports flex height and the image has the same width as the theme image', function() {
|
|
this.model.set({
|
|
themeFlexWidth: false,
|
|
themeFlexHeight: true,
|
|
imageWidth: 1000,
|
|
imageHeight: 600
|
|
});
|
|
|
|
equal(this.model.shouldBeCropped(), false);
|
|
});
|
|
|
|
test('should not be cropped when the theme supports flex height AND width', function() {
|
|
this.model.set({
|
|
themeFlexWidth: true,
|
|
themeFlexHeight: true,
|
|
imageWidth: 10000,
|
|
imageHeight: 8600
|
|
});
|
|
|
|
equal(this.model.shouldBeCropped(), false);
|
|
});
|
|
|
|
test('should not be cropped when the image width is smaller than or equal to theme width', function() {
|
|
this.model.set({
|
|
themeFlexWidth: false,
|
|
themeFlexHeight: false,
|
|
imageWidth: 1000,
|
|
imageHeight: 100
|
|
});
|
|
|
|
equal(this.model.shouldBeCropped(), false);
|
|
});
|
|
|
|
test('should not be cropped when the image width is smaller than or equal to theme width, theme supports flex height and width', function() {
|
|
this.model.set({
|
|
themeFlexWidth: true,
|
|
themeFlexHeight: true,
|
|
imageWidth: 900,
|
|
imageHeight: 100
|
|
});
|
|
|
|
equal(this.model.shouldBeCropped(), false);
|
|
});
|
|
});
|