aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pom.xml8
-rw-r--r--server/sonar-web/Gruntfile.coffee58
-rw-r--r--server/sonar-web/package.json5
-rw-r--r--server/sonar-web/pom.xml3
-rw-r--r--server/sonar-web/src/main/js/tests/e2e/views/layouts/main.jade26
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-active-severity-facet.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-available-since.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-inheritance-facet.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-no-available-profiles-for-activation.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-quality-profile-facet.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-query-facet.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-rule-should-have-permalink.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-should-have-permalink.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-activate-profile.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-create-custom-rules.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-create-manual-rules.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-delete-custom-rules.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-delete-manual-rules.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-show-custom-rules.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-show-deprecated-label.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-show-details.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-show-empty-list.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-show-facets.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-facets.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-show-rule-issues.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-show-rule.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule.js)4
-rw-r--r--server/sonar-web/src/test/js/coding-rules-page-should-show-rules.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rules.js)4
-rw-r--r--server/sonar-web/src/test/js/design-spec.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/design-spec.js)4
-rw-r--r--server/sonar-web/src/test/js/issues-page-should-open-issue-permalink.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink.js)4
-rw-r--r--server/sonar-web/src/test/js/issues-page-spec.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-page-spec.js)28
-rw-r--r--server/sonar-web/src/test/js/quality-gates-spec.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec.js)4
-rw-r--r--server/sonar-web/src/test/js/source-viewer-create-manual-issue.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue.js)4
-rw-r--r--server/sonar-web/src/test/js/source-viewer-favorite-spec.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-favorite-spec.js)8
-rw-r--r--server/sonar-web/src/test/js/source-viewer-link-to-raw-spec.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-link-to-raw-spec.js)4
-rw-r--r--server/sonar-web/src/test/js/source-viewer-should-not-show-source-if-no-permission.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-not-show-source-if-no-permission.js)4
-rw-r--r--server/sonar-web/src/test/js/source-viewer-should-open-in-new-window-with-line.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window-with-line.js)4
-rw-r--r--server/sonar-web/src/test/js/source-viewer-should-open-in-new-window.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window.js)4
-rw-r--r--server/sonar-web/src/test/js/source-viewer-spec.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec.js)12
-rw-r--r--server/sonar-web/src/test/js/treemap-spec.js (renamed from server/sonar-web/src/main/js/tests/e2e/tests/treemap-spec.js)3
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/search-BLOCKER.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/search-BLOCKER.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/search-qprofile.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/search-qprofile.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-available-since/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-available-since/search-limited.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/search-limited.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-available-since/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-inherited.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-inherited.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-not-inherited.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-not-inherited.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-overriden.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-overriden.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-qprofile.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-qprofile.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-qprofile2.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-qprofile2.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-no-available-profiles-for-activation/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-no-available-profiles-for-activation/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-no-available-profiles-for-activation/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/search-qprofile-active.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/search-qprofile-active.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/search-qprofile-inactive.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/search-qprofile-inactive.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-query-facet/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-query-facet/search-query.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/search-query.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-query-facet/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-rule-permalink/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-rule-permalink/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-rule-permalink/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/show-with-profile.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/show-with-profile.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/search-custom-rules.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/search-custom-rules.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/search-custom-rules2.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/search-custom-rules2.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-create-manual-rules/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-create-manual-rules/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-create-manual-rules/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/search-custom-rules.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/search-custom-rules.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/search-after.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/search-after.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/search-before.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/search-before.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/search-custom-rules.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/search-custom-rules.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-deprecated-label/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-deprecated-label/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-details/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-details/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-details/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-empty-list/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-empty-list/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/issues-search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/issues-search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/search.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/show.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules/app.json)0
-rw-r--r--server/sonar-web/src/test/json/coding-rules/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/coding-rules/search.json)0
-rw-r--r--server/sonar-web/src/test/json/design-spec/dependencies.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/design-spec/dependencies.json)0
-rw-r--r--server/sonar-web/src/test/json/design-spec/resources.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/design-spec/resources.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/app.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/components-app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/components-app.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/lines.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/lines.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/search.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/app.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/file-level/components-app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/file-level/components-app.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/file-level/lines.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/file-level/lines.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/file-level/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/file-level/search.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/search-reopened.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/search-reopened.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/search-with-tags.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/search-with-tags.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/search.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/show-open.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show-open.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/show-resolved.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show-resolved.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/show-with-tags.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show-with-tags.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/tags-modified.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/tags-modified.json)0
-rw-r--r--server/sonar-web/src/test/json/issues-spec/tags.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/tags.json)0
-rw-r--r--server/sonar-web/src/test/json/quality-gates-spec/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec/app.json)0
-rw-r--r--server/sonar-web/src/test/json/quality-gates-spec/list.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec/list.json)0
-rw-r--r--server/sonar-web/src/test/json/quality-gates-spec/show.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec/show.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-create-manual-issue/api-rules-search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/api-rules-search.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-create-manual-issue/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/app.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-create-manual-issue/create-issue.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/create-issue.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-create-manual-issue/issues.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/issues.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-create-manual-issue/lines.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/lines.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-should-not-show-source-if-no-permission/api-components-app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-not-show-source-if-no-permission/api-components-app.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-should-not-show-source-if-no-permission/api-issues-search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-not-show-source-if-no-permission/api-issues-search.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-should-open-in-new-window/api-components-app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window/api-components-app.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-should-open-in-new-window/api-issues-search.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window/api-issues-search.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-should-open-in-new-window/api-sources-lines.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window/api-sources-lines.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/app-not-logged-in.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/app-not-logged-in.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/app.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/coverage.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/coverage.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/cross-project-duplications.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/cross-project-duplications.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/duplications-in-deleted-files.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/duplications-in-deleted-files.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/duplications.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/duplications.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/issues.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/issues.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/lines.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/lines.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/resources-without-ncloc-data.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/resources-without-ncloc-data.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/resources.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/resources.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/scm.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/scm.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/source.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/source.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/test-cases.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/test-cases.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/tests/app.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/tests/app.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/tests/lines.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/tests/lines.json)0
-rw-r--r--server/sonar-web/src/test/json/source-viewer-spec/tests/tests.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/tests/tests.json)0
-rw-r--r--server/sonar-web/src/test/json/treemap-spec/treemap-resources.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/treemap-spec/treemap-resources.json)0
-rw-r--r--server/sonar-web/src/test/json/treemap-spec/treemap.json (renamed from server/sonar-web/src/main/js/tests/e2e/tests/treemap-spec/treemap.json)0
-rw-r--r--server/sonar-web/src/test/lib.js (renamed from server/sonar-web/src/main/js/tests/e2e/lib.js)24
-rw-r--r--server/sonar-web/src/test/server-coverage.js30
-rw-r--r--server/sonar-web/src/test/server.js (renamed from server/sonar-web/src/main/js/tests/e2e/server.js)10
-rw-r--r--server/sonar-web/src/test/views/coding-rules.jade (renamed from server/sonar-web/src/main/js/tests/e2e/views/coding-rules.jade)2
-rw-r--r--server/sonar-web/src/test/views/design.jade (renamed from server/sonar-web/src/main/js/tests/e2e/views/design.jade)2
-rw-r--r--server/sonar-web/src/test/views/issues.jade (renamed from server/sonar-web/src/main/js/tests/e2e/views/issues.jade)2
-rw-r--r--server/sonar-web/src/test/views/layouts/main.jade67
-rw-r--r--server/sonar-web/src/test/views/quality-gates.jade (renamed from server/sonar-web/src/main/js/tests/e2e/views/quality-gates.jade)2
-rw-r--r--server/sonar-web/src/test/views/source-viewer.jade (renamed from server/sonar-web/src/main/js/tests/e2e/views/source-viewer.jade)2
-rw-r--r--server/sonar-web/src/test/views/treemap.jade (renamed from server/sonar-web/src/main/js/tests/e2e/views/treemap.jade)2
161 files changed, 362 insertions, 44 deletions
diff --git a/pom.xml b/pom.xml
index c2ea68ba43d..03d2aae55e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -85,6 +85,7 @@
<skipBatchTests>false</skipBatchTests>
<skipServerTests>false</skipServerTests>
<skipWebTests>false</skipWebTests>
+ <jsCoverage>nocoverage</jsCoverage>
<version.maven-license.plugin>1.9.0</version.maven-license.plugin>
<skipSanityChecks>false</skipSanityChecks>
@@ -1550,6 +1551,13 @@
</plugins>
</build>
</profile>
+
+ <profile>
+ <id>analysis</id>
+ <properties>
+ <jsCoverage>coverage</jsCoverage>
+ </properties>
+ </profile>
</profiles>
</project>
diff --git a/server/sonar-web/Gruntfile.coffee b/server/sonar-web/Gruntfile.coffee
index a6858a6a19d..852d958474b 100644
--- a/server/sonar-web/Gruntfile.coffee
+++ b/server/sonar-web/Gruntfile.coffee
@@ -1,6 +1,8 @@
module.exports = (grunt) ->
require('jit-grunt')(grunt, {
express: 'grunt-express-server'
+ unzip: 'grunt-zip'
+ replace: 'grunt-text-replace'
});
pkg = grunt.file.readJSON('package.json')
@@ -325,12 +327,16 @@ module.exports = (grunt) ->
express:
test:
options:
- script: '<%= pkg.sources %>js/tests/e2e/server.js'
+ script: 'src/test/server.js'
+ port: expressPort
+ testCoverage:
+ options:
+ script: 'src/test/server-coverage.js'
port: expressPort
dev:
options:
background: false
- script: '<%= pkg.sources %>js/tests/e2e/server.js'
+ script: 'src/test/server.js'
casper:
@@ -342,14 +348,22 @@ module.exports = (grunt) ->
concise: true
parallel: true
port: expressPort
- src: ['<%= pkg.sources %>js/tests/e2e/tests/**/*.js']
+ src: ['src/test/js/**/*.js']
+ testCoverage:
+ options:
+ test: true
+ 'no-colors': true
+ 'fail-fast': true
+ concise: true
+ port: expressPort
+ src: ['src/test/js/**/*.js']
single:
options:
test: true
verbose: true
'fail-fast': true
port: expressPort
- src: ['<%= pkg.sources %>js/tests/e2e/tests/<%= grunt.option("spec") %>-spec.js']
+ src: ['src/test/js/<%= grunt.option("spec") %>-spec.js']
testfile:
options:
test: true
@@ -370,6 +384,32 @@ module.exports = (grunt) ->
]
+ curl:
+ resetCoverage:
+ src:
+ url: 'http://localhost:' + expressPort + '/coverage/reset'
+ method: 'POST'
+ dest: 'target/reset_coverage.dump'
+
+ downloadCoverage:
+ src: 'http://localhost:' + expressPort + '/coverage/download'
+ dest: 'target/coverage.zip'
+
+
+ unzip:
+ 'target/js-coverage': 'target/coverage.zip'
+
+
+ replace:
+ lcov:
+ src: 'target/js-coverage/lcov.info'
+ dest: 'target/js-coverage/lcov.info'
+ replacements: [{
+ from: '/webapp'
+ to: ''
+ }]
+
+
jshint:
dev:
src: [
@@ -422,6 +462,9 @@ module.exports = (grunt) ->
grunt.registerTask 'test',
['dev', 'express:test', 'casper:test']
+ grunt.registerTask 'testCoverage',
+ ['dev', 'express:testCoverage', 'curl:resetCoverage', 'casper:testCoverage', 'curl:downloadCoverage', 'unzip', 'replace:lcov']
+
grunt.registerTask 'single',
['dev', 'express:test', 'casper:single']
@@ -429,8 +472,11 @@ module.exports = (grunt) ->
['dev', 'express:test', 'casper:testfile']
# tasks used by Maven build (see pom.xml)
- grunt.registerTask 'maven-build-skip-tests-true',
+ grunt.registerTask 'maven-build-skip-tests-true-nocoverage',
['build']
- grunt.registerTask 'maven-build-skip-tests-false',
+ grunt.registerTask 'maven-build-skip-tests-false-nocoverage',
['test', 'build']
+
+ grunt.registerTask 'maven-build-skip-tests-false-coverage',
+ ['testCoverage', 'build']
diff --git a/server/sonar-web/package.json b/server/sonar-web/package.json
index f9beeb0882a..d0150e2b137 100644
--- a/server/sonar-web/package.json
+++ b/server/sonar-web/package.json
@@ -19,8 +19,13 @@
"grunt-contrib-uglify": "0.4.0",
"grunt-contrib-watch": "0.5.3",
"grunt-css-url-rewrite": "0.3.5",
+ "grunt-curl": "2.1.0",
"grunt-express-server": "0.4.17",
+ "grunt-text-replace": "0.4.0",
"grunt-uglify-parallel": "0.0.1",
+ "grunt-zip": "0.16.2",
+ "istanbul": "0.3.5",
+ "istanbul-middleware": "0.2.0",
"jade": "1.4.2",
"jit-grunt": "0.9.1",
"phantomjs": "1.9.7-12",
diff --git a/server/sonar-web/pom.xml b/server/sonar-web/pom.xml
index bbb9f202700..9b7e9ac2ee9 100644
--- a/server/sonar-web/pom.xml
+++ b/server/sonar-web/pom.xml
@@ -15,6 +15,7 @@
<!-- self-analysis -->
<sonar.sources>src/main/js,src/main/coffee,src/main/hbs,src/main/less</sonar.sources>
<sonar.exclusions>src/main/js/third-party/**/*,src/main/js/require.js,src/main/js/tests/**/*</sonar.exclusions>
+ <sonar.javascript.lcov.reportPath>target/js-coverage/lcov.info</sonar.javascript.lcov.reportPath>
</properties>
<build>
@@ -153,7 +154,7 @@
<goal>grunt</goal>
</goals>
<configuration>
- <arguments>maven-build-skip-tests-${skipWebTests} --port=${jsTestPort} --no-color</arguments>
+ <arguments>maven-build-skip-tests-${skipWebTests}-${jsCoverage} --port=${jsTestPort} --no-color</arguments>
</configuration>
</execution>
</executions>
diff --git a/server/sonar-web/src/main/js/tests/e2e/views/layouts/main.jade b/server/sonar-web/src/main/js/tests/e2e/views/layouts/main.jade
deleted file mode 100644
index 37b905874c7..00000000000
--- a/server/sonar-web/src/main/js/tests/e2e/views/layouts/main.jade
+++ /dev/null
@@ -1,26 +0,0 @@
-html
- head
- meta(http-equiv='Content-Type', content='text/html; charset=UTF-8')
- link(href='/css/sonar.css', rel='stylesheet', media='all')
- script(src='/js/sonar.js')
- script(src='/js/third-party/jquery.mockjax.js')
- script.
- var baseUrl = '';
- var $j = jQuery.noConflict();
- window.suppressTranslationWarnings = true;
- jQuery.mockjaxSettings.contentType = 'text/json';
- jQuery.mockjaxSettings.responseTime = 50;
- jQuery.mockjaxSettings.throwUnmocked = true;
- $j(document).ready(function () { $j('.open-modal').modal(); });
- window.waitForMocks = function (app) {
- var x = setInterval(function () {
- jQuery.get('/api/l10n/index').done(function () {
- clearInterval(x);
- require([app]);
- });
- }, 500);
- }
- block header
- body
- #body
- block body
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet.js b/server/sonar-web/src/test/js/coding-rules-page-active-severity-facet.js
index bfaebe66cca..a0a1e371875 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-active-severity-facet.js
@@ -78,6 +78,10 @@ casper.test.begin('coding-rules-page-active-severity-facet', 7, function (test)
test.assertExists('.search-navigator-facet-box-forbidden[data-property="active_severities"]');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since.js b/server/sonar-web/src/test/js/coding-rules-page-available-since.js
index e13424e5cfe..e55b457d214 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-available-since.js
@@ -58,6 +58,10 @@ casper.test.begin('coding-rules-page-available-since', 2, function (test) {
test.assertSelectorContains('#coding-rules-total', '101');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet.js b/server/sonar-web/src/test/js/coding-rules-page-inheritance-facet.js
index 6208f9c7d27..64cb89a71ef 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-inheritance-facet.js
@@ -101,6 +101,10 @@ casper.test.begin('coding-rules-page-inheritance-facet', 11, function (test) {
test.assertExists('.search-navigator-facet-box-forbidden[data-property="inheritance"]');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation.js b/server/sonar-web/src/test/js/coding-rules-page-no-available-profiles-for-activation.js
index 5dc7f305251..a7ad36f86f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-no-available-profiles-for-activation.js
@@ -58,6 +58,10 @@ casper.test.begin('coding-rules-page-no-available-profiles-for-activation', 2, f
test.assertExists('.modal .message-notice');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet.js b/server/sonar-web/src/test/js/coding-rules-page-quality-profile-facet.js
index 44c30ebd91d..3d2d55ac40d 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-quality-profile-facet.js
@@ -73,6 +73,10 @@ casper.test.begin('coding-rules-page-quality-profile-facet', 6, function (test)
test.assertSelectorContains('#coding-rules-total', '609');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet.js b/server/sonar-web/src/test/js/coding-rules-page-query-facet.js
index f0710781f88..e64cf5db6ef 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-query-facet.js
@@ -63,6 +63,10 @@ casper.test.begin('coding-rules-page-query-facet', 3, function (test) {
test.assertSelectorContains('#coding-rules-total', '609');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-should-have-permalink.js b/server/sonar-web/src/test/js/coding-rules-page-rule-should-have-permalink.js
index 37b89e68bc6..38da7b7afa2 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-should-have-permalink.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-rule-should-have-permalink.js
@@ -51,6 +51,10 @@ casper.test.begin('coding-rules-page-rule-permalink', 1, function (test) {
test.assertExists('a[href="/coding_rules#rule_key=squid%3AS1181"]');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile.js b/server/sonar-web/src/test/js/coding-rules-page-should-activate-profile.js
index d0ac3bd3f29..e354b98f60f 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-activate-profile.js
@@ -69,6 +69,10 @@ casper.test.begin('coding-rules-page-should-activate-profile', 5, function (test
test.assertExists('.coding-rules-detail-quality-profile-deactivate');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules.js b/server/sonar-web/src/test/js/coding-rules-page-should-create-custom-rules.js
index ab36a367844..fac972fa626 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-create-custom-rules.js
@@ -70,6 +70,10 @@ casper.test.begin('coding-rules-page-should-delete-create-rules', 2, function (t
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules.js b/server/sonar-web/src/test/js/coding-rules-page-should-create-manual-rules.js
index b725c43e104..590304635df 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-create-manual-rules.js
@@ -65,6 +65,10 @@ casper.test.begin('coding-rules-page-should-delete-manual-rules', 3, function (t
test.assertSelectorContains('.coding-rules-detail-description', 'Manual Rule Description');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules.js b/server/sonar-web/src/test/js/coding-rules-page-should-delete-custom-rules.js
index 2c2609c7c7b..623c36e2961 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-delete-custom-rules.js
@@ -60,6 +60,10 @@ casper.test.begin('coding-rules-page-should-delete-custom-rules', 2, function (t
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules.js b/server/sonar-web/src/test/js/coding-rules-page-should-delete-manual-rules.js
index c0efd0bb72a..c4b590bec84 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-delete-manual-rules.js
@@ -65,6 +65,10 @@ casper.test.begin('coding-rules-page-should-delete-manual-rules', 1, function (t
test.assertSelectorContains('#coding-rules-total', 0);
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules.js b/server/sonar-web/src/test/js/coding-rules-page-should-show-custom-rules.js
index 6a17b1ed2d7..bcf5d43980a 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-show-custom-rules.js
@@ -57,6 +57,10 @@ casper.test.begin('coding-rules-page-should-show-custom-rules', 3, function (tes
'Do not use org.h2.util.StringUtils');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label.js b/server/sonar-web/src/test/js/coding-rules-page-should-show-deprecated-label.js
index 51d3be787a2..7c57c1a14dd 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-show-deprecated-label.js
@@ -44,6 +44,10 @@ casper.test.begin('coding-rules-page-should-show-deprecated-label', 1, function
test.assertSelectorContains('.coding-rule.selected', 'DEPRECATED');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details.js b/server/sonar-web/src/test/js/coding-rules-page-should-show-details.js
index b352b52c4d4..49bac8b4d6c 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-show-details.js
@@ -76,6 +76,10 @@ casper.test.begin('coding-rules-page-should-show-details', 20, function (test) {
test.assertSelectorContains('.coding-rules-detail-quality-profile-inheritance', 'Default - Top');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list.js b/server/sonar-web/src/test/js/coding-rules-page-should-show-empty-list.js
index d0e35952e5a..d918aa6d9d4 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-show-empty-list.js
@@ -46,6 +46,10 @@ casper.test.begin('coding-rules-page-should-show-empty-list', 3, function (test)
test.assertExists('.search-navigator-no-results');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-facets.js b/server/sonar-web/src/test/js/coding-rules-page-should-show-facets.js
index 6f3fc0f889a..5f8b5a782b2 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-facets.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-show-facets.js
@@ -44,6 +44,10 @@ casper.test.begin('coding-rules-page-should-show-facets', 1, function (test) {
test.assertElementCount('.search-navigator-facet-box', 13);
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues.js b/server/sonar-web/src/test/js/coding-rules-page-should-show-rule-issues.js
index 70163ae8544..aa6474fd629 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-show-rule-issues.js
@@ -56,6 +56,10 @@ casper.test.begin('coding-rules-page-should-show-rule-issues', 5, function (test
test.assertSelectorContains('.coding-rules-most-violated-projects', '1');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule.js b/server/sonar-web/src/test/js/coding-rules-page-should-show-rule.js
index 5fa1cf0f220..1b3ab387566 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-show-rule.js
@@ -50,6 +50,10 @@ casper.test.begin('coding-rules-page-should-show-rule', 7, function (test) {
test.assertSelectorContains('.coding-rule.selected', 'custom-tag');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rules.js b/server/sonar-web/src/test/js/coding-rules-page-should-show-rules.js
index 869c03397c1..cde137ac09a 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rules.js
+++ b/server/sonar-web/src/test/js/coding-rules-page-should-show-rules.js
@@ -47,6 +47,10 @@ casper.test.begin('coding-rules-page-should-show-rules', 4, function (test) {
test.assertSelectorContains('#coding-rules-total', '609');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/design-spec.js b/server/sonar-web/src/test/js/design-spec.js
index d9938d4409a..d6989047711 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/design-spec.js
+++ b/server/sonar-web/src/test/js/design-spec.js
@@ -60,6 +60,10 @@ casper.test.begin(testName('Base'), function suite(test) {
test.assertSelectorContains('.dsm-info', 'src/main/java/com/maif/sonar/cobol/metrics/TableMetricsVisitor.java ');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink.js b/server/sonar-web/src/test/js/issues-page-should-open-issue-permalink.js
index 0eb6587f442..64b10e69251 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink.js
+++ b/server/sonar-web/src/test/js/issues-page-should-open-issue-permalink.js
@@ -51,6 +51,10 @@ casper.test.begin('issues-page-should-open-issue-permalink', 3, function (test)
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-spec.js b/server/sonar-web/src/test/js/issues-page-spec.js
index 5abab8e9f94..7dfb1916039 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-spec.js
+++ b/server/sonar-web/src/test/js/issues-page-spec.js
@@ -77,6 +77,10 @@ casper.test.begin(testName('Base'), function (test) {
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
@@ -115,6 +119,10 @@ casper.test.begin(testName('Issue Box', 'Check Elements'), function (test) {
test.assertExists('.issue.selected .js-issue-show-changelog');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
@@ -156,6 +164,10 @@ casper.test.begin(testName('Issue Box', 'Tags'), function (test) {
test.assertSelectorContains('.issue.selected .js-issue-tags', 'security, design');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
@@ -189,6 +201,10 @@ casper.test.begin(testName('Issue Box', 'Transitions'), function (test) {
test.assertExists('.issue-action-option[data-value=falsepositive]');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
@@ -222,6 +238,10 @@ casper.test.begin(testName('File-Level Issues'), function (test) {
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
@@ -251,6 +271,10 @@ casper.test.begin(testName('Severity Facet'), function (test) {
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
@@ -282,6 +306,10 @@ casper.test.begin(testName('Bulk Change'), function (test) {
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec.js b/server/sonar-web/src/test/js/quality-gates-spec.js
index 8de770ca65f..2b2c7ef8ac2 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec.js
+++ b/server/sonar-web/src/test/js/quality-gates-spec.js
@@ -56,6 +56,10 @@ casper.test.begin('Quality Gates', function suite (test) {
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue.js b/server/sonar-web/src/test/js/source-viewer-create-manual-issue.js
index 794947f744f..2cc0a798b83 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue.js
+++ b/server/sonar-web/src/test/js/source-viewer-create-manual-issue.js
@@ -68,6 +68,10 @@ casper.test.begin(testName('source-viewer-create-manual-issue'), function (test)
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-favorite-spec.js b/server/sonar-web/src/test/js/source-viewer-favorite-spec.js
index 6a4398704bb..91eeedc5952 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-favorite-spec.js
+++ b/server/sonar-web/src/test/js/source-viewer-favorite-spec.js
@@ -56,6 +56,10 @@ casper.test.begin(testName('Mark as Favorite'), function (test) {
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
@@ -82,6 +86,10 @@ casper.test.begin(testName('Don\'t Show Favorite If Not Logged In'), function (t
test.assertDoesntExist('.icon-not-favorite');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-link-to-raw-spec.js b/server/sonar-web/src/test/js/source-viewer-link-to-raw-spec.js
index 3c9f83f5ed1..8942a7cffc5 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-link-to-raw-spec.js
+++ b/server/sonar-web/src/test/js/source-viewer-link-to-raw-spec.js
@@ -54,6 +54,10 @@ casper.test.begin(testName('Link to Raw'), function (test) {
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-not-show-source-if-no-permission.js b/server/sonar-web/src/test/js/source-viewer-should-not-show-source-if-no-permission.js
index 51786db106f..ec29cb5af96 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-not-show-source-if-no-permission.js
+++ b/server/sonar-web/src/test/js/source-viewer-should-not-show-source-if-no-permission.js
@@ -44,6 +44,10 @@ casper.test.begin(testName('source-viewer-should-not-show-source-if-no-permissio
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window-with-line.js b/server/sonar-web/src/test/js/source-viewer-should-open-in-new-window-with-line.js
index fd5f81785b2..f1c622890fa 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window-with-line.js
+++ b/server/sonar-web/src/test/js/source-viewer-should-open-in-new-window-with-line.js
@@ -61,6 +61,10 @@ casper.test.begin(testName('source-viewer-should-open-in-new-window-with-line'),
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window.js b/server/sonar-web/src/test/js/source-viewer-should-open-in-new-window.js
index 35188e28bb8..200932f5f22 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window.js
+++ b/server/sonar-web/src/test/js/source-viewer-should-open-in-new-window.js
@@ -55,6 +55,10 @@ casper.test.begin(testName('source-viewer-should-open-in-new-window'), function
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec.js b/server/sonar-web/src/test/js/source-viewer-spec.js
index d70789490a0..7adcee1a280 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec.js
+++ b/server/sonar-web/src/test/js/source-viewer-spec.js
@@ -65,6 +65,10 @@ casper.test.begin(testName('Base'), function (test) {
});
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
@@ -110,6 +114,10 @@ casper.test.begin(testName('Decoration'), function (test) {
test.assertExists('.source-line-scm-inner[data-author="julien.henry@sonarsource.com"]');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
@@ -135,6 +143,10 @@ casper.test.begin(testName('Test File'), function (test) {
test.assertSelectorContains('.source-viewer-header-measure', '6');
})
+ .then(function () {
+ lib.sendCoverage();
+ })
+
.run(function () {
test.done();
});
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/treemap-spec.js b/server/sonar-web/src/test/js/treemap-spec.js
index 2cf0496144a..43100cf6107 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/treemap-spec.js
+++ b/server/sonar-web/src/test/js/treemap-spec.js
@@ -69,6 +69,9 @@ casper.test.begin('Treemap', function (test) {
test.assertSelectorHasText('.treemap-cell', 'Server');
test.assertElementCount('.treemap-cell', 25);
});
+ })
+ .then(function () {
+ lib.sendCoverage();
});
casper.run(function() {
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/app.json b/server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/search-BLOCKER.json b/server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/search-BLOCKER.json
index 3dc49f0bca3..3dc49f0bca3 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/search-BLOCKER.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/search-BLOCKER.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/search-qprofile.json b/server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/search-qprofile.json
index cbbb2722ae9..cbbb2722ae9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/search-qprofile.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/search-qprofile.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/search.json b/server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/search.json
index c17c58d2b42..c17c58d2b42 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-active-severity-facet/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-active-severity-facet/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/app.json b/server/sonar-web/src/test/json/coding-rules-page-available-since/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-available-since/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/search-limited.json b/server/sonar-web/src/test/json/coding-rules-page-available-since/search-limited.json
index ca5b3316b7c..ca5b3316b7c 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/search-limited.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-available-since/search-limited.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/search.json b/server/sonar-web/src/test/json/coding-rules-page-available-since/search.json
index c17c58d2b42..c17c58d2b42 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-available-since/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-available-since/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/app.json b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-inherited.json b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-inherited.json
index ca5b3316b7c..ca5b3316b7c 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-inherited.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-inherited.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-not-inherited.json b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-not-inherited.json
index c49bff75f1c..c49bff75f1c 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-not-inherited.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-not-inherited.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-overriden.json b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-overriden.json
index 60bb4a7796e..60bb4a7796e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-overriden.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-overriden.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-qprofile.json b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-qprofile.json
index cbbb2722ae9..cbbb2722ae9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-qprofile.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-qprofile.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-qprofile2.json b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-qprofile2.json
index 63dd5c45733..63dd5c45733 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search-qprofile2.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search-qprofile2.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search.json b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search.json
index c17c58d2b42..c17c58d2b42 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-inheritance-facet/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-inheritance-facet/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/app.json b/server/sonar-web/src/test/json/coding-rules-page-no-available-profiles-for-activation/app.json
index 4e69bdee31a..4e69bdee31a 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-no-available-profiles-for-activation/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/search.json b/server/sonar-web/src/test/json/coding-rules-page-no-available-profiles-for-activation/search.json
index b5a6bc269b9..b5a6bc269b9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-no-available-profiles-for-activation/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/show.json b/server/sonar-web/src/test/json/coding-rules-page-no-available-profiles-for-activation/show.json
index 1fddeb6a632..1fddeb6a632 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-no-available-profiles-for-activation/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-no-available-profiles-for-activation/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/app.json b/server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/search-qprofile-active.json b/server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/search-qprofile-active.json
index cbbb2722ae9..cbbb2722ae9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/search-qprofile-active.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/search-qprofile-active.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/search-qprofile-inactive.json b/server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/search-qprofile-inactive.json
index 63dd5c45733..63dd5c45733 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/search-qprofile-inactive.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/search-qprofile-inactive.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/search.json b/server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/search.json
index c17c58d2b42..c17c58d2b42 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-quality-profile-facet/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-quality-profile-facet/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/app.json b/server/sonar-web/src/test/json/coding-rules-page-query-facet/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-query-facet/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/search-query.json b/server/sonar-web/src/test/json/coding-rules-page-query-facet/search-query.json
index 3dc49f0bca3..3dc49f0bca3 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/search-query.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-query-facet/search-query.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/search.json b/server/sonar-web/src/test/json/coding-rules-page-query-facet/search.json
index c17c58d2b42..c17c58d2b42 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-query-facet/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-query-facet/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/app.json b/server/sonar-web/src/test/json/coding-rules-page-rule-permalink/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-rule-permalink/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/search.json b/server/sonar-web/src/test/json/coding-rules-page-rule-permalink/search.json
index b5a6bc269b9..b5a6bc269b9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-rule-permalink/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/show.json b/server/sonar-web/src/test/json/coding-rules-page-rule-permalink/show.json
index 274b587bfb2..274b587bfb2 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-rule-permalink/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-rule-permalink/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/app.json
index 50148bb1b6e..50148bb1b6e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/search.json b/server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/search.json
index b5a6bc269b9..b5a6bc269b9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/show-with-profile.json b/server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/show-with-profile.json
index 1fddeb6a632..1fddeb6a632 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/show-with-profile.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/show-with-profile.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/show.json b/server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/show.json
index cf4b206221e..cf4b206221e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-activate-profile/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-activate-profile/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/app.json
index 50148bb1b6e..50148bb1b6e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/search-custom-rules.json b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/search-custom-rules.json
index db83a85fbd6..db83a85fbd6 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/search-custom-rules.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/search-custom-rules.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/search-custom-rules2.json b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/search-custom-rules2.json
index 0e4184e48a9..0e4184e48a9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/search-custom-rules2.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/search-custom-rules2.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/search.json b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/search.json
index 40ab6ae953a..40ab6ae953a 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/show.json b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/show.json
index 517c5f6e754..517c5f6e754 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-custom-rules/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-create-custom-rules/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-create-manual-rules/app.json
index 50148bb1b6e..50148bb1b6e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-create-manual-rules/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/search.json b/server/sonar-web/src/test/json/coding-rules-page-should-create-manual-rules/search.json
index f43d117c569..f43d117c569 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-create-manual-rules/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/show.json b/server/sonar-web/src/test/json/coding-rules-page-should-create-manual-rules/show.json
index 38190c28abb..38190c28abb 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-create-manual-rules/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-create-manual-rules/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/app.json
index 50148bb1b6e..50148bb1b6e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/search-custom-rules.json b/server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/search-custom-rules.json
index 0e4184e48a9..0e4184e48a9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/search-custom-rules.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/search-custom-rules.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/search.json b/server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/search.json
index 40ab6ae953a..40ab6ae953a 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/show.json b/server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/show.json
index 517c5f6e754..517c5f6e754 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-custom-rules/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-delete-custom-rules/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/app.json
index 50148bb1b6e..50148bb1b6e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/search-after.json b/server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/search-after.json
index f43d117c569..f43d117c569 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/search-after.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/search-after.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/search-before.json b/server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/search-before.json
index 1f19e1d27c2..1f19e1d27c2 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/search-before.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/search-before.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/show.json b/server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/show.json
index 38190c28abb..38190c28abb 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-delete-manual-rules/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-delete-manual-rules/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/search-custom-rules.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/search-custom-rules.json
index 0e4184e48a9..0e4184e48a9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/search-custom-rules.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/search-custom-rules.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/search.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/search.json
index 40ab6ae953a..40ab6ae953a 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/show.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/show.json
index 517c5f6e754..517c5f6e754 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-custom-rules/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-custom-rules/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-deprecated-label/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-deprecated-label/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label/search.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-deprecated-label/search.json
index ddeb1cb7984..ddeb1cb7984 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-deprecated-label/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-deprecated-label/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-details/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-details/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/search.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-details/search.json
index b5a6bc269b9..b5a6bc269b9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-details/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/show.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-details/show.json
index 274b587bfb2..274b587bfb2 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-details/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-details/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-empty-list/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-empty-list/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list/search.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-empty-list/search.json
index f43d117c569..f43d117c569 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-empty-list/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-empty-list/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/app.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/app.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/issues-search.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/issues-search.json
index 511b9288285..511b9288285 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/issues-search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/issues-search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/search.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/search.json
index 558be10513e..558be10513e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/search.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/show.json b/server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/show.json
index 274b587bfb2..274b587bfb2 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules-page-should-show-rule-issues/show.json
+++ b/server/sonar-web/src/test/json/coding-rules-page-should-show-rule-issues/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules/app.json b/server/sonar-web/src/test/json/coding-rules/app.json
index 0eb43bc39f7..0eb43bc39f7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules/app.json
+++ b/server/sonar-web/src/test/json/coding-rules/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules/search.json b/server/sonar-web/src/test/json/coding-rules/search.json
index c17c58d2b42..c17c58d2b42 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/coding-rules/search.json
+++ b/server/sonar-web/src/test/json/coding-rules/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/design-spec/dependencies.json b/server/sonar-web/src/test/json/design-spec/dependencies.json
index 7f23c19b8d5..7f23c19b8d5 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/design-spec/dependencies.json
+++ b/server/sonar-web/src/test/json/design-spec/dependencies.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/design-spec/resources.json b/server/sonar-web/src/test/json/design-spec/resources.json
index 3d06975ac57..3d06975ac57 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/design-spec/resources.json
+++ b/server/sonar-web/src/test/json/design-spec/resources.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/app.json b/server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/app.json
index 1006684e0c9..1006684e0c9 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/app.json
+++ b/server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/components-app.json b/server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/components-app.json
index 61afe8a34c8..61afe8a34c8 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/components-app.json
+++ b/server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/components-app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/lines.json b/server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/lines.json
index cd2053d91d6..cd2053d91d6 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/lines.json
+++ b/server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/lines.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/search.json b/server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/search.json
index 655e7492bd7..655e7492bd7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/search.json
+++ b/server/sonar-web/src/test/json/issues-page-should-open-issue-permalink/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/app.json b/server/sonar-web/src/test/json/issues-spec/app.json
index 604ef7c79f1..604ef7c79f1 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/app.json
+++ b/server/sonar-web/src/test/json/issues-spec/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/file-level/components-app.json b/server/sonar-web/src/test/json/issues-spec/file-level/components-app.json
index 537dd0787a8..537dd0787a8 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/file-level/components-app.json
+++ b/server/sonar-web/src/test/json/issues-spec/file-level/components-app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/file-level/lines.json b/server/sonar-web/src/test/json/issues-spec/file-level/lines.json
index 18a670b8522..18a670b8522 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/file-level/lines.json
+++ b/server/sonar-web/src/test/json/issues-spec/file-level/lines.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/file-level/search.json b/server/sonar-web/src/test/json/issues-spec/file-level/search.json
index 5ea06f0c717..5ea06f0c717 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/file-level/search.json
+++ b/server/sonar-web/src/test/json/issues-spec/file-level/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/search-reopened.json b/server/sonar-web/src/test/json/issues-spec/search-reopened.json
index efd73bce04a..efd73bce04a 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/search-reopened.json
+++ b/server/sonar-web/src/test/json/issues-spec/search-reopened.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/search-with-tags.json b/server/sonar-web/src/test/json/issues-spec/search-with-tags.json
index 442b1de359a..442b1de359a 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/search-with-tags.json
+++ b/server/sonar-web/src/test/json/issues-spec/search-with-tags.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/search.json b/server/sonar-web/src/test/json/issues-spec/search.json
index 3dbc631468b..3dbc631468b 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/search.json
+++ b/server/sonar-web/src/test/json/issues-spec/search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show-open.json b/server/sonar-web/src/test/json/issues-spec/show-open.json
index 071d6bde7c4..071d6bde7c4 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show-open.json
+++ b/server/sonar-web/src/test/json/issues-spec/show-open.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show-resolved.json b/server/sonar-web/src/test/json/issues-spec/show-resolved.json
index f4eab749601..f4eab749601 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show-resolved.json
+++ b/server/sonar-web/src/test/json/issues-spec/show-resolved.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show-with-tags.json b/server/sonar-web/src/test/json/issues-spec/show-with-tags.json
index 6eb9475a066..6eb9475a066 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show-with-tags.json
+++ b/server/sonar-web/src/test/json/issues-spec/show-with-tags.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show.json b/server/sonar-web/src/test/json/issues-spec/show.json
index c125f5f96c2..c125f5f96c2 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/show.json
+++ b/server/sonar-web/src/test/json/issues-spec/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/tags-modified.json b/server/sonar-web/src/test/json/issues-spec/tags-modified.json
index d1b53890ee3..d1b53890ee3 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/tags-modified.json
+++ b/server/sonar-web/src/test/json/issues-spec/tags-modified.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/tags.json b/server/sonar-web/src/test/json/issues-spec/tags.json
index af6bc92e0b4..af6bc92e0b4 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-spec/tags.json
+++ b/server/sonar-web/src/test/json/issues-spec/tags.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec/app.json b/server/sonar-web/src/test/json/quality-gates-spec/app.json
index 6a38a3ed8b5..6a38a3ed8b5 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec/app.json
+++ b/server/sonar-web/src/test/json/quality-gates-spec/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec/list.json b/server/sonar-web/src/test/json/quality-gates-spec/list.json
index 9d7ac911b05..9d7ac911b05 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec/list.json
+++ b/server/sonar-web/src/test/json/quality-gates-spec/list.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec/show.json b/server/sonar-web/src/test/json/quality-gates-spec/show.json
index bc36acb897e..bc36acb897e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/quality-gates-spec/show.json
+++ b/server/sonar-web/src/test/json/quality-gates-spec/show.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/api-rules-search.json b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/api-rules-search.json
index 9a176d3e06a..9a176d3e06a 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/api-rules-search.json
+++ b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/api-rules-search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/app.json b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/app.json
index dd6a3fb900f..dd6a3fb900f 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/app.json
+++ b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/create-issue.json b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/create-issue.json
index db69ef34a93..db69ef34a93 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/create-issue.json
+++ b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/create-issue.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/issues.json b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/issues.json
index 0b1601191ef..0b1601191ef 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/issues.json
+++ b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/issues.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/lines.json b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/lines.json
index 2983d8e4728..2983d8e4728 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/lines.json
+++ b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/lines.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-not-show-source-if-no-permission/api-components-app.json b/server/sonar-web/src/test/json/source-viewer-should-not-show-source-if-no-permission/api-components-app.json
index db4620fbc23..db4620fbc23 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-not-show-source-if-no-permission/api-components-app.json
+++ b/server/sonar-web/src/test/json/source-viewer-should-not-show-source-if-no-permission/api-components-app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-not-show-source-if-no-permission/api-issues-search.json b/server/sonar-web/src/test/json/source-viewer-should-not-show-source-if-no-permission/api-issues-search.json
index 73d6a9fcf3d..73d6a9fcf3d 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-not-show-source-if-no-permission/api-issues-search.json
+++ b/server/sonar-web/src/test/json/source-viewer-should-not-show-source-if-no-permission/api-issues-search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window/api-components-app.json b/server/sonar-web/src/test/json/source-viewer-should-open-in-new-window/api-components-app.json
index 5af670f2d91..5af670f2d91 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window/api-components-app.json
+++ b/server/sonar-web/src/test/json/source-viewer-should-open-in-new-window/api-components-app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window/api-issues-search.json b/server/sonar-web/src/test/json/source-viewer-should-open-in-new-window/api-issues-search.json
index 73d6a9fcf3d..73d6a9fcf3d 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window/api-issues-search.json
+++ b/server/sonar-web/src/test/json/source-viewer-should-open-in-new-window/api-issues-search.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window/api-sources-lines.json b/server/sonar-web/src/test/json/source-viewer-should-open-in-new-window/api-sources-lines.json
index b095d82408f..b095d82408f 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-should-open-in-new-window/api-sources-lines.json
+++ b/server/sonar-web/src/test/json/source-viewer-should-open-in-new-window/api-sources-lines.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/app-not-logged-in.json b/server/sonar-web/src/test/json/source-viewer-spec/app-not-logged-in.json
index e8b7516ee3c..e8b7516ee3c 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/app-not-logged-in.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/app-not-logged-in.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/app.json b/server/sonar-web/src/test/json/source-viewer-spec/app.json
index dd6a3fb900f..dd6a3fb900f 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/app.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/coverage.json b/server/sonar-web/src/test/json/source-viewer-spec/coverage.json
index ace41da645e..ace41da645e 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/coverage.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/coverage.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/cross-project-duplications.json b/server/sonar-web/src/test/json/source-viewer-spec/cross-project-duplications.json
index cd445d5f5b2..cd445d5f5b2 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/cross-project-duplications.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/cross-project-duplications.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/duplications-in-deleted-files.json b/server/sonar-web/src/test/json/source-viewer-spec/duplications-in-deleted-files.json
index 9de23d1ce7d..9de23d1ce7d 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/duplications-in-deleted-files.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/duplications-in-deleted-files.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/duplications.json b/server/sonar-web/src/test/json/source-viewer-spec/duplications.json
index f77e92bef26..f77e92bef26 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/duplications.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/duplications.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/issues.json b/server/sonar-web/src/test/json/source-viewer-spec/issues.json
index 0b1601191ef..0b1601191ef 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/issues.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/issues.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/lines.json b/server/sonar-web/src/test/json/source-viewer-spec/lines.json
index e33d02b2465..e33d02b2465 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-create-manual-issue/lines.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/lines.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/resources-without-ncloc-data.json b/server/sonar-web/src/test/json/source-viewer-spec/resources-without-ncloc-data.json
index dfbacdf7b28..dfbacdf7b28 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/resources-without-ncloc-data.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/resources-without-ncloc-data.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/resources.json b/server/sonar-web/src/test/json/source-viewer-spec/resources.json
index 415718c7cd5..415718c7cd5 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/resources.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/resources.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/scm.json b/server/sonar-web/src/test/json/source-viewer-spec/scm.json
index ff89c9856ca..ff89c9856ca 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/scm.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/scm.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/source.json b/server/sonar-web/src/test/json/source-viewer-spec/source.json
index 1b32224e6a7..1b32224e6a7 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/source.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/source.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/test-cases.json b/server/sonar-web/src/test/json/source-viewer-spec/test-cases.json
index 233229a803b..233229a803b 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/test-cases.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/test-cases.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/tests/app.json b/server/sonar-web/src/test/json/source-viewer-spec/tests/app.json
index 873632ffd3b..873632ffd3b 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/tests/app.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/tests/app.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/tests/lines.json b/server/sonar-web/src/test/json/source-viewer-spec/tests/lines.json
index becc8c92f69..becc8c92f69 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/tests/lines.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/tests/lines.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/tests/tests.json b/server/sonar-web/src/test/json/source-viewer-spec/tests/tests.json
index 421cbb391b1..421cbb391b1 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/source-viewer-spec/tests/tests.json
+++ b/server/sonar-web/src/test/json/source-viewer-spec/tests/tests.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/treemap-spec/treemap-resources.json b/server/sonar-web/src/test/json/treemap-spec/treemap-resources.json
index bc1c20845fa..bc1c20845fa 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/treemap-spec/treemap-resources.json
+++ b/server/sonar-web/src/test/json/treemap-spec/treemap-resources.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/treemap-spec/treemap.json b/server/sonar-web/src/test/json/treemap-spec/treemap.json
index 1125b3a7cf4..1125b3a7cf4 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/treemap-spec/treemap.json
+++ b/server/sonar-web/src/test/json/treemap-spec/treemap.json
diff --git a/server/sonar-web/src/main/js/tests/e2e/lib.js b/server/sonar-web/src/test/lib.js
index 2c66e0e618a..ed8b46791d4 100644
--- a/server/sonar-web/src/main/js/tests/e2e/lib.js
+++ b/server/sonar-web/src/test/lib.js
@@ -26,6 +26,7 @@ var getPort = function () {
};
var BASE_URL = 'http://localhost:' + getPort() + '/pages/',
+ BASE_ROOT_URL = 'http://localhost:' + getPort(),
WINDOW_WIDTH = 1200,
WINDOW_HEIGHT = 800;
@@ -54,7 +55,9 @@ exports.changeWorkingDirectory = function (dir) {
var currentFile = commandLineArgs[4];
var curFilePath = fs.absolute(currentFile).split(fs.separator);
if (curFilePath.length > 1) {
- curFilePath.pop(); // PhantomJS does not have an equivalent path.baseName()-like method
+ curFilePath.pop(); // test name
+ curFilePath.pop(); // "js" dir
+ curFilePath.push('json');
curFilePath.push(dir);
fs.changeWorkingDirectory(curFilePath.join(fs.separator));
}
@@ -118,6 +121,11 @@ exports.buildUrl = function (urlTail) {
};
+exports.buildRootUrl = function (urlTail) {
+ return patchWithTimestamp(BASE_ROOT_URL + urlTail);
+};
+
+
exports.setDefaultViewport = function () {
casper.viewport(WINDOW_WIDTH, WINDOW_HEIGHT);
};
@@ -156,3 +164,17 @@ exports.assertLinkHref = function assertElementCount(selector, href, message) {
}
});
};
+
+
+exports.sendCoverage = function () {
+ return casper.evaluate(function () {
+ console.log(Object.keys(window.__coverage__));
+ jQuery.ajax({
+ type: 'POST',
+ url: '/coverage/client',
+ data: JSON.stringify(window.__coverage__),
+ processData: false,
+ contentType: 'application/json; charset=UTF-8'
+ });
+ });
+};
diff --git a/server/sonar-web/src/test/server-coverage.js b/server/sonar-web/src/test/server-coverage.js
new file mode 100644
index 00000000000..99394a28421
--- /dev/null
+++ b/server/sonar-web/src/test/server-coverage.js
@@ -0,0 +1,30 @@
+var express = require('express'),
+ path = require('path'),
+ errorhandler = require('errorhandler'),
+ serveStatic = require('serve-static'),
+ im = require('istanbul-middleware');
+
+var staticPath = path.join(__dirname, '../main/webapp');
+im.hookLoader(staticPath);
+
+var app = express();
+
+app.set('views', __dirname + '/views');
+app.set('view engine', 'jade');
+
+app.use(errorhandler({ dumpExceptions: true, showStack: true }));
+
+app.use(im.createClientHandler(staticPath));
+app.use('/coverage', im.createHandler());
+app.use('/', serveStatic(staticPath));
+
+app.get('/pages/:page', function (req, res) {
+ res.render(req.param('page'));
+});
+
+// Get the port from environment variables
+var port = process.env.PORT || 8000;
+
+app.listen(port);
+
+console.log('Server running on port %d', port);
diff --git a/server/sonar-web/src/main/js/tests/e2e/server.js b/server/sonar-web/src/test/server.js
index 14acf2fc602..fc0caa73758 100644
--- a/server/sonar-web/src/main/js/tests/e2e/server.js
+++ b/server/sonar-web/src/test/server.js
@@ -20,16 +20,18 @@
var express = require('express'),
path = require('path'),
errorhandler = require('errorhandler'),
- serveStatic = require('serve-static'),
- app = express();
+ serveStatic = require('serve-static');
+
+var staticPath = path.join(__dirname, '../main/webapp');
+
+var app = express();
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(errorhandler({ dumpExceptions: true, showStack: true }));
-// Serve static files
-app.use('/', serveStatic(path.join(__dirname, '../../../webapp')));
+app.use('/', serveStatic(staticPath));
app.get('/pages/:page', function (req, res) {
res.render(req.param('page'));
diff --git a/server/sonar-web/src/main/js/tests/e2e/views/coding-rules.jade b/server/sonar-web/src/test/views/coding-rules.jade
index a56d076e719..f5c7ef3adb8 100644
--- a/server/sonar-web/src/main/js/tests/e2e/views/coding-rules.jade
+++ b/server/sonar-web/src/test/views/coding-rules.jade
@@ -1,4 +1,4 @@
-extends ./layouts/main
+extends layouts/main
block header
script(src='../js/require.js')
diff --git a/server/sonar-web/src/main/js/tests/e2e/views/design.jade b/server/sonar-web/src/test/views/design.jade
index 9132d07e7e4..ab71d7af887 100644
--- a/server/sonar-web/src/main/js/tests/e2e/views/design.jade
+++ b/server/sonar-web/src/test/views/design.jade
@@ -1,4 +1,4 @@
-extends ./layouts/main
+extends layouts/main
block header
script(src='../js/require.js')
diff --git a/server/sonar-web/src/main/js/tests/e2e/views/issues.jade b/server/sonar-web/src/test/views/issues.jade
index c23c98a54f9..4a9ba14f681 100644
--- a/server/sonar-web/src/main/js/tests/e2e/views/issues.jade
+++ b/server/sonar-web/src/test/views/issues.jade
@@ -1,4 +1,4 @@
-extends ./layouts/main
+extends layouts/main
block header
script(src='../js/require.js')
diff --git a/server/sonar-web/src/test/views/layouts/main.jade b/server/sonar-web/src/test/views/layouts/main.jade
new file mode 100644
index 00000000000..59aafece770
--- /dev/null
+++ b/server/sonar-web/src/test/views/layouts/main.jade
@@ -0,0 +1,67 @@
+html
+ head
+ meta(http-equiv='Content-Type', content='text/html; charset=UTF-8')
+ link(href='/css/sonar.css', rel='stylesheet', media='all')
+
+ script(src='/js/translate.js')
+ script(src='/js/third-party/jquery.js')
+ script(src='/js/third-party/jquery-ui.js')
+ script(src='/js/third-party/d3.js')
+ script(src='/js/third-party/latinize.js')
+ script(src='/js/third-party/underscore.js')
+ script(src='/js/third-party/backbone.js')
+ script(src='/js/third-party/backbone.marionette.js')
+ script(src='/js/third-party/handlebars.js')
+ script(src='/js/third-party/underscore.js')
+ script(src='/js/third-party/select2.js')
+ script(src='/js/third-party/keymaster.js')
+ script(src='/js/third-party/moment.js')
+ script(src='/js/third-party/numeral.js')
+ script(src='/js/third-party/numeral-languages.js')
+ script(src='/js/third-party/bootstrap/tooltip.js')
+ script(src='/js/third-party/bootstrap/dropdown.js')
+ script(src='/js/select2-jquery-ui-fix.js')
+ script(src='/js/widgets/base.js')
+ script(src='/js/widgets/widget.js')
+ script(src='/js/widgets/bubble-chart.js')
+ script(src='/js/widgets/timeline.js')
+ script(src='/js/widgets/stack-area.js')
+ script(src='/js/widgets/pie-chart.js')
+ script(src='/js/widgets/histogram.js')
+ script(src='/js/widgets/word-cloud.js')
+ script(src='/js/widgets/tag-cloud.js')
+ script(src='/js/widgets/treemap.js')
+ script(src='/js/graphics/pie-chart.js')
+ script(src='/js/graphics/timeline.js')
+ script(src='/js/graphics/barchart.js')
+ script(src='/js/sortable.js')
+ script(src='/js/common/inputs.js')
+ script(src='/js/common/dialogs.js')
+ script(src='/js/common/processes.js')
+ script(src='/js/common/jquery-isolated-scroll.js')
+ script(src='/js/common/handlebars-extensions.js')
+ script(src='/js/application.js')
+ script(src='/js/csv.js')
+ script(src='/js/dashboard.js')
+ script(src='/js/recent-history.js')
+
+ script(src='/js/third-party/jquery.mockjax.js')
+ script.
+ var baseUrl = '';
+ var $j = jQuery.noConflict();
+ window.suppressTranslationWarnings = true;
+ jQuery.mockjaxSettings.contentType = 'text/json';
+ jQuery.mockjaxSettings.responseTime = 50;
+ $j(document).ready(function () { $j('.open-modal').modal(); });
+ window.waitForMocks = function (app) {
+ var x = setInterval(function () {
+ jQuery.get('/api/l10n/index').done(function () {
+ clearInterval(x);
+ require([app]);
+ });
+ }, 500);
+ }
+ block header
+ body
+ #body
+ block body
diff --git a/server/sonar-web/src/main/js/tests/e2e/views/quality-gates.jade b/server/sonar-web/src/test/views/quality-gates.jade
index ac1a4871c1b..ccee40be0d0 100644
--- a/server/sonar-web/src/main/js/tests/e2e/views/quality-gates.jade
+++ b/server/sonar-web/src/test/views/quality-gates.jade
@@ -1,4 +1,4 @@
-extends ./layouts/main
+extends layouts/main
block header
script(src='../js/require.js')
diff --git a/server/sonar-web/src/main/js/tests/e2e/views/source-viewer.jade b/server/sonar-web/src/test/views/source-viewer.jade
index 03903d8f854..9e2c62c3a1d 100644
--- a/server/sonar-web/src/main/js/tests/e2e/views/source-viewer.jade
+++ b/server/sonar-web/src/test/views/source-viewer.jade
@@ -1,4 +1,4 @@
-extends ./layouts/main
+extends layouts/main
block header
script(src='../js/require.js')
diff --git a/server/sonar-web/src/main/js/tests/e2e/views/treemap.jade b/server/sonar-web/src/test/views/treemap.jade
index 3f6fbac8ae9..09dc4fb950b 100644
--- a/server/sonar-web/src/main/js/tests/e2e/views/treemap.jade
+++ b/server/sonar-web/src/test/views/treemap.jade
@@ -1,4 +1,4 @@
-extends ./layouts/main
+extends layouts/main
block body
#container