From 308b3b4e1fc1790a4299b5106c66729842584f6f Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Tue, 8 Jul 2014 12:25:03 +0600 Subject: [PATCH] CasperJS tests improvements. Drop karma. --- sonar-server/Gruntfile.coffee | 11 +- sonar-server/karma.conf.js | 126 ------------------ .../coffee/tests/common/inputsSpec.coffee | 87 ------------ .../main/coffee/tests/translateSpec.coffee | 75 ----------- .../main/coffee/tests/widgets/BaseSpec.coffee | 47 ------- .../js/tests/e2e/pages/quality-gates.html | 2 +- ...quality-gates.js => quality-gates-spec.js} | 0 sonar-server/src/main/js/tests/main.js | 44 ------ .../navigator/filters/BaseFilterViewSpec.js | 15 --- .../navigator/filters/ChoiceFilterViewSpec.js | 39 ------ sonar-server/src/main/js/translate.js | 10 +- 11 files changed, 10 insertions(+), 446 deletions(-) delete mode 100644 sonar-server/karma.conf.js delete mode 100644 sonar-server/src/main/coffee/tests/common/inputsSpec.coffee delete mode 100644 sonar-server/src/main/coffee/tests/translateSpec.coffee delete mode 100644 sonar-server/src/main/coffee/tests/widgets/BaseSpec.coffee rename sonar-server/src/main/js/tests/e2e/tests/{quality-gates.js => quality-gates-spec.js} (100%) delete mode 100644 sonar-server/src/main/js/tests/main.js delete mode 100644 sonar-server/src/main/js/tests/navigator/filters/BaseFilterViewSpec.js delete mode 100644 sonar-server/src/main/js/tests/navigator/filters/ChoiceFilterViewSpec.js diff --git a/sonar-server/Gruntfile.coffee b/sonar-server/Gruntfile.coffee index e49048f7eff..244db1952ad 100644 --- a/sonar-server/Gruntfile.coffee +++ b/sonar-server/Gruntfile.coffee @@ -253,13 +253,6 @@ module.exports = (grunt) -> src: '<%= pkg.sources %>js/require.js', dest: '<%= pkg.assets %>js/require.js' - karma: - unit: - configFile: 'karma.conf.js' - singleRun: true - logLevel: 'DEBUG' - - express: dev: options: @@ -271,7 +264,7 @@ module.exports = (grunt) -> options: test: true 'no-colors': true - src: ['<%= pkg.sources %>js/tests/e2e/tests/**/*.js'] + src: ['<%= pkg.sources %>js/tests/**/*-spec.js'] watch: @@ -322,4 +315,4 @@ module.exports = (grunt) -> 'concat:build', 'requirejs', 'clean:js', 'copy:build', 'copy:requirejs', 'clean:build'] - grunt.registerTask 'test', ['coffee:build', 'handlebars:build', 'copy:js', 'concat:dev', 'karma:unit', 'express', 'casper'] + grunt.registerTask 'test', ['coffee:build', 'handlebars:build', 'copy:js', 'concat:dev', 'express', 'casper'] diff --git a/sonar-server/karma.conf.js b/sonar-server/karma.conf.js deleted file mode 100644 index 037950ad1c1..00000000000 --- a/sonar-server/karma.conf.js +++ /dev/null @@ -1,126 +0,0 @@ -/* global module:false, karma:false */ - -// Karma configuration for JS application - -// GLOBAL INSTALLATION -// sonar-server$ npm install -g -// sonar-server$ karma start - -// LOCAL INSTALLATION -// sonar-server$ npm install -// sonar-server$ ./node_modules/.bin/karma start - -module.exports = function(config) { - config.set({ - - // base path, that will be used to resolve files and exclude - basePath: 'src/main/webapp/js', - - - // frameworks to use - frameworks: ['jasmine'], - - - // list of files / patterns to load in the browser - files: [ - // dependencies - 'third-party/jquery.js', - 'third-party/underscore.js', - 'require.js', - 'translate.js', - 'common/inputs.js', - 'widgets/base.js', - - // libs - { pattern: 'third-party/**/*.js', included: false }, - - // common - { pattern: 'common/**/*.js', included: false }, - - // app - { pattern: 'navigator/**/*.js', included: false }, - { pattern: 'quality-gate/**/*.js', included: false }, - - // tests - { pattern: 'tests/**/*Spec.js', included: false }, - - 'tests/main.js' - ], - - - // list of files to exclude - exclude: [ - - ], - - - preprocessors: { - 'navigator/**/*.js': 'coverage', - 'common/inputs.js': 'coverage', - 'translate.js': 'coverage' - }, - - - plugins: [ - 'karma-jasmine', - 'karma-phantomjs-launcher', - 'karma-coverage', - 'karma-junit-reporter' - ], - - - // test results reporter to use - reporters: ['progress', 'coverage', 'junit'], - - - coverageReporter: { - type : 'lcovonly', - dir : '../../../../target/karma/coverage/' - }, - - junitReporter: { - outputFile : '../../../../target/karma/test-results.xml' - }, - - // WARNING - the 2 following ports should not be hardcoded in CI environments - // web server port - port: 9876, - - - // cli runner port - runnerPort: 9100, - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - - // level of logging - // possible values: karma.LOG_DISABLE || karma.LOG_ERROR || karma.LOG_WARN || karma.LOG_INFO || karma.LOG_DEBUG - logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: false, - - - // Start these browsers, currently available: - // - Chrome - // - ChromeCanary - // - Firefox - // - Opera - // - Safari (only Mac) - // - PhantomJS - // - IE (only Windows) - browsers: ['PhantomJS'], - - - // If browser does not capture in given timeout [ms], kill it - captureTimeout: 60000, - - - // Continuous Integration mode - // if true, it capture browsers, run tests and exit - singleRun: false - }); -}; diff --git a/sonar-server/src/main/coffee/tests/common/inputsSpec.coffee b/sonar-server/src/main/coffee/tests/common/inputsSpec.coffee deleted file mode 100644 index 3cbc6591925..00000000000 --- a/sonar-server/src/main/coffee/tests/common/inputsSpec.coffee +++ /dev/null @@ -1,87 +0,0 @@ -$ = jQuery - -describe 'WORK_DUR suite', -> - - beforeEach -> - window.SS = {} - window.SS.phrases = - 'work_duration': - 'x_days': '{0}d', 'x_hours': '{0}h', 'x_minutes': '{0}min' - - @input = $('') - @input.appendTo $('body') - @input.data 'type', 'WORK_DUR' - - - it 'converts', -> - @input.originalVal '2d 7h 13min' - expect(@input.val()).toBe 1393 - - it 'converts only days', -> - @input.originalVal '1d' - expect(@input.val()).toBe 480 - - it 'converts hours with minutes', -> - @input.originalVal '2h 30min' - expect(@input.val()).toBe 150 - - it 'converts zero', -> - @input.originalVal '0' - expect(@input.val()).toBe 0 - - - it 'restores', -> - @input.val 1393 - expect(@input.originalVal()).toBe '2d 7h 13min' - - it 'restores zero', -> - @input.val '0' - expect(@input.originalVal()).toBe '0' - - - it 'returns initially incorrect value', -> - @input.val 'something' - expect(@input.val()).toBe 'something' - - -describe 'RATING suite', -> - - beforeEach -> - @input = $('') - @input.appendTo $('body') - @input.data 'type', 'RATING' - - - it 'converts A', -> - @input.originalVal 'A' - expect(@input.val()).toBe 1 - - - it 'converts B', -> - @input.originalVal 'B' - expect(@input.val()).toBe 2 - - - it 'converts E', -> - @input.originalVal 'E' - expect(@input.val()).toBe 5 - - - it 'does not convert F', -> - @input.originalVal 'F' - expect(@input.val()).toBe 'F' - - - it 'restores A', -> - @input.val 1 - expect(@input.originalVal()).toBe 'A' - - - it 'restores E', -> - @input.val 5 - expect(@input.originalVal()).toBe 'E' - - - it 'returns initially incorrect value', -> - @input.val 'something' - expect(@input.val()).toBe 'something' diff --git a/sonar-server/src/main/coffee/tests/translateSpec.coffee b/sonar-server/src/main/coffee/tests/translateSpec.coffee deleted file mode 100644 index 7b4576bcfff..00000000000 --- a/sonar-server/src/main/coffee/tests/translateSpec.coffee +++ /dev/null @@ -1,75 +0,0 @@ -$ = jQuery - -describe 'translation "t" suite', -> - - beforeEach -> - window.messages = - 'something': 'SOMETHING' - 'something_with_underscore': 'SOMETHING_WITH_UNDERSCORE' - 'something_with{braces}': 'SOMETHING_WITH{braces}' - - window.SS = - phrases: - 'something': 'SOMETHING ANOTHER' - - - afterEach -> - window.messages = window.SS = undefined - - - it 'translates', -> - expect(t('something')).toBe 'SOMETHING' - - - it 'translates with underscore', -> - expect(t('something_with_underscore')).toBe 'SOMETHING_WITH_UNDERSCORE' - - - it 'translates with braces', -> - expect(t('something_with{braces}')).toBe 'SOMETHING_WITH{braces}' - - - it 'fallbacks to "translate"', -> - window.messages = undefined - expect(t('something')).toBe 'SOMETHING ANOTHER' - - - it 'returns the key when no translation', -> - expect(t('something_another')).toBe 'something_another' - - - -describe 'translation "translate" suite', -> - - beforeEach -> - window.SS = - phrases: - 'something': 'SOMETHING' - 'something_with_underscore': 'SOMETHING_WITH_UNDERSCORE' - 'something_with{braces}': 'SOMETHING_WITH{braces}' - - - afterEach -> - window.messages = window.SS = undefined - - - it 'translates', -> - expect(translate('something')).toBe 'SOMETHING' - - - it 'translates with underscore', -> - expect(translate('something_with_underscore')).toBe 'SOMETHING_WITH_UNDERSCORE' - - - it 'translates with braces', -> - expect(translate('something_with{braces}')).toBe 'SOMETHING_WITH{braces}' - - - it 'returns the key when no translation', -> - expect(translate('something_another')).toBe 'something_another' - - - it 'does not fail when there is no dictionary', -> - window.SS = undefined - expect(translate('something_another')).toBe 'something_another' - diff --git a/sonar-server/src/main/coffee/tests/widgets/BaseSpec.coffee b/sonar-server/src/main/coffee/tests/widgets/BaseSpec.coffee deleted file mode 100644 index 797acf75588..00000000000 --- a/sonar-server/src/main/coffee/tests/widgets/BaseSpec.coffee +++ /dev/null @@ -1,47 +0,0 @@ -$ = jQuery - -describe 'base widget suite', -> - - it 'exists', -> - expect(window.SonarWidgets).toBeDefined() - expect(window.SonarWidgets.BaseWidget).toBeDefined() - - - it 'adds fields', -> - widget = new window.SonarWidgets.BaseWidget() - widget.addField 'fieldName', 1 - - expect(typeof widget.fieldName).toBe 'function' - expect(widget.fieldName()).toBe 1 - - expect(widget.fieldName(2)).toBe widget - expect(widget.fieldName()).toBe 2 - - - it 'adds metrics', -> - widget = new window.SonarWidgets.BaseWidget() - widget.addField 'metrics', 'metricA': { name: 'Metric A', someField: 2 } - widget.addField 'metricsPriority', ['metricA'] - widget.addMetric 'myMetric', 0 - - expect(widget.myMetric).toBeDefined() - expect(widget.myMetric.key).toBe 'metricA' - expect(widget.myMetric.name).toBe 'Metric A' - expect(widget.myMetric.someField).toBe 2 - expect(typeof widget.myMetric.value).toBe 'function' - expect(typeof widget.myMetric.formattedValue).toBe 'function' - - - it 'has default properties', -> - widget = new window.SonarWidgets.BaseWidget() - - expect(widget.components).toBeDefined() - expect(widget.metrics).toBeDefined() - expect(widget.metricsPriority).toBeDefined() - expect(widget.options).toBeDefined() - - - it 'created "translate" string', -> - widget = new window.SonarWidgets.BaseWidget() - - expect(widget.trans(1, 2)).toBe 'translate(1,2)' \ No newline at end of file diff --git a/sonar-server/src/main/js/tests/e2e/pages/quality-gates.html b/sonar-server/src/main/js/tests/e2e/pages/quality-gates.html index c4152e98755..c2eaba8d13e 100644 --- a/sonar-server/src/main/js/tests/e2e/pages/quality-gates.html +++ b/sonar-server/src/main/js/tests/e2e/pages/quality-gates.html @@ -9,9 +9,9 @@ diff --git a/sonar-server/src/main/js/tests/e2e/tests/quality-gates.js b/sonar-server/src/main/js/tests/e2e/tests/quality-gates-spec.js similarity index 100% rename from sonar-server/src/main/js/tests/e2e/tests/quality-gates.js rename to sonar-server/src/main/js/tests/e2e/tests/quality-gates-spec.js diff --git a/sonar-server/src/main/js/tests/main.js b/sonar-server/src/main/js/tests/main.js deleted file mode 100644 index eb95545cb5b..00000000000 --- a/sonar-server/src/main/js/tests/main.js +++ /dev/null @@ -1,44 +0,0 @@ -window.__karma__.loaded = function() {}; - -var tests = []; -for (var file in window.__karma__.files) { - if (window.__karma__.files.hasOwnProperty(file)) { - if (/Spec\.js$/.test(file)) { - tests.push(file); - } - } -} - -requirejs.config({ - baseUrl: '/base', - - paths: { - 'backbone': 'third-party/backbone', - 'backbone.marionette': 'third-party/backbone.marionette', - 'handlebars': 'third-party/handlebars', - 'moment': 'third-party/moment' - }, - - shim: { - 'backbone.marionette': { - deps: ['backbone'], - exports: 'Marionette' - }, - 'backbone': { - exports: 'Backbone' - }, - 'handlebars': { - exports: 'Handlebars' - }, - 'moment': { - exports: 'moment' - } - }, - - // ask Require.js to load these files (all our tests) - deps: tests, - - // start test run, once Require.js is done - callback: window.__karma__.start - -}); diff --git a/sonar-server/src/main/js/tests/navigator/filters/BaseFilterViewSpec.js b/sonar-server/src/main/js/tests/navigator/filters/BaseFilterViewSpec.js deleted file mode 100644 index b1a0ab15c4f..00000000000 --- a/sonar-server/src/main/js/tests/navigator/filters/BaseFilterViewSpec.js +++ /dev/null @@ -1,15 +0,0 @@ -define(['navigator/filters/base-filters'], function(BaseFilters) { - - describe('BaseFilterView', function() { - - it('initializes', function() { - var baseFilterView = new BaseFilters.BaseFilterView({ - model: new BaseFilters.Filter() - }); - expect(baseFilterView.detailsView).toBeDefined(); - expect(baseFilterView.detailsView.options.filterView).toBe(baseFilterView); - }); - - }); - -}); diff --git a/sonar-server/src/main/js/tests/navigator/filters/ChoiceFilterViewSpec.js b/sonar-server/src/main/js/tests/navigator/filters/ChoiceFilterViewSpec.js deleted file mode 100644 index 3b905a9f88f..00000000000 --- a/sonar-server/src/main/js/tests/navigator/filters/ChoiceFilterViewSpec.js +++ /dev/null @@ -1,39 +0,0 @@ -define(['navigator/filters/base-filters', 'navigator/filters/choice-filters'], function(BaseFilters, ChoiceFilters) { - - describe('BaseFilterView', function() { - var choices, choiceFilter, choiceFilterView; - - beforeEach(function() { - choices = { - 'ONE': 'one', - 'TWO': 'two', - 'THREE': 'three', - '!OPPOSITE': 'opposite' - }; - - choiceFilter = new BaseFilters.Filter({ - name: 'Choice Filter Name', - property: 'choiceFilterProperty', - type: ChoiceFilters.ChoiceFilterView, - enabled: true, - optional: false, - choices: choices - }); - - choiceFilterView = new ChoiceFilters.ChoiceFilterView({ - model: choiceFilter - }); - }); - - it('creates choices', function() { - expect(choiceFilterView.choices).toBeDefined(); - expect(choiceFilterView.choices.length).toBe(Object.keys(choices).length); - }); - - it('does not have selected by default', function() { - expect(choiceFilterView.getSelected().length).toBe(0); - }); - - }); - -}); diff --git a/sonar-server/src/main/js/translate.js b/sonar-server/src/main/js/translate.js index cb10b996220..c86d28c09ef 100644 --- a/sonar-server/src/main/js/translate.js +++ b/sonar-server/src/main/js/translate.js @@ -1,7 +1,11 @@ (function() { + window.suppressTranslationWarnings = false; + var warn = function(message) { - if (console != null && typeof console.warn === 'function') { - console.warn(message); + if (!window.suppressTranslationWarnings) { + if (console != null && typeof console.warn === 'function') { + console.warn(message); + } } }; @@ -90,7 +94,7 @@ window.messages = bundle; localStorage.setItem('l10n.bundle', JSON.stringify(bundle)); - } else if (jqXHR.status === 304) { + } else if (jqXHR.status == 304) { window.messages = JSON.parse(localStorage.getItem('l10n.bundle')); } }); -- 2.39.5