aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src/main/coffee
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-server/src/main/coffee')
-rw-r--r--sonar-server/src/main/coffee/tests/common/inputsSpec.coffee87
-rw-r--r--sonar-server/src/main/coffee/tests/component-viewer/baseSpec.coffee30
-rw-r--r--sonar-server/src/main/coffee/tests/translateSpec.coffee75
-rw-r--r--sonar-server/src/main/coffee/tests/widgets/BaseSpec.coffee47
-rw-r--r--sonar-server/src/main/coffee/tests/widgets/treemapSpec.coffee49
5 files changed, 288 insertions, 0 deletions
diff --git a/sonar-server/src/main/coffee/tests/common/inputsSpec.coffee b/sonar-server/src/main/coffee/tests/common/inputsSpec.coffee
new file mode 100644
index 00000000000..3cbc6591925
--- /dev/null
+++ b/sonar-server/src/main/coffee/tests/common/inputsSpec.coffee
@@ -0,0 +1,87 @@
+$ = 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 type="text">')
+ @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 type="text">')
+ @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/component-viewer/baseSpec.coffee b/sonar-server/src/main/coffee/tests/component-viewer/baseSpec.coffee
new file mode 100644
index 00000000000..7fd5a4cbe50
--- /dev/null
+++ b/sonar-server/src/main/coffee/tests/component-viewer/baseSpec.coffee
@@ -0,0 +1,30 @@
+$ = jQuery
+window.baseUrl = ''
+window.suppressTranslationWarnings = true
+
+
+define [
+ 'component-viewer/main'
+], (
+ ComponentViewer
+) ->
+
+ describe 'Component Viewer Base Test Suite', ->
+
+ beforeEach ->
+ @viewer = new ComponentViewer()
+ @viewer.render().$el.appendTo $('body')
+
+
+ afterEach ->
+ @viewer.close()
+
+
+ it 'attaches to the page', ->
+ expect($('.component-viewer', 'body').length).toBe 1
+
+
+ it 'has all parts', ->
+ expect(@viewer.$('.component-viewer-header').length).toBe 1
+ expect(@viewer.$('.component-viewer-source').length).toBe 1
+ expect(@viewer.$('.component-viewer-workspace').length).toBe 1
diff --git a/sonar-server/src/main/coffee/tests/translateSpec.coffee b/sonar-server/src/main/coffee/tests/translateSpec.coffee
new file mode 100644
index 00000000000..7b4576bcfff
--- /dev/null
+++ b/sonar-server/src/main/coffee/tests/translateSpec.coffee
@@ -0,0 +1,75 @@
+$ = 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
new file mode 100644
index 00000000000..b869aed84d5
--- /dev/null
+++ b/sonar-server/src/main/coffee/tests/widgets/BaseSpec.coffee
@@ -0,0 +1,47 @@
+$ = 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)'
diff --git a/sonar-server/src/main/coffee/tests/widgets/treemapSpec.coffee b/sonar-server/src/main/coffee/tests/widgets/treemapSpec.coffee
new file mode 100644
index 00000000000..4f1ddcfd20a
--- /dev/null
+++ b/sonar-server/src/main/coffee/tests/widgets/treemapSpec.coffee
@@ -0,0 +1,49 @@
+$ = jQuery
+
+METRICS =
+ ncloc:
+ name: 'Lines of code'
+ coverage:
+ name: 'Coverage'
+ direction: -1
+
+METRICS_PRIORITY = ['coverage', 'ncloc']
+
+COMPONENTS = [
+ { key: 'some-key-1', name: 'Some Name 1', longName: 'Some Long Name 1', qualifier: 'TRK', measures }
+]
+
+
+
+describe 'treemap widget suite', ->
+
+ uid = 1
+
+ render = (treemap, components = COMPONENTS, metrics = METRICS, metricsPriority = METRICS_PRIORITY) ->
+ elementId = 'treemap-' + ++uid
+ $("<div id='#{elementId}'></div>").appendTo 'body'
+ treemap.metrics(metrics).metricsPriority(metricsPriority).components(components).options(
+ heightInPercents: 55
+ maxItems: 10
+ maxItemsReachedMessage: ''
+ baseUrl: ''
+ noData: ''
+ ).render('#' + elementId);
+
+
+ close = ->
+ elementId = 'treemap-' + uid
+ $('#' + elementId).delete()
+
+
+ beforeEach ->
+ @treemap = new window.SonarWidgets.Treemap()
+
+
+ afterEach ->
+ @treemap = undefined
+ close()
+
+
+ it 'renders', ->
+ render @treemap