mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
144 lines
5.2 KiB
JavaScript
144 lines
5.2 KiB
JavaScript
describe('$ionicConfigProvider', function() {
|
|
|
|
it('should allow setting', function() {
|
|
module('ionic', function($ionicConfigProvider) {
|
|
$ionicConfigProvider.templates.maxPrefetch(0);
|
|
expect($ionicConfigProvider.templates.maxPrefetch()).toBe(0);
|
|
});
|
|
inject(function($ionicConfig) {
|
|
expect($ionicConfig.templates.maxPrefetch()).toBe(0);
|
|
});
|
|
});
|
|
|
|
it('should get/set exact value for all platforms', function() {
|
|
module('ionic', function($ionicConfigProvider) {
|
|
$ionicConfigProvider.views.transition('my-transition');
|
|
expect($ionicConfigProvider.views.transition()).toBe('my-transition');
|
|
});
|
|
inject(function($ionicConfig) {
|
|
expect($ionicConfig.views.transition()).toBe('my-transition');
|
|
});
|
|
});
|
|
|
|
it('should get default value for unknown platform', function() {
|
|
module('ionic', function($ionicConfigProvider) {});
|
|
inject(function($ionicConfig) {
|
|
ionic.Platform.setPlatform('whatever');
|
|
expect($ionicConfig.views.transition()).toBe('ios');
|
|
});
|
|
});
|
|
|
|
it('should get default value for ios platform', function() {
|
|
module('ionic', function($ionicConfigProvider) {});
|
|
inject(function($ionicConfig) {
|
|
ionic.Platform.setPlatform('ios');
|
|
expect($ionicConfig.views.transition()).toBe('ios');
|
|
});
|
|
});
|
|
|
|
it('should get default value for android platform', function() {
|
|
module('ionic', function($ionicConfigProvider) {});
|
|
inject(function($ionicConfig) {
|
|
ionic.Platform.setPlatform('android');
|
|
expect($ionicConfig.views.transition()).toBe('android');
|
|
});
|
|
});
|
|
|
|
it('should set default platform value for android platform', function() {
|
|
module('ionic', function($ionicConfigProvider) {});
|
|
inject(function($ionicConfig) {
|
|
ionic.Platform.setPlatform('android');
|
|
expect($ionicConfig.views.transition()).toBe('android');
|
|
|
|
$ionicConfig.platform.android.views.transition('android-whatnot');
|
|
|
|
ionic.Platform.setPlatform('ios');
|
|
expect($ionicConfig.views.transition()).toBe('ios');
|
|
|
|
ionic.Platform.setPlatform('android');
|
|
expect($ionicConfig.views.transition()).toBe('android-whatnot');
|
|
});
|
|
});
|
|
|
|
it('should set default platform value for ios platform', function() {
|
|
module('ionic', function($ionicConfigProvider) {
|
|
$ionicConfigProvider.platform.android.views.transition('custom-transition');
|
|
});
|
|
inject(function($ionicConfig) {
|
|
ionic.Platform.setPlatform('ios');
|
|
expect($ionicConfig.views.transition()).toBe('ios');
|
|
|
|
$ionicConfig.platform.ios.views.transition('ios-whatnot');
|
|
|
|
ionic.Platform.setPlatform('android');
|
|
expect($ionicConfig.views.transition()).toBe('custom-transition');
|
|
|
|
ionic.Platform.setPlatform('ios');
|
|
expect($ionicConfig.views.transition()).toBe('ios-whatnot');
|
|
});
|
|
});
|
|
|
|
it('should set a new platform', function() {
|
|
module('ionic', function($ionicConfigProvider) {
|
|
$ionicConfigProvider.setPlatformConfig('win32', {
|
|
views: {
|
|
transition: 'win32-transition'
|
|
},
|
|
navBar: {
|
|
alignTitle: 'right',
|
|
positionPrimaryButtons: 'left',
|
|
positionSecondaryButtons: 'left'
|
|
},
|
|
backButton: {
|
|
icon: 'ion-win32-arrow-back'
|
|
}
|
|
});
|
|
});
|
|
inject(function($ionicConfig) {
|
|
expect($ionicConfig.views.transition()).toBe('ios');
|
|
expect($ionicConfig.navBar.alignTitle()).toBe('center');
|
|
|
|
ionic.Platform.setPlatform('win32');
|
|
expect($ionicConfig.views.transition()).toBe('win32-transition');
|
|
expect($ionicConfig.navBar.alignTitle()).toBe('right');
|
|
expect($ionicConfig.navBar.positionPrimaryButtons()).toBe('left');
|
|
expect($ionicConfig.navBar.positionSecondaryButtons()).toBe('left');
|
|
expect($ionicConfig.backButton.icon()).toBe('ion-win32-arrow-back');
|
|
|
|
$ionicConfig.platform.win32.views.transition('winwin-transition');
|
|
expect($ionicConfig.views.transition()).toBe('winwin-transition');
|
|
});
|
|
});
|
|
|
|
it('should set a new default in the default platform', function() {
|
|
module('ionic', function($ionicConfigProvider) {
|
|
$ionicConfigProvider.platform.default.views.transition('new-default');
|
|
$ionicConfigProvider.platform.ios.views.transition('new-ios');
|
|
$ionicConfigProvider.platform.android.views.transition('new-android');
|
|
});
|
|
inject(function($ionicConfig) {
|
|
expect($ionicConfig.views.transition()).toBe('new-default');
|
|
|
|
ionic.Platform.setPlatform('ios');
|
|
expect($ionicConfig.views.transition()).toBe('new-ios');
|
|
|
|
ionic.Platform.setPlatform('android');
|
|
expect($ionicConfig.views.transition()).toBe('new-android');
|
|
});
|
|
});
|
|
|
|
it('should set defaults by chaining', function() {
|
|
module('ionic', function($ionicConfigProvider) {
|
|
$ionicConfigProvider.navBar.alignTitle('right')
|
|
.positionPrimaryButtons('right')
|
|
.positionSecondaryButtons('left');
|
|
});
|
|
inject(function($ionicConfig) {
|
|
expect($ionicConfig.navBar.alignTitle()).toBe('right');
|
|
expect($ionicConfig.navBar.positionPrimaryButtons()).toBe('right');
|
|
expect($ionicConfig.navBar.positionSecondaryButtons()).toBe('left');
|
|
});
|
|
});
|
|
|
|
});
|