diff options
Diffstat (limited to 'server/sonar-web/src')
-rw-r--r-- | server/sonar-web/src/main/hbs/coding-rules/facets/coding-rules-characteristic-facet.hbs | 18 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/coding-rules/rule/coding-rules-rule-issues.hbs | 2 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/source-viewer/source-viewer-coverage-popup.hbs | 4 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/source-viewer/source-viewer-duplication-popup.hbs | 2 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/source-viewer/source-viewer.hbs | 19 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/widgets/_widget-issue-filter-total.hbs | 11 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/widgets/widget-issue-filter-action-plans.hbs | 22 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/widgets/widget-issue-filter-assignees.hbs | 22 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/widgets/widget-issue-filter-resolutions.hbs | 22 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/widgets/widget-issue-filter-severities.hbs | 19 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/widgets/widget-issue-filter-statuses.hbs | 19 | ||||
-rw-r--r-- | server/sonar-web/src/main/hbs/widgets/widget-issue-filter.hbs | 18 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/application.js | 33 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/coding-rules/facets/characteristic-facet.js | 37 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/coding-rules/models/state.js | 4 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/common/handlebars-extensions.js | 33 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/nav/search-view.js | 2 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/source-viewer/popups/coverage-popup.js | 11 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/source-viewer/source.js | 15 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/source-viewer/viewer.js | 48 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/tests/e2e/views/layouts/main.jade | 26 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/widgets/bubble-chart.js | 79 | ||||
-rw-r--r-- | server/sonar-web/src/main/js/widgets/issue-filter.js | 296 | ||||
-rw-r--r-- | server/sonar-web/src/main/less/init/misc.less | 16 | ||||
-rw-r--r-- | server/sonar-web/src/main/less/init/tables.less | 3 | ||||
-rw-r--r-- | server/sonar-web/src/main/less/pages/dashboard.less | 16 | ||||
-rw-r--r-- | server/sonar-web/src/main/less/style.less | 3 | ||||
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb | 3 | ||||
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/app/helpers/application_helper.rb | 4 | ||||
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/app/helpers/properties_helper.rb | 4 | ||||
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/app/models/project_measure.rb | 2 | ||||
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/app/models/property_type.rb | 1 | ||||
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/app/views/profiles/changelog.html.erb | 8 | ||||
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/app/views/settings/_type_USER_LOGIN.html.erb | 5 | ||||
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/db/migrate/796_add_uuid_to_analysis_reports.rb | 32 | ||||
-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/global-issue-filter-widget.js | 853 | ||||
-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/project-issue-filter-widget.js | 221 | ||||
-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-coverage.js | 66 | ||||
-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-duplications.js | 70 | ||||
-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-scm.js | 71 | ||||
-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/global-issues-filter-widget/all-issues-by-resolution.json | 32 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/all-issues-by-status.json | 32 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/red-issues-by-severity.json | 32 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-action-plan.json | 63 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-assignee.json | 48 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-date-limited.json | 24 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-date.json | 32 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-language.json | 46 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-project.json | 62 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-resolution.json | 32 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-rule.json | 186 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-severity.json | 32 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-unassigned-issues-by-assignee.json | 48 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-unplanned-issues-by-action-plan.json | 63 | ||||
-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/project-issues-filter-widget/unresolved-issues-by-date.json | 32 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-severity-with-differential-period.json | 32 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-severity.json | 32 | ||||
-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-coverage/app.json | 19 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-coverage/issues.json | 14 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-coverage/lines.json | 18 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-coverage/test-cases.json | 17 | ||||
-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-create-manual-issue/lines.json) | 420 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-duplications/app.json | 19 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-duplications/duplications.json | 41 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-duplications/issues.json | 14 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-duplications/lines.json | 22 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-scm/app.json | 19 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-scm/issues.json | 14 | ||||
-rw-r--r-- | server/sonar-web/src/test/json/source-viewer-scm/lines.json | 11 | ||||
-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-spec/lines.json) | 420 | ||||
-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) | 23 | ||||
-rw-r--r-- | server/sonar-web/src/test/server-coverage.js | 30 | ||||
-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/issue-filter-widget.jade | 9 | ||||
-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.jade | 67 | ||||
-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 |
225 files changed, 3737 insertions, 593 deletions
diff --git a/server/sonar-web/src/main/hbs/coding-rules/facets/coding-rules-characteristic-facet.hbs b/server/sonar-web/src/main/hbs/coding-rules/facets/coding-rules-characteristic-facet.hbs index 1742660c33a..645205b0c5c 100644 --- a/server/sonar-web/src/main/hbs/coding-rules/facets/coding-rules-characteristic-facet.hbs +++ b/server/sonar-web/src/main/hbs/coding-rules/facets/coding-rules-characteristic-facet.hbs @@ -2,10 +2,18 @@ <div class="search-navigator-facet-list"> {{#each values}} - <a class="facet search-navigator-facet {{#if parent}}search-navigator-facet-indent{{/if}} js-facet" - data-value="{{val}}" title="{{default label val}}"> - <span class="facet-name">{{default label val}}</span> - <span class="facet-stat">{{numberShort count}}</span> - </a> + {{#eq val 'NONE'}} + <a class="facet search-navigator-facet js-facet" data-empty-characteristic + title="{{t 'coding_rules.noncharacterized'}}"> + <span class="facet-name">{{t 'coding_rules.noncharacterized'}}</span> + <span class="facet-stat">{{numberShort count}}</span> + </a> + {{else}} + <a class="facet search-navigator-facet {{#if parent}}search-navigator-facet-indent{{/if}} js-facet" + data-value="{{val}}" title="{{default label val}}"> + <span class="facet-name">{{default label val}}</span> + <span class="facet-stat">{{numberShort count}}</span> + </a> + {{/eq}} {{/each}} </div> diff --git a/server/sonar-web/src/main/hbs/coding-rules/rule/coding-rules-rule-issues.hbs b/server/sonar-web/src/main/hbs/coding-rules/rule/coding-rules-rule-issues.hbs index e60656f4dd0..da9a5336d36 100644 --- a/server/sonar-web/src/main/hbs/coding-rules/rule/coding-rules-rule-issues.hbs +++ b/server/sonar-web/src/main/hbs/coding-rules/rule/coding-rules-rule-issues.hbs @@ -1,7 +1,7 @@ <div class="coding-rule-section-separator"></div> <h3 class="coding-rules-detail-title"> - {{t 'coding_rules.issues'}} (<a class="js-rule-issues" href="{{baseSearchUrl}}" target="_blank">{{total}}</a>) + {{t 'coding_rules.issues'}} (<a class="js-rule-issues" href="{{baseSearchUrl}}">{{total}}</a>) </h3> {{#notEmpty projects}} diff --git a/server/sonar-web/src/main/hbs/source-viewer/source-viewer-coverage-popup.hbs b/server/sonar-web/src/main/hbs/source-viewer/source-viewer-coverage-popup.hbs index 1512a7e0b10..c30e1f500a9 100644 --- a/server/sonar-web/src/main/hbs/source-viewer/source-viewer-coverage-popup.hbs +++ b/server/sonar-web/src/main/hbs/source-viewer/source-viewer-coverage-popup.hbs @@ -1,12 +1,12 @@ <div class="bubble-popup-container"> <div class="bubble-popup-title"> {{#if row.lineHits}} - {{t 'source_viewer.covered'}} + {{t 'source_viewer' tests 'covered'}} {{#if row.conditions}} ({{default row.coveredConditions 0}} of {{row.conditions}} {{t 'source_viewer.conditions'}}) {{/if}} {{else}} - {{t 'source_viewer.not_covered'}} + {{t 'source_viewer' tests 'not_covered'}} {{#if row.conditions}} ({{row.conditions}} {{t 'source_viewer.conditions'}}) {{/if}} diff --git a/server/sonar-web/src/main/hbs/source-viewer/source-viewer-duplication-popup.hbs b/server/sonar-web/src/main/hbs/source-viewer/source-viewer-duplication-popup.hbs index 673fabdc7d2..d3553ed3e58 100644 --- a/server/sonar-web/src/main/hbs/source-viewer/source-viewer-duplication-popup.hbs +++ b/server/sonar-web/src/main/hbs/source-viewer/source-viewer-duplication-popup.hbs @@ -28,7 +28,7 @@ Lines: {{#joinEach blocks ','}} <a class="link-action" data-uuid="{{../file.uuid}}" data-line="{{from}}"> - {{from}} – {{sum from size}} + {{from}} – {{sum from size -1}} </a> {{/joinEach}} </div> diff --git a/server/sonar-web/src/main/hbs/source-viewer/source-viewer.hbs b/server/sonar-web/src/main/hbs/source-viewer/source-viewer.hbs index 0f239f255df..843f5d004c2 100644 --- a/server/sonar-web/src/main/hbs/source-viewer/source-viewer.hbs +++ b/server/sonar-web/src/main/hbs/source-viewer/source-viewer.hbs @@ -17,10 +17,21 @@ {{/ifSCMChanged2}} </td> - <td class="source-meta source-line-coverage {{#notNull coverageStatus}}source-line-{{coverageStatus}}{{/notNull}}" - data-line-number="{{line}}" {{#notNull coverageStatus}}title="{{t 'source_viewer.tooltip' coverageStatus}}" data-placement="right" data-toggle="tooltip"{{/notNull}}> - <div class="source-line-bar"></div> - </td> + {{#if ../hasUTCoverage}} + <td class="source-meta source-line-coverage {{#notNull utCoverageStatus}}source-line-{{utCoverageStatus}}{{/notNull}}" + data-tests="ut" + data-line-number="{{line}}" {{#notNull utCoverageStatus}}title="{{t 'source_viewer.tooltip.ut' utCoverageStatus}}" data-placement="right" data-toggle="tooltip"{{/notNull}}> + <div class="source-line-bar"></div> + </td> + {{/if}} + + {{#if ../hasITCoverage}} + <td class="source-meta source-line-coverage {{#notNull itCoverageStatus}}source-line-{{itCoverageStatus}}{{/notNull}}" + data-tests="it" + data-line-number="{{line}}" {{#notNull itCoverageStatus}}title="{{t 'source_viewer.tooltip.it' itCoverageStatus}}" data-placement="right" data-toggle="tooltip"{{/notNull}}> + <div class="source-line-bar"></div> + </td> + {{/if}} {{#if ../hasDuplications}} <td class="source-meta source-line-duplications {{#if duplicated}}source-line-duplicated{{/if}}" diff --git a/server/sonar-web/src/main/hbs/widgets/_widget-issue-filter-total.hbs b/server/sonar-web/src/main/hbs/widgets/_widget-issue-filter-total.hbs new file mode 100644 index 00000000000..1619ed5ab8c --- /dev/null +++ b/server/sonar-web/src/main/hbs/widgets/_widget-issue-filter-total.hbs @@ -0,0 +1,11 @@ +<tr> + <td> + <a href="{{issueFilterTotalLink parsedQuery}}"><strong>{{t 'total'}}</strong></a> + </td> + <td class="text-right"><strong>{{#notNull periodDate}}+{{/notNull}}{{total}}</strong></td> + <td class="barchart"> + <div class="barchart" style="width: 100%;"> + <div style="width: 100%;"></div> + </div> + </td> +</tr> diff --git a/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-action-plans.hbs b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-action-plans.hbs new file mode 100644 index 00000000000..cec1a9a6748 --- /dev/null +++ b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-action-plans.hbs @@ -0,0 +1,22 @@ +<table class="data zebra"> + {{> '_widget-issue-filter-total'}} + {{#each items}} + <tr> + <td> + {{#eq val ''}} + <a href="{{issueFilterItemLink ../../parsedQuery 'planned' 'false'}}">{{t 'issue.unplanned'}}</a> + {{else}} + <a href="{{issueFilterItemLink ../../parsedQuery 'actionPlans' val}}">{{default label val}}</a> + {{/eq}} + </td> + <td class="text-right nowrap"> + {{#notNull ../periodDate}}+{{/notNull}}{{numberShort count}} + </td> + <td class="barchart"> + <div class="barchart" style="width: 100%;"> + <div style="width: {{percent count ../total}};"></div> + </div> + </td> + </tr> + {{/each}} +</table> diff --git a/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-assignees.hbs b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-assignees.hbs new file mode 100644 index 00000000000..3e1add4abd2 --- /dev/null +++ b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-assignees.hbs @@ -0,0 +1,22 @@ +<table class="data zebra"> + {{> '_widget-issue-filter-total'}} + {{#each items}} + <tr> + <td> + {{#eq val ''}} + <a href="{{issueFilterItemLink ../../parsedQuery 'assigned' 'false'}}">{{t 'unassigned'}}</a> + {{else}} + <a href="{{issueFilterItemLink ../../parsedQuery 'assignees' val}}">{{default label val}}</a> + {{/eq}} + </td> + <td class="text-right nowrap"> + {{#notNull ../periodDate}}+{{/notNull}}{{numberShort count}} + </td> + <td class="barchart"> + <div class="barchart" style="width: 100%;"> + <div style="width: {{percent count ../total}};"></div> + </div> + </td> + </tr> + {{/each}} +</table> diff --git a/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-resolutions.hbs b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-resolutions.hbs new file mode 100644 index 00000000000..8c03461b619 --- /dev/null +++ b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-resolutions.hbs @@ -0,0 +1,22 @@ +<table class="data zebra"> + {{> '_widget-issue-filter-total'}} + {{#each items}} + <tr> + <td> + {{#eq val ''}} + <a href="{{issueFilterItemLink ../../parsedQuery 'resolved' 'false'}}">{{t 'unresolved'}}</a> + {{else}} + <a href="{{issueFilterItemLink ../../parsedQuery 'resolutions' val}}">{{t 'issue.resolution' val}}</a> + {{/eq}} + </td> + <td class="text-right nowrap"> + {{#notNull ../periodDate}}+{{/notNull}}{{numberShort count}} + </td> + <td class="barchart"> + <div class="barchart" style="width: 100%;"> + <div style="width: {{percent count ../total}};"></div> + </div> + </td> + </tr> + {{/each}} +</table> diff --git a/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-severities.hbs b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-severities.hbs new file mode 100644 index 00000000000..98b255ce640 --- /dev/null +++ b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-severities.hbs @@ -0,0 +1,19 @@ +<table class="data zebra"> + <tr> + <td> + <a href="{{issueFilterTotalLink parsedQuery}}"><strong>{{t 'total'}}</strong></a> + </td> + <td class="text-right"><strong>{{#notNull periodDate}}+{{/notNull}}{{total}}</strong></td> + </tr> + {{#each items}} + <tr> + <td> + {{severityIcon val}} + <a href="{{issueFilterItemLink ../parsedQuery ../property val}}">{{t 'severity' val}}</a> + </td> + <td class="text-right nowrap"> + {{#notNull ../periodDate}}+{{/notNull}}{{numberShort count}} + </td> + </tr> + {{/each}} +</table> diff --git a/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-statuses.hbs b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-statuses.hbs new file mode 100644 index 00000000000..b27fc32964f --- /dev/null +++ b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter-statuses.hbs @@ -0,0 +1,19 @@ +<table class="data zebra"> + {{> '_widget-issue-filter-total'}} + {{#each items}} + <tr> + <td> + {{statusIcon val}} + <a href="{{issueFilterItemLink ../parsedQuery ../property val}}">{{t 'issue.status' val}}</a> + </td> + <td class="text-right nowrap"> + {{#notNull ../periodDate}}+{{/notNull}}{{numberShort count}} + </td> + <td class="barchart"> + <div class="barchart" style="width: 100%;"> + <div style="width: {{percent count ../total}};"></div> + </div> + </td> + </tr> + {{/each}} +</table> diff --git a/server/sonar-web/src/main/hbs/widgets/widget-issue-filter.hbs b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter.hbs new file mode 100644 index 00000000000..ffb3e072557 --- /dev/null +++ b/server/sonar-web/src/main/hbs/widgets/widget-issue-filter.hbs @@ -0,0 +1,18 @@ +<table class="data zebra"> + {{> '_widget-issue-filter-total'}} + {{#each items}} + <tr> + <td> + <a href="{{searchLink}}">{{default label val}}</a> + </td> + <td class="text-right nowrap"> + {{#notNull ../periodDate}}+{{/notNull}}{{numberShort count}} + </td> + <td class="barchart"> + <div class="barchart" style="width: 100%;"> + <div style="width: {{percent count ../total}};"></div> + </div> + </td> + </tr> + {{/each}} +</table> diff --git a/server/sonar-web/src/main/js/application.js b/server/sonar-web/src/main/js/application.js index 9362987d90b..de273f721dd 100644 --- a/server/sonar-web/src/main/js/application.js +++ b/server/sonar-web/src/main/js/application.js @@ -333,6 +333,39 @@ function openPopup(url, popupId) { } +function collapsedDirFromPath (path) { + var limit = 30; + if (typeof path === 'string') { + var tokens = _.initial(path.split('/')); + if (tokens.length > 2) { + var head = _.first(tokens), + tail = _.last(tokens), + middle = _.initial(_.rest(tokens)), + cut = false; + while (middle.join().length > limit && middle.length > 0) { + middle.shift(); + cut = true; + } + var body = [].concat(head, cut ? ['...'] : [], middle, tail); + return body.join('/') + '/'; + } else { + return tokens.join('/') + '/'; + } + } else { + return null; + } +} + +function fileFromPath (path) { + if (typeof path === 'string') { + var tokens = path.split('/'); + return _.last(tokens); + } else { + return null; + } +} + + jQuery(function () { // Process login link in order to add the anchor diff --git a/server/sonar-web/src/main/js/coding-rules/facets/characteristic-facet.js b/server/sonar-web/src/main/js/coding-rules/facets/characteristic-facet.js index 94a954abc7a..5275d260317 100644 --- a/server/sonar-web/src/main/js/coding-rules/facets/characteristic-facet.js +++ b/server/sonar-web/src/main/js/coding-rules/facets/characteristic-facet.js @@ -22,9 +22,44 @@ define([ 'templates/coding-rules' ], function (BaseFacet) { + var $ = jQuery; + return BaseFacet.extend({ template: Templates['coding-rules-characteristic-facet'], + onRender: function () { + BaseFacet.prototype.onRender.apply(this, arguments); + var value = this.options.app.state.get('query').has_debt_characteristic; + if (value != null && ('' + value === 'false')) { + this.$('.js-facet').filter('[data-empty-characteristic]').addClass('active'); + } + }, + + toggleFacet: function (e) { + var noneCharacteristic = $(e.currentTarget).is('[data-empty-characteristic]'), + property = this.model.get('property'), + obj = {}; + $(e.currentTarget).toggleClass('active'); + if (noneCharacteristic) { + var checked = $(e.currentTarget).is('.active'); + obj.has_debt_characteristic = checked ? 'false' : null; + obj[property] = null; + } else { + obj.has_debt_characteristic = null; + obj[property] = this.getValue(); + } + console.log(obj); + this.options.app.state.updateFilter(obj); + }, + + disable: function () { + var property = this.model.get('property'), + obj = {}; + obj.has_debt_characteristic = null; + obj[property] = null; + this.options.app.state.updateFilter(obj); + }, + getValues: function () { var values = this.model.getValues(), characteristics = this.options.app.characteristics; @@ -32,8 +67,6 @@ define([ var ch = _.findWhere(characteristics, { key: value.val }); if (ch != null) { _.extend(value, ch, { label: ch.name }); - } else { - _.extend(value, { label: t('coding_rules.noncharacterized') }); } return value; }); diff --git a/server/sonar-web/src/main/js/coding-rules/models/state.js b/server/sonar-web/src/main/js/coding-rules/models/state.js index 050a7ff58b3..97720d9d5de 100644 --- a/server/sonar-web/src/main/js/coding-rules/models/state.js +++ b/server/sonar-web/src/main/js/coding-rules/models/state.js @@ -30,7 +30,9 @@ define([ allFacets: ['q', 'rule_key', 'languages', 'tags', 'repositories', 'debt_characteristics', 'severities', 'statuses', 'available_since', 'is_template', 'qprofile', 'inheritance', 'active_severities'], facetsFromServer: ['languages', 'repositories', 'tags', 'severities', 'statuses', 'debt_characteristics'], - transform: {} + transform: { + 'has_debt_characteristic': 'debt_characteristics' + } } }); diff --git a/server/sonar-web/src/main/js/common/handlebars-extensions.js b/server/sonar-web/src/main/js/common/handlebars-extensions.js index 36f89fd0214..260396cc73e 100644 --- a/server/sonar-web/src/main/js/common/handlebars-extensions.js +++ b/server/sonar-web/src/main/js/common/handlebars-extensions.js @@ -259,7 +259,10 @@ }); Handlebars.registerHelper('sum', function(a, b) { - return a + b; + var args = Array.prototype.slice.call(arguments, 0, -1); + return args.reduce(function (p, c) { + return p + +c; + }, 0); }); Handlebars.registerHelper('dashboardUrl', function(componentKey, componentQualifier) { @@ -473,35 +476,11 @@ }); Handlebars.registerHelper('collapsedDirFromPath', function (path) { - var limit = 30; - if (typeof path === 'string') { - var tokens = _.initial(path.split('/')); - if (tokens.length > 2) { - var head = _.first(tokens), - tail = _.last(tokens), - middle = _.initial(_.rest(tokens)), - cut = false; - while (middle.join().length > limit && middle.length > 0) { - middle.shift(); - cut = true; - } - var body = [].concat(head, cut ? ['...'] : [], middle, tail); - return body.join('/') + '/'; - } else { - return tokens.join('/') + '/'; - } - } else { - return null; - } + return collapsedDirFromPath(path); }); Handlebars.registerHelper('fileFromPath', function (path) { - if (typeof path === 'string') { - var tokens = path.split('/'); - return _.last(tokens); - } else { - return null; - } + return fileFromPath(path); }); Handlebars.registerHelper('repeat', function (number, options) { diff --git a/server/sonar-web/src/main/js/nav/search-view.js b/server/sonar-web/src/main/js/nav/search-view.js index 9c74292b56f..d89942bdbcf 100644 --- a/server/sonar-web/src/main/js/nav/search-view.js +++ b/server/sonar-web/src/main/js/nav/search-view.js @@ -129,7 +129,7 @@ define([ url: baseUrl + '/dashboard/index?id=' + encodeURIComponent(historyItem.key) + dashboardParameters(true), name: historyItem.name, q: historyItem.icon, - extra: index === 0 ? t('recent_history') : null + extra: index === 0 ? t('browsed_recently') : null }; }), qualifiers = this.model.get('qualifiers').map(function (q, index) { diff --git a/server/sonar-web/src/main/js/source-viewer/popups/coverage-popup.js b/server/sonar-web/src/main/js/source-viewer/popups/coverage-popup.js index cbc57a1eb0c..34f080e9655 100644 --- a/server/sonar-web/src/main/js/source-viewer/popups/coverage-popup.js +++ b/server/sonar-web/src/main/js/source-viewer/popups/coverage-popup.js @@ -46,7 +46,8 @@ define([ }, serializeData: function () { - var files = this.model.get('files'), + var row = this.options.row || {}, + files = this.model.get('files'), tests = _.groupBy(this.model.get('tests'), '_ref'), testFiles = _.map(tests, function (testSet, fileRef) { return { @@ -54,9 +55,15 @@ define([ tests: testSet }; }); + _.extend(row, { + lineHits: row[this.options.tests + 'LineHits'], + conditions: row[this.options.tests + 'Conditions'], + coveredConditions: row[this.options.tests + 'CoveredConditions'] + }); return { testFiles: testFiles, - row: this.options.row + tests: this.options.tests, + row: row }; } }); diff --git a/server/sonar-web/src/main/js/source-viewer/source.js b/server/sonar-web/src/main/js/source-viewer/source.js index 3db24bc9fb8..168a86bb9c2 100644 --- a/server/sonar-web/src/main/js/source-viewer/source.js +++ b/server/sonar-web/src/main/js/source-viewer/source.js @@ -26,6 +26,7 @@ define(function () { return { hasSource: false, hasCoverage: false, + hasITCoverage: false, hasDuplications: false, hasSCM: false, @@ -63,7 +64,7 @@ define(function () { d.blocks.forEach(function (b) { if (b._ref === '1') { var lineFrom = b.from, - lineTo = b.from + b.size; + lineTo = b.from + b.size - 1; if (line.line >= lineFrom && line.line <= lineTo) { duplicated = true; } @@ -88,6 +89,18 @@ define(function () { }); } this.set({ hasDuplications: hasDuplications }); + }, + + hasUTCoverage: function (source) { + return _.some(source, function (line) { + return line.utCoverageStatus != null; + }); + }, + + hasITCoverage: function (source) { + return _.some(source, function (line) { + return line.itCoverageStatus != null; + }); } }); diff --git a/server/sonar-web/src/main/js/source-viewer/viewer.js b/server/sonar-web/src/main/js/source-viewer/viewer.js index afa3169941b..d177c92d9a3 100644 --- a/server/sonar-web/src/main/js/source-viewer/viewer.js +++ b/server/sonar-web/src/main/js/source-viewer/viewer.js @@ -168,15 +168,29 @@ define([ }; }, - getCoverageStatus: function (row) { + getUTCoverageStatus: function (row) { var status = null; - if (row.lineHits > 0) { + if (row.utLineHits > 0) { status = 'partially-covered'; } - if (row.lineHits > 0 && row.conditions === row.coveredConditions) { + if (row.utLineHits > 0 && row.utConditions === row.utCoveredConditions) { status = 'covered'; } - if (row.lineHits === 0 || row.coveredConditions === 0) { + if (row.utLineHits === 0 || row.utCoveredConditions === 0) { + status = 'uncovered'; + } + return status; + }, + + getItCoverageStatus: function (row) { + var status = null; + if (row.itLineHits > 0) { + status = 'partially-covered'; + } + if (row.itLineHits > 0 && row.itConditions === row.itCoveredConditions) { + status = 'covered'; + } + if (row.itLineHits === 0 || row.itCoveredConditions === 0) { status = 'uncovered'; } return status; @@ -192,12 +206,17 @@ define([ source.unshift({line: 0}); } source = source.map(function (row) { - return _.extend(row, { coverageStatus: that.getCoverageStatus(row) }); + return _.extend(row, { + utCoverageStatus: that.getUTCoverageStatus(row), + itCoverageStatus: that.getItCoverageStatus(row) + }); }); var firstLine = _.first(source).line, linesRequested = options.to - options.from + 1; that.model.set({ source: source, + hasUTCoverage: that.model.hasUTCoverage(source), + hasITCoverage: that.model.hasITCoverage(source), hasSourceBefore: firstLine > 1, hasSourceAfter: data.sources.length === linesRequested }); @@ -227,7 +246,7 @@ define([ d.blocks.forEach(function (b) { if (b._ref === '1') { var lineFrom = b.from, - lineTo = b.from + b.size; + lineTo = b.from + b.size - 1; for (var j = lineFrom; j <= lineTo; j++) { duplications[j] = true; } @@ -372,7 +391,7 @@ define([ $('body').click(); this.clearTooltips(); var line = $(e.currentTarget).data('line-number'), - row = _.findWhere(this.model.get('source'), {line: line}), + row = _.findWhere(this.model.get('source'), { line: line }), url = baseUrl + '/api/tests/test_cases', options = { uuid: this.model.id, @@ -382,6 +401,7 @@ define([ var popup = new CoveragePopupView({ model: new Backbone.Model(data), row: row, + tests: $(e.currentTarget).data('tests'), triggerEl: $(e.currentTarget) }); popup.render(); @@ -566,10 +586,15 @@ define([ source.unshift({line: 0}); } source = source.map(function (row) { - return _.extend(row, { coverageStatus: that.getCoverageStatus(row) }); + return _.extend(row, { + utCoverageStatus: that.getUTCoverageStatus(row), + itCoverageStatus: that.getItCoverageStatus(row) + }); }); that.model.set({ source: source, + hasUTCoverage: that.model.hasUTCoverage(source), + hasITCoverage: that.model.hasITCoverage(source), hasSourceBefore: (data.sources.length === that.LINES_AROUND) && (_.first(source).line > 0) }); that.addIssuesPerLineMeta(that.issues); @@ -604,10 +629,15 @@ define([ that.model.set({ hasSourceBefore: true }); } source = source.map(function (row) { - return _.extend(row, { coverageStatus: that.getCoverageStatus(row) }); + return _.extend(row, { + utCoverageStatus: that.getUTCoverageStatus(row), + itCoverageStatus: that.getItCoverageStatus(row) + }); }); that.model.set({ source: source, + hasUTCoverage: that.model.hasUTCoverage(source), + hasITCoverage: that.model.hasITCoverage(source), hasSourceAfter: data.sources.length === that.LINES_AROUND }); that.addIssuesPerLineMeta(that.issues); 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/widgets/bubble-chart.js b/server/sonar-web/src/main/js/widgets/bubble-chart.js index 1e5860a4f9f..d8f3377dbd6 100644 --- a/server/sonar-web/src/main/js/widgets/bubble-chart.js +++ b/server/sonar-web/src/main/js/widgets/bubble-chart.js @@ -208,7 +208,27 @@ window.SonarWidgets = window.SonarWidgets == null ? {} : window.SonarWidgets; .style('stroke', function () { return widget.bubbleColor(); }) - .style('transition', 'all 0.2s ease'); + .style('transition', 'all 0.2s ease') + + .attr('title', function (d) { + var xMetricName = widget.metrics()[widget.xMetric].name, + yMetricName = widget.metrics()[widget.yMetric].name, + sizeMetricName = widget.metrics()[widget.sizeMetric].name, + + xMetricValue = d.measures[widget.xMetric].fval, + yMetricValue = d.measures[widget.yMetric].fval, + sizeMetricValue = d.measures[widget.sizeMetric].fval; + + return '<div class="text-left">' + + collapsedDirFromPath(d.longName) + '<br>' + + fileFromPath(d.longName) + '<br>' + '<br>' + + xMetricName + ': ' + xMetricValue + '<br>' + + yMetricName + ': ' + yMetricValue + '<br>' + + sizeMetricName + ': ' + sizeMetricValue + + '</div>'; + }) + .attr('data-placement', 'bottom') + .attr('data-toggle', 'tooltip'); this.items.exit().remove(); @@ -224,43 +244,13 @@ window.SonarWidgets = window.SonarWidgets == null ? {} : window.SonarWidgets; .on('click', function (d) { window.location = widget.options().baseUrl + '?id=' + encodeURIComponent(d.key); }) - .on('mouseenter', function (d) { + .on('mouseenter', function () { d3.select(this).select('circle') .style('fill-opacity', 0.8); - - widget.infoDate.text(d.longName); - - var metricLineList = [ - { - metric: widget.metrics()[widget.xMetric].name, - value: d.measures[widget.xMetric].fval - }, - { - metric: widget.metrics()[widget.yMetric].name, - value: d.measures[widget.yMetric].fval - }, - { - metric: widget.metrics()[widget.sizeMetric].name, - value: (!!d.measures[widget.sizeMetric] ? d.measures[widget.sizeMetric].fval : '–') - } - ]; - - var lastX = 0; - widget.infoMetrics - .data(metricLineList) - .text(function(m) { return m.metric + ': ' + m.value; }) - .attr('transform', function(d2, i) { - var posX = lastX; - lastX += widget.infoMetricWidth[i]; - return trans(posX, 20); - }); }) .on('mouseleave', function () { d3.select(this).select('circle') .style('fill-opacity', 0.2); - - widget.infoDate.text(''); - widget.infoMetrics.text(''); }); }; @@ -302,26 +292,6 @@ window.SonarWidgets = window.SonarWidgets == null ? {} : window.SonarWidgets; this.gGrid.selectAll('line') .style('stroke', '#000') .style('stroke-opacity', 0.25); - - - // Configure info placeholders - this.infoWrap - .attr('transform', trans(-this.margin().left, -this.margin().top + 20)); - - this.infoDate - .style('text-anchor', 'start') - .style('font-weight', 'bold'); - - var metricLines = [this.metrics().x, this.metrics().y, this.metrics().size]; - this.infoMetrics = this.infoWrap.selectAll('.metric') - .data(metricLines); - this.infoMetrics.enter().append('text').attr('class', 'metric info-text-small') - .text(function(d) { return d; }); - this.infoMetricWidth = []; - this.infoMetrics.each(function() { - widget.infoMetricWidth.push(this.getComputedTextLength() + 140); - }); - this.infoMetrics.text(''); }; @@ -342,9 +312,10 @@ window.SonarWidgets = window.SonarWidgets == null ? {} : window.SonarWidgets; this.initBubbleEvents(); this.initAxes(); this.initGrid(); - this.update(containerS); + jQuery('[data-toggle="tooltip"]').tooltip({ container: 'body', html: true }); + return this; }; @@ -542,7 +513,7 @@ window.SonarWidgets = window.SonarWidgets == null ? {} : window.SonarWidgets; window.SonarWidgets.BubbleChart.defaults = { width: 350, height: 150, - margin: { top: 60, right: 10, bottom: 50, left: 70 }, + margin: { top: 10, right: 10, bottom: 50, left: 70 }, xLog: false, yLog: false, bubbleColor: '#4b9fd5', diff --git a/server/sonar-web/src/main/js/widgets/issue-filter.js b/server/sonar-web/src/main/js/widgets/issue-filter.js new file mode 100644 index 00000000000..c8d27bf5196 --- /dev/null +++ b/server/sonar-web/src/main/js/widgets/issue-filter.js @@ -0,0 +1,296 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +define(['templates/widgets'], function () { + + var $ = jQuery, + defaultComparator = function (item) { + return -item.count; + }, + defaultFilter = function (item) { + var items = this.query[this.property]; + return items == null || + (items != null && items.split(',').indexOf(item.val) !== -1); + }, + defaultLabel = function (item) { + return item.val; + }, + defaultLink = function (item, property, query) { + var criterion = {}; + criterion[property] = item.val; + var r = _.extend({}, query, criterion); + if (r.componentKey != null) { + return baseUrl + '/component_issues/index?id=' + encodeURIComponent(r.componentKey) + + '#' + getQuery(_.omit(r, 'componentKey')); + } else { + return baseUrl + '/issues/search#' + getQuery(r); + } + }, + byDistributionConf = { + 'severities': { + template: 'widget-issue-filter-severities', + comparator: function (item) { + var order = ['BLOCKER', 'CRITICAL', 'MAJOR', 'MINOR', 'INFO']; + return order.indexOf(item.val); + } + }, + 'statuses': { + template: 'widget-issue-filter-statuses', + comparator: function (item) { + var order = ['OPEN', 'REOPENED', 'CONFIRMED', 'RESOLVED', 'CLOSED']; + return order.indexOf(item.val); + } + }, + 'resolutions': { + template: 'widget-issue-filter-resolutions', + comparator: function (item) { + var order = ['', 'FALSE-POSITIVE', 'WONTFIX', 'FIXED', 'REMOVED']; + return order.indexOf(item.val); + }, + filter: function (item) { + if ('' + this.query.resolved === 'false') { + return item.val === ''; + } else { + return defaultFilter.call(this, item); + } + } + }, + 'rules': { + label: function (item, r) { + if (_.isArray(r.rules)) { + var rule = _.findWhere(r.rules, { key: item.val }); + if (rule != null) { + return rule.name; + } + } + } + }, + 'projectUuids': { + label: function (item, r) { + if (_.isArray(r.projects)) { + var project = _.findWhere(r.projects, { uuid: item.val }); + if (project != null) { + return project.name; + } + } + } + }, + 'assignees': { + template: 'widget-issue-filter-assignees', + label: function (item, r) { + if (_.isArray(r.users)) { + var user = _.findWhere(r.users, { login: item.val }); + if (user != null) { + return user.name; + } + } + }, + filter: function (item) { + if ('' + this.query.assigned === 'false') { + return item.val === ''; + } else { + return defaultFilter.call(this, item); + } + } + }, + 'languages': { + label: function (item, r) { + if (_.isArray(r.languages)) { + var lang = _.findWhere(r.languages, { key: item.val }); + if (lang != null) { + return lang.name; + } + } + } + }, + 'actionPlans': { + template: 'widget-issue-filter-action-plans', + label: function (item, r) { + if (_.isArray(r.actionPlans)) { + var actionPlan = _.findWhere(r.actionPlans, { key: item.val }); + if (actionPlan != null) { + return actionPlan.name; + } + } + }, + filter: function (item) { + if ('' + this.query.planned === 'false') { + return item.val === ''; + } else { + return defaultFilter.call(this, item); + } + } + }, + 'createdAt': { + comparator: function (item) { + return moment(item.val).toDate(); + }, + label: function (item, r, items, index, query) { + var beginning = moment(item.val), + endDate = query.createdBefore != null ? moment(query.createdBefore) : moment(), + ending = index < items.length - 1 ? moment(items[index + 1].val).subtract(1, 'days') : endDate, + isSameDay = ending.diff(beginning, 'days') <= 1; + return beginning.format('LL') + (isSameDay ? '' : (' – ' + ending.format('LL'))); + }, + link: function (item, property, query, index, items) { + var createdAfter = moment(item.val), + endDate = query.createdBefore != null ? moment(query.createdBefore) : moment(), + createdBefore = index < items.length - 1 ? moment(items[index + 1].val).subtract(1, 'days') : endDate, + isSameDay = createdBefore.diff(createdAfter, 'days') <= 1; + if (isSameDay) { + createdBefore.add(1, 'days'); + } + var r = _.extend({}, query, { + createdAfter: createdAfter.format('YYYY-MM-DD'), + createdBefore: createdBefore.format('YYYY-MM-DD') + }); + if (r.componentKey != null) { + return baseUrl + '/component_issues/index?id=' + encodeURIComponent(r.componentKey) + + '#' + getQuery(_.omit(r, 'componentKey')); + } else { + return baseUrl + '/issues/search#' + getQuery(r); + } + } + } + }; + + function getQuery (query, separator) { + separator = separator || '|'; + var route = []; + _.forEach(query, function (value, property) { + route.push('' + property + '=' + encodeURIComponent(value)); + }); + return route.join(separator); + } + + Handlebars.registerHelper('issueFilterItemLink', function (query, property, value) { + var criterion = {}; + criterion[property] = value; + var r = _.extend({}, query, criterion); + if (r.componentKey != null) { + return baseUrl + '/component_issues/index?id=' + encodeURIComponent(r.componentKey) + + '#' + getQuery(_.omit(r, 'componentKey')); + } else { + return baseUrl + '/issues/search#' + getQuery(r); + } + }); + + Handlebars.registerHelper('issueFilterTotalLink', function (query) { + var r = _.extend({}, query); + if (r.componentKey != null) { + return baseUrl + '/component_issues/index?id=' + encodeURIComponent(r.componentKey) + + '#' + getQuery(_.omit(r, 'componentKey')); + } else { + return baseUrl + '/issues/search#' + getQuery(r); + } + }); + + return Marionette.ItemView.extend({ + + getTemplate: function () { + var template = this.conf != null && this.conf.template != null ? this.conf.template : 'widget-issue-filter'; + return Templates[template]; + }, + + initialize: function () { + this.model = new Backbone.Model({ + query: this.options.query, + parsedQuery: this.getParsedQuery(), + property: this.options.distributionAxis, + periodDate: this.options.periodDate + }); + this.listenTo(this.model, 'change', this.render); + this.conf = byDistributionConf[this.options.distributionAxis]; + this.query = this.getParsedQuery(); + this.requestIssues(); + }, + + getParsedQuery: function () { + var queryString = this.options.query || '', + query = {}; + queryString.split('|').forEach(function (criterionString) { + var criterion = criterionString.split('='); + if (criterion.length === 2) { + query[criterion[0]] = criterion[1]; + } + }); + if (this.options.componentKey != null) { + _.extend(query, { componentKey: this.options.componentKey }); + } + if (this.options.periodDate != null) { + _.extend(query, { createdAfter: this.options.periodDate }); + } + return query; + }, + + sortItems: function (items) { + var comparator = this.conf != null && this.conf.comparator != null ? this.conf.comparator : defaultComparator; + return _.sortBy(items, comparator); + }, + + filterItems: function (items) { + var filter = this.conf != null && this.conf.filter != null ? this.conf.filter : defaultFilter; + return _.filter(items, filter, { query: this.query, property: this.options.distributionAxis }); + }, + + withLink: function (items) { + var link = this.conf != null && this.conf.link != null ? this.conf.link : defaultLink, + property = this.options.distributionAxis, + query = this.model.get('parsedQuery'); + return items.map(function (item, index) { + return _.extend(item, { searchLink: link(item, property, query, index, items) }); + }); + }, + + withLabels: function (items) { + var label = this.conf != null && this.conf.label != null ? this.conf.label : defaultLabel, + r = this.model.get('rawResponse'), + query = this.model.get('parsedQuery'); + return items.map(function (item, index) { + return _.extend(item, { label: label(item, r, items, index, query) }); + }); + }, + + requestIssues: function () { + var that = this, + url = baseUrl + '/api/issues/search', + options = _.extend({}, this.query, { + ps: 1, + facets: this.options.distributionAxis + }); + if (this.options.componentUuid != null) { + _.extend(options, { componentUuids: this.options.componentUuid }); + } + if (this.options.periodDate != null) { + _.extend(options, { createdAfter: this.options.periodDate }); + } + return $.get(url, options).done(function (r) { + if (_.isArray(r.facets) && r.facets.length === 1) { + // save response object, but do not trigger repaint + that.model.set({ rawResponse: r }, { silent: true }); + that.model.set({ + items: that.sortItems(that.withLabels(that.withLink(that.filterItems(r.facets[0].values)))), + total: r.total + }); + } + }); + } + }); + +}); diff --git a/server/sonar-web/src/main/less/init/misc.less b/server/sonar-web/src/main/less/init/misc.less index f8b31448f3d..3dc7e5df1ec 100644 --- a/server/sonar-web/src/main/less/init/misc.less +++ b/server/sonar-web/src/main/less/init/misc.less @@ -103,3 +103,19 @@ td.spacer-top { .bordered-top { border-top: 1px solid @barBorderColor; } + +.zero-font-size { + font-size: 0 !important; +} + +.width-100 { + width: 100%; +} + +.width-80 { + width: 80%; +} + +.width-60 { + width: 60%; +} diff --git a/server/sonar-web/src/main/less/init/tables.less b/server/sonar-web/src/main/less/init/tables.less index afca8360a88..aca9725e965 100644 --- a/server/sonar-web/src/main/less/init/tables.less +++ b/server/sonar-web/src/main/less/init/tables.less @@ -53,8 +53,9 @@ table.data > tfoot > tr > td { } table.data > tbody > tr > td { - padding: 5px; + padding: 4px 5px; vertical-align: text-top; + line-height: 20px; } table.data td.small, table.data th.small { diff --git a/server/sonar-web/src/main/less/pages/dashboard.less b/server/sonar-web/src/main/less/pages/dashboard.less index 8dc8cfdffe6..84fd6334170 100644 --- a/server/sonar-web/src/main/less/pages/dashboard.less +++ b/server/sonar-web/src/main/less/pages/dashboard.less @@ -325,22 +325,6 @@ .widget-span-11 { width: 91.666666666667%; } .widget-span-12 { width: 100%; } -@media (max-width: 1279px) { - .widget-span-1 { width: 50%; } - .widget-span-2 { width: 50%; } - .widget-span-3 { width: 50%; } - .widget-span-3-5 { width: 50%; } - .widget-span-4 { width: 50%; } - .widget-span-5 { width: 50%; } - .widget-span-6 { width: 50%; } - .widget-span-7 { width: 100%; } - .widget-span-8 { width: 100%; } - .widget-span-9 { width: 100%; } - .widget-span-10 { width: 100%; } - .widget-span-11 { width: 100%; } - .widget-span-12 { width: 100%; } -} - .widget-label { display: block; font-size: @baseFontSize; diff --git a/server/sonar-web/src/main/less/style.less b/server/sonar-web/src/main/less/style.less index 5278454f452..806d57bfc2c 100644 --- a/server/sonar-web/src/main/less/style.less +++ b/server/sonar-web/src/main/less/style.less @@ -707,7 +707,8 @@ div.barchart { } div.barchart > div { - background-color: @darkBlue; + min-width: 1px; + background-color: #c4d6e1; height: 0.9em; } diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb b/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb index 3ac6eba4b8d..79b88b22bb0 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/profiles_controller.rb @@ -268,7 +268,8 @@ class ProfilesController < ApplicationController require_parameters 'key' @profile = Internal.qprofile_loader.getByKey(params[:key]) - search = {'profileKeys' => @profile.key().to_s, 'since' => params[:since], 'to' => params[:to], 'p' => params[:p]} + not_found('Quality profile does not exist') unless @profile + search = {'profileKey' => @profile.key().to_s, 'since' => params[:since], 'to' => params[:to], 'p' => params[:p]} result = Internal.component(Java::OrgSonarServerActivity::RubyQProfileActivityService.java_class).search(search) @changes = result.activities @paging = result.paging diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/helpers/application_helper.rb b/server/sonar-web/src/main/webapp/WEB-INF/app/helpers/application_helper.rb index 881b85429c9..c1eb79b9028 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/helpers/application_helper.rb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/helpers/application_helper.rb @@ -614,7 +614,7 @@ module ApplicationHelper def select2_tag(name, ws_url, options={}) width=options[:width]||'250px' - html_id=options[:html_id]||name + html_id=options[:html_id]||sanitize_to_id(name).gsub('.', '_') html_class=options[:html_class]||'' min_length=options[:min_length] @@ -764,7 +764,7 @@ module ApplicationHelper if user # the login is a string so it have to be surrounded by quote to be taken in account by select2 options[:selected_id]="'" + user.login + "'" - options[:selected_text]=user.name + options[:selected_text]=user.name + ' (' + user.login + ')' end select2_tag(name, ws_url, options) diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/helpers/properties_helper.rb b/server/sonar-web/src/main/webapp/WEB-INF/app/helpers/properties_helper.rb index 34fd3326d7e..55c546244d7 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/helpers/properties_helper.rb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/helpers/properties_helper.rb @@ -104,6 +104,10 @@ module PropertiesHelper end select_tag name, select_options, html_options + when PropertyType::TYPE_USER_LOGIN + user = User.find_active_by_login(value) + user_select_tag name, {:size => options[:size] || 50, :selected_user => user, :allow_empty => true, :include_choices => [ ['', message('none')] ] }.update(html_options) + else hidden_field_tag id, html_options end diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/models/project_measure.rb b/server/sonar-web/src/main/webapp/WEB-INF/app/models/project_measure.rb index d6aad6e798b..ca542e4b687 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/models/project_measure.rb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/models/project_measure.rb @@ -274,7 +274,7 @@ class ProjectMeasure < ActiveRecord::Base end def visible?(period) - ! (value.nil? && variation(period).nil?) + !(text_value.nil? && value.nil? && variation(period).nil?) end end diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/models/property_type.rb b/server/sonar-web/src/main/webapp/WEB-INF/app/models/property_type.rb index 332096471b3..9c890604ca5 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/models/property_type.rb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/models/property_type.rb @@ -32,6 +32,7 @@ class PropertyType TYPE_FILTER = 'FILTER' # Since 3.7 TYPE_ISSUE_FILTER = 'ISSUE_FILTER' + TYPE_USER_LOGIN = 'USER_LOGIN' def self.text_to_value(text, type) case type diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/views/profiles/changelog.html.erb b/server/sonar-web/src/main/webapp/WEB-INF/app/views/profiles/changelog.html.erb index 035bf52d2d5..f807ae791c2 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/views/profiles/changelog.html.erb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/views/profiles/changelog.html.erb @@ -37,19 +37,19 @@ %> <tr class="<%= cycle('even', 'odd') -%>"> <% - action = change.action() + action = change.getAction() action_message = message('quality_profiles.changelog.' + action.downcase) if action if change.authorName() && !change.authorName().empty?() author = change.authorName() - elsif change.login() && !change.login().empty?() - author = change.login() + elsif change.login() && !change.getLogin().empty?() + author = change.getLogin() else author = 'System' end rule = change.ruleName() ? change.ruleName() : change.ruleKey() %> - <td valign="top" width="1%" nowrap><%= Internal.i18n.formatDateTime(change.time()) -%></td> + <td valign="top" width="1%" nowrap><%= Internal.i18n.formatDateTime(change.getCreatedAt()) -%></td> <td valign="top" width="1%" nowrap><%= author %></td> <td valign="top" width="1%" nowrap><%= action_message %></td> <td valign="top"><%= rule %></td> diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/views/settings/_type_USER_LOGIN.html.erb b/server/sonar-web/src/main/webapp/WEB-INF/app/views/settings/_type_USER_LOGIN.html.erb new file mode 100644 index 00000000000..6f94fa6a651 --- /dev/null +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/views/settings/_type_USER_LOGIN.html.erb @@ -0,0 +1,5 @@ +<% + options = {:id => id} + options[:size] = (defined? size) ? size : nil +%> +<%= property_input_field(name, PropertyType::TYPE_USER_LOGIN, value, PropertiesHelper::SCREEN_SETTINGS, options) %> diff --git a/server/sonar-web/src/main/webapp/WEB-INF/db/migrate/796_add_uuid_to_analysis_reports.rb b/server/sonar-web/src/main/webapp/WEB-INF/db/migrate/796_add_uuid_to_analysis_reports.rb new file mode 100644 index 00000000000..06fba16976d --- /dev/null +++ b/server/sonar-web/src/main/webapp/WEB-INF/db/migrate/796_add_uuid_to_analysis_reports.rb @@ -0,0 +1,32 @@ +# +# SonarQube, open source software quality management tool. +# Copyright (C) 2008-2014 SonarSource +# mailto:contact AT sonarsource DOT com +# +# SonarQube is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# SonarQube is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +# +# SonarQube 5.1 +# +class AddUuidToAnalysisReports < ActiveRecord::Migration + + def self.up + add_column 'analysis_reports', 'uuid', :string, :limit => 50, :null => false + remove_column 'analysis_reports', 'report_data' + remove_column 'analysis_reports', 'snapshot_id' + end + +end 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/test/js/global-issue-filter-widget.js b/server/sonar-web/src/test/js/global-issue-filter-widget.js new file mode 100644 index 00000000000..ac2f5f78acf --- /dev/null +++ b/server/sonar-web/src/test/js/global-issue-filter-widget.js @@ -0,0 +1,853 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +/* globals casper: false */ + +var lib = require('../lib'), + testName = lib.testName('Global Issue Filter Widget'); + + +lib.initMessages(); +lib.changeWorkingDirectory('global-issues-filter-widget'); +lib.configureCasper(); + + +casper.test.begin(testName('Unresolved Issues By Severity'), 13, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-severity.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'severities' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 6); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '1'); + test.assertSelectorContains('tr:nth-child(3)', '105'); + test.assertSelectorContains('tr:nth-child(4)', '5027'); + test.assertSelectorContains('tr:nth-child(5)', '540'); + test.assertSelectorContains('tr:nth-child(6)', '1178'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|severities=BLOCKER"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolved=false|severities=CRITICAL"]'); + test.assertExists('tr:nth-child(4) a[href="/issues/search#resolved=false|severities=MAJOR"]'); + test.assertExists('tr:nth-child(5) a[href="/issues/search#resolved=false|severities=MINOR"]'); + test.assertExists('tr:nth-child(6) a[href="/issues/search#resolved=false|severities=INFO"]'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Red Issues By Severity'), 9, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'red-issues-by-severity.json', + { data: { resolved: 'false', severities: 'BLOCKER,CRITICAL,MAJOR' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false|severities=BLOCKER,CRITICAL,MAJOR', + distributionAxis: 'severities' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 4); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '1'); + test.assertSelectorContains('tr:nth-child(3)', '105'); + test.assertSelectorContains('tr:nth-child(4)', '5027'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false|severities=BLOCKER%2CCRITICAL%2CMAJOR"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|severities=BLOCKER"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolved=false|severities=CRITICAL"]'); + test.assertExists('tr:nth-child(4) a[href="/issues/search#resolved=false|severities=MAJOR"]'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('All Issues By Status'), 9, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'all-issues-by-status.json'); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: '', + distributionAxis: 'statuses' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 6); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '71571'); + test.assertSelectorContains('tr:nth-child(2)', '238'); + test.assertSelectorContains('tr:nth-child(3)', '4'); + test.assertSelectorContains('tr:nth-child(4)', '6609'); + test.assertSelectorContains('tr:nth-child(5)', '1307'); + test.assertSelectorContains('tr:nth-child(6)', '63.4k'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#statuses=OPEN"]'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('All Issues By Resolution'), 10, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'all-issues-by-resolution.json'); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: '', + distributionAxis: 'resolutions' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 6); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '71571'); + test.assertSelectorContains('tr:nth-child(2)', '6851'); + test.assertSelectorContains('tr:nth-child(3)', '752'); + test.assertSelectorContains('tr:nth-child(4)', '550'); + test.assertSelectorContains('tr:nth-child(5)', '47.1k'); + test.assertSelectorContains('tr:nth-child(6)', '16.3k'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolutions=FALSE-POSITIVE"]'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues By Resolution'), 5, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-resolution.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'resolutions' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 2); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '6851'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false"]'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues By Rule'), 15, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-rule.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'rules' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 16); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '879'); + test.assertSelectorContains('tr:nth-child(3)', '571'); + test.assertSelectorContains('tr:nth-child(15)', '113'); + test.assertSelectorContains('tr:nth-child(16)', '111'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|rules=squid%3AS1161"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolved=false|rules=squid%3AS1135"]'); + test.assertExists('tr:nth-child(15) a[href="/issues/search#resolved=false|rules=squid%3AS1134"]'); + test.assertExists('tr:nth-child(16) a[href="/issues/search#resolved=false|rules=squid%3AS1192"]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', '@Override" annotation should be used'); + test.assertSelectorContains('tr:nth-child(3)', 'TODO tags should be handled'); + test.assertSelectorContains('tr:nth-child(15)', 'FIXME tags should be handled'); + test.assertSelectorContains('tr:nth-child(16)', 'String literals should not be duplicated'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues By Project'), 15, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-project.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'projectUuids' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 5); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '2598'); + test.assertSelectorContains('tr:nth-child(2)', '1766'); + test.assertSelectorContains('tr:nth-child(3)', '442'); + test.assertSelectorContains('tr:nth-child(4)', '283'); + test.assertSelectorContains('tr:nth-child(5)', '107'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|projectUuids=69e57151-be0d-4157-adff-c06741d88879"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolved=false|projectUuids=dd7c3556-ce3f-42d0-a348-914a582dc944"]'); + test.assertExists('tr:nth-child(4) a[href="/issues/search#resolved=false|projectUuids=5eab015a-1f76-4ba4-bd89-bf547132d673"]'); + test.assertExists('tr:nth-child(5) a[href="/issues/search#resolved=false|projectUuids=c156940b-e3ec-43f6-9589-e3b75aa9ca32"]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', 'SonarQube'); + test.assertSelectorContains('tr:nth-child(3)', 'SonarQube Java'); + test.assertSelectorContains('tr:nth-child(4)', 'JavaScript'); + test.assertSelectorContains('tr:nth-child(5)', 'Python'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues By Assignee'), 15, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-assignee.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'assignees' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 5); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '4134'); + test.assertSelectorContains('tr:nth-child(3)', '698'); + test.assertSelectorContains('tr:nth-child(4)', '504'); + test.assertSelectorContains('tr:nth-child(5)', '426'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|assigned=false"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolved=false|assignees=first.user"]'); + test.assertExists('tr:nth-child(4) a[href="/issues/search#resolved=false|assignees=second.user"]'); + test.assertExists('tr:nth-child(5) a[href="/issues/search#resolved=false|assignees=third.user"]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', 'unassigned'); + test.assertSelectorContains('tr:nth-child(3)', 'First User'); + test.assertSelectorContains('tr:nth-child(4)', 'Second User'); + test.assertSelectorContains('tr:nth-child(5)', 'Third User'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Unassigned Issues By Assignee'), 6, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-unassigned-issues-by-assignee.json', + { data: { resolved: 'false', assigned: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false|assigned=false', + distributionAxis: 'assignees' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 2); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '4134'); + test.assertSelectorContains('tr:nth-child(2)', '4134'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false|assigned=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|assigned=false"]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', 'unassigned'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues By Language'), 15, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-language.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'languages' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 5); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '6336'); + test.assertSelectorContains('tr:nth-child(3)', '444'); + test.assertSelectorContains('tr:nth-child(4)', '22'); + test.assertSelectorContains('tr:nth-child(5)', '15'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|languages=java"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolved=false|languages=py"]'); + test.assertExists('tr:nth-child(4) a[href="/issues/search#resolved=false|languages=php"]'); + test.assertExists('tr:nth-child(5) a[href="/issues/search#resolved=false|languages=js"]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', 'Java'); + test.assertSelectorContains('tr:nth-child(3)', 'Python'); + test.assertSelectorContains('tr:nth-child(4)', 'PHP'); + test.assertSelectorContains('tr:nth-child(5)', 'JavaScript'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues By Action Plan'), 15, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-action-plan.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'actionPlans' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 5); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '5877'); + test.assertSelectorContains('tr:nth-child(3)', '532'); + test.assertSelectorContains('tr:nth-child(4)', '56'); + test.assertSelectorContains('tr:nth-child(5)', '52'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|planned=false"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolved=false|actionPlans=0cf48508-2fcd-4cb8-a50b-c5cd7c3decc0"]'); + test.assertExists('tr:nth-child(4) a[href="/issues/search#resolved=false|actionPlans=1b9e7e52-ff58-40c1-80bf-f68429a3275e"]'); + test.assertExists('tr:nth-child(5) a[href="/issues/search#resolved=false|actionPlans=8c1d5d01-948e-4670-a0d9-17c512979486"]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', 'unplanned'); + test.assertSelectorContains('tr:nth-child(3)', 'First Action Plan'); + test.assertSelectorContains('tr:nth-child(4)', 'Second Action Plan'); + test.assertSelectorContains('tr:nth-child(5)', 'Third Action Plan'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Unplanned Issues By Action Plan'), 6, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-unplanned-issues-by-action-plan.json', + { data: { resolved: 'false', planned: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false|planned=false', + distributionAxis: 'actionPlans' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 2); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '5877'); + test.assertSelectorContains('tr:nth-child(2)', '5877'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false|planned=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|planned=false"]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', 'unplanned'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues By Date'), 18, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-date.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'createdAt' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 6); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '72'); + test.assertSelectorContains('tr:nth-child(3)', '64'); + test.assertSelectorContains('tr:nth-child(4)', '1262'); + test.assertSelectorContains('tr:nth-child(5)', '3729'); + test.assertSelectorContains('tr:nth-child(6)', '1724'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|createdAfter=2011-01-01|createdBefore=2011-12-31"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolved=false|createdAfter=2012-01-01|createdBefore=2012-12-31"]'); + test.assertExists('tr:nth-child(4) a[href="/issues/search#resolved=false|createdAfter=2013-01-01|createdBefore=2013-12-31"]'); + test.assertExists('tr:nth-child(5) a[href="/issues/search#resolved=false|createdAfter=2014-01-01|createdBefore=2014-12-31"]'); + // do not check createdBefore value, because it is set dynamically to *now* + test.assertExists('tr:nth-child(6) a[href^="/issues/search#resolved=false|createdAfter=2015-01-01|createdBefore="]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', 'January 1 2011 – December 31 2011'); + test.assertSelectorContains('tr:nth-child(3)', 'January 1 2012 – December 31 2012'); + test.assertSelectorContains('tr:nth-child(4)', 'January 1 2013 – December 31 2013'); + test.assertSelectorContains('tr:nth-child(5)', 'January 1 2014 – December 31 2014'); + // do not check label fully, because it is set dynamically using *now* + test.assertSelectorContains('tr:nth-child(6)', 'January 1 2015 – '); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues on a Limited Period By Date'), 12, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-date-limited.json', + { data: { resolved: 'false', createdAfter: '2015-02-16', createdBefore: '2015-02-18' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false|createdAfter=2015-02-16|createdBefore=2015-02-18', + distributionAxis: 'createdAt' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 4); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '49'); + test.assertSelectorContains('tr:nth-child(3)', '48'); + test.assertSelectorContains('tr:nth-child(4)', '47'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/issues/search#resolved=false|createdAfter=2015-02-16|createdBefore=2015-02-18"]'); + test.assertExists('tr:nth-child(2) a[href="/issues/search#resolved=false|createdAfter=2015-02-16|createdBefore=2015-02-17"]'); + test.assertExists('tr:nth-child(3) a[href="/issues/search#resolved=false|createdAfter=2015-02-17|createdBefore=2015-02-18"]'); + test.assertExists('tr:nth-child(4) a[href="/issues/search#resolved=false|createdAfter=2015-02-18|createdBefore=2015-02-19"]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', 'February 16 2015'); + test.assertSelectorContains('tr:nth-child(3)', 'February 17 2015'); + test.assertSelectorContains('tr:nth-child(4)', 'February 18 2015'); + }) + + .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/test/js/project-issue-filter-widget.js b/server/sonar-web/src/test/js/project-issue-filter-widget.js new file mode 100644 index 00000000000..25e69cdeff8 --- /dev/null +++ b/server/sonar-web/src/test/js/project-issue-filter-widget.js @@ -0,0 +1,221 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +/* globals casper: false */ + +var lib = require('../lib'), + testName = lib.testName('Project Issue Filter Widget'); + + +lib.initMessages(); +lib.changeWorkingDirectory('project-issues-filter-widget'); +lib.configureCasper(); + + +casper.test.begin(testName('Unresolved Issues By Severity'), 13, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-severity.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'severities', + componentUuid: '69e57151-be0d-4157-adff-c06741d88879', + componentKey: 'org.codehaus.sonar:sonar' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 6); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '1'); + test.assertSelectorContains('tr:nth-child(3)', '105'); + test.assertSelectorContains('tr:nth-child(4)', '5027'); + test.assertSelectorContains('tr:nth-child(5)', '540'); + test.assertSelectorContains('tr:nth-child(6)', '1178'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|severities=BLOCKER"]'); + test.assertExists('tr:nth-child(3) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|severities=CRITICAL"]'); + test.assertExists('tr:nth-child(4) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|severities=MAJOR"]'); + test.assertExists('tr:nth-child(5) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|severities=MINOR"]'); + test.assertExists('tr:nth-child(6) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|severities=INFO"]'); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues By Date'), 18, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-date.json', + { data: { resolved: 'false' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'createdAt', + componentUuid: '69e57151-be0d-4157-adff-c06741d88879', + componentKey: 'org.codehaus.sonar:sonar' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 6); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '6851'); + test.assertSelectorContains('tr:nth-child(2)', '72'); + test.assertSelectorContains('tr:nth-child(3)', '64'); + test.assertSelectorContains('tr:nth-child(4)', '1262'); + test.assertSelectorContains('tr:nth-child(5)', '3729'); + test.assertSelectorContains('tr:nth-child(6)', '1724'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false"]'); + test.assertExists('tr:nth-child(2) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2011-01-01|createdBefore=2011-12-31"]'); + test.assertExists('tr:nth-child(3) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2012-01-01|createdBefore=2012-12-31"]'); + test.assertExists('tr:nth-child(4) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2013-01-01|createdBefore=2013-12-31"]'); + test.assertExists('tr:nth-child(5) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2014-01-01|createdBefore=2014-12-31"]'); + // do not check createdBefore value, because it is set dynamically to *now* + test.assertExists('tr:nth-child(6) a[href^="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2015-01-01|createdBefore="]'); + + // check labels + test.assertSelectorContains('tr:nth-child(2)', 'January 1 2011 – December 31 2011'); + test.assertSelectorContains('tr:nth-child(3)', 'January 1 2012 – December 31 2012'); + test.assertSelectorContains('tr:nth-child(4)', 'January 1 2013 – December 31 2013'); + test.assertSelectorContains('tr:nth-child(5)', 'January 1 2014 – December 31 2014'); + // do not check label fully, because it is set dynamically using *now* + test.assertSelectorContains('tr:nth-child(6)', 'January 1 2015 – '); + }) + + .then(function () { + lib.sendCoverage(); + }) + + .run(function () { + test.done(); + }); +}); + + +casper.test.begin(testName('Unresolved Issues By Severity With Differential Period'), 13, function (test) { + casper + .start(lib.buildUrl('issue-filter-widget'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/issues/search', 'unresolved-issues-by-severity-with-differential-period.json', + { data: { resolved: 'false', createdAfter: '2014-12-09T17:12:38+0100' } }); + }) + + .then(function () { + casper.evaluate(function () { + require(['/js/widgets/issue-filter.js'], function (IssueFilter) { + window.requestMessages().done(function () { + new IssueFilter({ + el: '#issue-filter-widget', + query: 'resolved=false', + distributionAxis: 'severities', + periodDate: '2014-12-09T17:12:38+0100', + componentUuid: '69e57151-be0d-4157-adff-c06741d88879', + componentKey: 'org.codehaus.sonar:sonar' + }); + }); + }); + }); + }) + + .then(function () { + casper.waitForSelector('#issue-filter-widget > table'); + }) + + .then(function () { + // check count + test.assertElementCount('tr', 6); + + // check order and values + test.assertSelectorContains('tr:nth-child(1)', '+549'); + test.assertSelectorContains('tr:nth-child(2)', '+0'); + test.assertSelectorContains('tr:nth-child(3)', '+59'); + test.assertSelectorContains('tr:nth-child(4)', '+306'); + test.assertSelectorContains('tr:nth-child(5)', '+135'); + test.assertSelectorContains('tr:nth-child(6)', '+49'); + + // check links + test.assertExists('tr:nth-child(1) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2014-12-09T17%3A12%3A38%2B0100"]'); + test.assertExists('tr:nth-child(2) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2014-12-09T17%3A12%3A38%2B0100|severities=BLOCKER"]'); + test.assertExists('tr:nth-child(3) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2014-12-09T17%3A12%3A38%2B0100|severities=CRITICAL"]'); + test.assertExists('tr:nth-child(4) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2014-12-09T17%3A12%3A38%2B0100|severities=MAJOR"]'); + test.assertExists('tr:nth-child(5) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2014-12-09T17%3A12%3A38%2B0100|severities=MINOR"]'); + test.assertExists('tr:nth-child(6) a[href="/component_issues/index?id=org.codehaus.sonar%3Asonar#resolved=false|createdAfter=2014-12-09T17%3A12%3A38%2B0100|severities=INFO"]'); + }) + + .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/test/js/source-viewer-coverage.js b/server/sonar-web/src/test/js/source-viewer-coverage.js new file mode 100644 index 00000000000..434300129f3 --- /dev/null +++ b/server/sonar-web/src/test/js/source-viewer-coverage.js @@ -0,0 +1,66 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +/* global casper:false */ + + +var lib = require('../lib'), + testName = lib.testName('Source Viewer'); + +lib.initMessages(); +lib.changeWorkingDirectory('source-viewer-coverage'); +lib.configureCasper(); + + +casper.test.begin(testName('Coverage'), 4, function (test) { + casper + .start(lib.buildUrl('source-viewer'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/components/app', 'app.json'); + lib.mockRequestFromFile('/api/sources/lines', 'lines.json'); + lib.mockRequestFromFile('/api/issues/search', 'issues.json'); + lib.mockRequestFromFile('/api/tests/test_cases', 'test-cases.json'); + }) + + .then(function () { + casper.waitForSelector('.source-line'); + }) + + .then(function () { + test.assertElementCount('.source-line-covered', 1); + casper.click('.source-line-covered'); + casper.waitForSelector('.bubble-popup'); + }) + + .then(function () { + test.assertSelectorContains('.bubble-popup', 'SampleTest'); + test.assertSelectorContains('.bubble-popup', '2ms'); + test.assertExists('.bubble-popup .icon-test-status-ok'); + }) + + .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/test/js/source-viewer-duplications.js b/server/sonar-web/src/test/js/source-viewer-duplications.js new file mode 100644 index 00000000000..bff158991b5 --- /dev/null +++ b/server/sonar-web/src/test/js/source-viewer-duplications.js @@ -0,0 +1,70 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +/* global casper:false */ + + +var lib = require('../lib'), + testName = lib.testName('Source Viewer'); + +lib.initMessages(); +lib.changeWorkingDirectory('source-viewer-duplications'); +lib.configureCasper(); + + +casper.test.begin(testName('Duplications'), 4, function (test) { + casper + .start(lib.buildUrl('source-viewer'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/components/app', 'app.json'); + lib.mockRequestFromFile('/api/sources/lines', 'lines.json'); + lib.mockRequestFromFile('/api/issues/search', 'issues.json'); + lib.mockRequestFromFile('/api/duplications/show', 'duplications.json'); + }) + + .then(function () { + casper.waitForSelector('.source-line'); + }) + + .then(function () { + test.assertElementCount('.source-line-duplications.source-line-duplicated', 5); + casper.click('.source-line-duplicated'); + lib.waitForElementCount('.source-line-duplications-extra.source-line-duplicated', 5); + }) + + .then(function () { + casper.waitForSelector('.bubble-popup'); + }) + + .then(function () { + test.assertSelectorContains('.bubble-popup', 'Duplicated'); + test.assertSelectorContains('.bubble-popup', '12'); + test.assertSelectorContains('.bubble-popup', '16'); + }) + + .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/test/js/source-viewer-scm.js b/server/sonar-web/src/test/js/source-viewer-scm.js new file mode 100644 index 00000000000..abf5102cf46 --- /dev/null +++ b/server/sonar-web/src/test/js/source-viewer-scm.js @@ -0,0 +1,71 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +/* global casper:false */ + + +var lib = require('../lib'), + testName = lib.testName('Source Viewer'); + +lib.initMessages(); +lib.changeWorkingDirectory('source-viewer-scm'); +lib.configureCasper(); + + +casper.test.begin(testName('SCM'), 4, function (test) { + casper + .start(lib.buildUrl('source-viewer'), function () { + lib.setDefaultViewport(); + + lib.mockRequest('/api/l10n/index', '{}'); + lib.mockRequestFromFile('/api/components/app', 'app.json'); + lib.mockRequestFromFile('/api/sources/lines', 'lines.json'); + lib.mockRequestFromFile('/api/issues/search', 'issues.json'); + }) + + .then(function () { + casper.waitForSelector('.source-line'); + }) + + .then(function () { + casper.click('.source-line-scm[data-line-number="1"]'); + casper.waitForSelector('.bubble-popup'); + }) + + .then(function () { + test.assertSelectorContains('.bubble-popup', 'sample-author'); + test.assertSelectorContains('.bubble-popup', 'January 1 2015 1:00 AM'); + test.assertSelectorContains('.bubble-popup', 'samplerevision'); + }) + + // do not hide popup on click + // to allow selecting text by mouse + .then(function () { + casper.click('.bubble-popup'); + test.assertExists('.bubble-popup'); + }) + + .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/test/json/global-issues-filter-widget/all-issues-by-resolution.json b/server/sonar-web/src/test/json/global-issues-filter-widget/all-issues-by-resolution.json new file mode 100644 index 00000000000..6751605092f --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/all-issues-by-resolution.json @@ -0,0 +1,32 @@ +{ + "total": 71571, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "resolutions", + "values": [ + { + "val": "", + "count": 6851 + }, + { + "val": "FIXED", + "count": 47092 + }, + { + "val": "REMOVED", + "count": 16326 + }, + { + "val": "FALSE-POSITIVE", + "count": 752 + }, + { + "val": "WONTFIX", + "count": 550 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/all-issues-by-status.json b/server/sonar-web/src/test/json/global-issues-filter-widget/all-issues-by-status.json new file mode 100644 index 00000000000..99fe9461067 --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/all-issues-by-status.json @@ -0,0 +1,32 @@ +{ + "total": 71571, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "statuses", + "values": [ + { + "val": "CLOSED", + "count": 63413 + }, + { + "val": "CONFIRMED", + "count": 6609 + }, + { + "val": "RESOLVED", + "count": 1307 + }, + { + "val": "OPEN", + "count": 238 + }, + { + "val": "REOPENED", + "count": 4 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/red-issues-by-severity.json b/server/sonar-web/src/test/json/global-issues-filter-widget/red-issues-by-severity.json new file mode 100644 index 00000000000..f261766748c --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/red-issues-by-severity.json @@ -0,0 +1,32 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "severities", + "values": [ + { + "val": "MAJOR", + "count": 5027 + }, + { + "val": "INFO", + "count": 1178 + }, + { + "val": "MINOR", + "count": 540 + }, + { + "val": "CRITICAL", + "count": 105 + }, + { + "val": "BLOCKER", + "count": 1 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-action-plan.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-action-plan.json new file mode 100644 index 00000000000..7589fe0737c --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-action-plan.json @@ -0,0 +1,63 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "actionPlans": [ + { + "key": "0cf48508-2fcd-4cb8-a50b-c5cd7c3decc0", + "name": "First Action Plan", + "status": "OPEN", + "project": "example:project", + "userLogin": "example.login", + "createdAt": "2014-04-03T12:28:05+0200", + "fCreatedAt": "Apr 3, 2014 12:28 PM", + "updatedAt": "2014-04-03T12:28:05+0200", + "fUpdatedAt": "Apr 3, 2014 12:28 PM" + }, + { + "key": "1b9e7e52-ff58-40c1-80bf-f68429a3275e", + "name": "Second Action Plan", + "status": "OPEN", + "project": "example:project", + "userLogin": "example.login", + "createdAt": "2014-04-03T12:28:05+0200", + "fCreatedAt": "Apr 3, 2014 12:28 PM", + "updatedAt": "2014-04-03T12:28:05+0200", + "fUpdatedAt": "Apr 3, 2014 12:28 PM" + }, + { + "key": "8c1d5d01-948e-4670-a0d9-17c512979486", + "name": "Third Action Plan", + "status": "OPEN", + "project": "example:project", + "userLogin": "example.login", + "createdAt": "2014-04-03T12:28:05+0200", + "fCreatedAt": "Apr 3, 2014 12:28 PM", + "updatedAt": "2014-04-03T12:28:05+0200", + "fUpdatedAt": "Apr 3, 2014 12:28 PM" + } + ], + "facets": [ + { + "property": "actionPlans", + "values": [ + { + "val": "", + "count": 5877 + }, + { + "val": "0cf48508-2fcd-4cb8-a50b-c5cd7c3decc0", + "count": 532 + }, + { + "val": "1b9e7e52-ff58-40c1-80bf-f68429a3275e", + "count": 56 + }, + { + "val": "8c1d5d01-948e-4670-a0d9-17c512979486", + "count": 52 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-assignee.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-assignee.json new file mode 100644 index 00000000000..350327879fc --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-assignee.json @@ -0,0 +1,48 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "users": [ + { + "login": "second.user", + "name": "Second User", + "active": true, + "email": "second.user@example.com" + }, + { + "login": "third.user", + "name": "Third User", + "active": true, + "email": "third.user@example .com" + }, + { + "login": "first.user", + "name": "First User", + "active": true, + "email": "first.user@example.com" + } + ], + "facets": [ + { + "property": "assignees", + "values": [ + { + "val": "", + "count": 4134 + }, + { + "val": "first.user", + "count": 698 + }, + { + "val": "second.user", + "count": 504 + }, + { + "val": "third.user", + "count": 426 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-date-limited.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-date-limited.json new file mode 100644 index 00000000000..5c2f0182f9a --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-date-limited.json @@ -0,0 +1,24 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "createdAt", + "values": [ + { + "val": "2015-02-16T01:00:00+0000", + "count": 49 + }, + { + "val": "2015-02-17T01:00:00+0000", + "count": 48 + }, + { + "val": "2015-02-18T01:00:00+0000", + "count": 47 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-date.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-date.json new file mode 100644 index 00000000000..54153d9897b --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-date.json @@ -0,0 +1,32 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "createdAt", + "values": [ + { + "val": "2011-01-01T01:00:00+0000", + "count": 72 + }, + { + "val": "2012-01-01T01:00:00+0000", + "count": 64 + }, + { + "val": "2013-01-01T01:00:00+0000", + "count": 1262 + }, + { + "val": "2014-01-01T01:00:00+0000", + "count": 3729 + }, + { + "val": "2015-01-01T01:00:00+0000", + "count": 1724 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-language.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-language.json new file mode 100644 index 00000000000..de5e4c9be3a --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-language.json @@ -0,0 +1,46 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "languages": [ + { + "key": "py", + "name": "Python" + }, + { + "key": "js", + "name": "JavaScript" + }, + { + "key": "php", + "name": "PHP" + }, + { + "key": "java", + "name": "Java" + } + ], + "facets": [ + { + "property": "languages", + "values": [ + { + "val": "java", + "count": 6336 + }, + { + "val": "py", + "count": 444 + }, + { + "val": "php", + "count": 22 + }, + { + "val": "js", + "count": 15 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-project.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-project.json new file mode 100644 index 00000000000..e53991f61ab --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-project.json @@ -0,0 +1,62 @@ +{ + "total": 2598, + "p": 1, + "ps": 1, + "projects": [ + { + "uuid": "5eab015a-1f76-4ba4-bd89-bf547132d673", + "key": "org.codehaus.sonar-plugins.javascript:javascript", + "id": 10159, + "qualifier": "TRK", + "name": "JavaScript", + "longName": "JavaScript" + }, + { + "uuid": "c156940b-e3ec-43f6-9589-e3b75aa9ca32", + "key": "org.codehaus.sonar-plugins.python:python", + "id": 11752, + "qualifier": "TRK", + "name": "Python", + "longName": "Python" + }, + { + "uuid": "dd7c3556-ce3f-42d0-a348-914a582dc944", + "key": "org.codehaus.sonar-plugins.java:java", + "id": 13265, + "qualifier": "TRK", + "name": "SonarQube Java", + "longName": "SonarQube Java" + }, + { + "uuid": "69e57151-be0d-4157-adff-c06741d88879", + "key": "org.codehaus.sonar:sonar", + "id": 2865, + "qualifier": "TRK", + "name": "SonarQube", + "longName": "SonarQube" + } + ], + "facets": [ + { + "property": "projectUuids", + "values": [ + { + "val": "69e57151-be0d-4157-adff-c06741d88879", + "count": 1766 + }, + { + "val": "dd7c3556-ce3f-42d0-a348-914a582dc944", + "count": 442 + }, + { + "val": "5eab015a-1f76-4ba4-bd89-bf547132d673", + "count": 283 + }, + { + "val": "c156940b-e3ec-43f6-9589-e3b75aa9ca32", + "count": 107 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-resolution.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-resolution.json new file mode 100644 index 00000000000..146920688ff --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-resolution.json @@ -0,0 +1,32 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "resolutions", + "values": [ + { + "val": "", + "count": 6851 + }, + { + "val": "FIXED", + "count": 47092 + }, + { + "val": "REMOVED", + "count": 16326 + }, + { + "val": "FALSE-POSITIVE", + "count": 752 + }, + { + "val": "WONTFIX", + "count": 550 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-rule.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-rule.json new file mode 100644 index 00000000000..aa70a9bfc71 --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-rule.json @@ -0,0 +1,186 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "rules": [ + { + "key": "squid:S1698", + "name": "Objects should be compared with \"equals()\"", + "lang": "java", + "desc": "<p>Using the equality (<code>==</code>) and inequality (<code>!=</code>) operators to compare two objects does not check to see if they have the same values. Rather it checks to see if both object references point to exactly the same object in memory. The vast majority of the time, this is not what you want to do. Use the .equals() method to compare the values of two objects or to compare a string object to a string literal.</p>\n\n<h2>Noncompliant Code Sample</h2>\n<pre>\nString str1 = \"blue\";\nString str2 = \"blue\";\nString str3 = str1;\n\nif (str1 == str2)\n{\n System.out.println(\"they're both 'blue'\"); // this doesn't print because the objects are different\n}\n\nif (str1 == \"blue\")\n{\n System.out.println(\"they're both 'blue'\"); // this doesn't print because the objects are different\n}\n\nif (str1 == str3)\n{\n System.out.println(\"they're the same object\"); // this prints\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nString str1 = \"blue\";\nString str2 = \"blue\";\nString str3 = str1;\n\nif (str1.equals(str2))\n{\n System.out.println(\"they're both 'blue'\"); // this prints\n}\n\nif (str1.equals(\"blue\"))\n{\n System.out.println(\"they're both 'blue'\"); // this prints\n}\n\nif (str1 == str3)\n{\n System.out.println(\"they're the same object\"); // this still prints, but it's probably not what you meant to do\n}\n</pre>\n\n<h2>Exception</h2>\nComparing two instances of the <code>Class</code> object will not raise an issue.\n<pre>\nClass c;\nif(c == Integer.class) { //No issue raised\n}\n</pre>\n\n<h2>See</h2>\n <ul>\n <li><a href=\"http://cwe.mitre.org/data/definitions/595.html\">MITRE, CWE-595</a> - Comparison of Object References Instead of Object Contents</li>\n </ul>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:AstNode_SSLR_class_should_not_be_used", + "name": "AstNode SSLR class should not be used", + "lang": "java", + "desc": "Once strongly typed AST is in place on a language plugin, the AstNode class should not be used anymore. ", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:IndentationCheck", + "name": "Source code should be correctly indented", + "lang": "java", + "desc": "<p>\nProper indentation is a simple and effective way to improve the code's readability.\nConsistent indentation among developers also reduces the differences that are committed to source control systems, making code reviews easier.\n</p>\n\n<p>The following code illustrates this rule with an indentation level of 2:</p>\n\n<pre>\nclass Foo {\n public int a; // Compliant\npublic int b; // Non-Compliant\n}\n</pre>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:S1161", + "name": "\"@Override\" annotation should be used on any method overriding (since Java 5) or implementing (since Java 6) another one", + "lang": "java", + "desc": "<p>Using the <code>@Override</code> annotation is useful for two reasons :</p>\n<ul>\n <li>It elicits a warning from the compiler if the annotated method doesn't actually override anything, as in the case of a misspelling.</li>\n <li>It improves the readability of the source code by making it obvious that methods are overridden.</li>\n</ul>\n<h2>Noncompliant Code Example</h2>\n<pre>\nclass ParentClass {\n public boolean doSomething(){...}\n}\nclass FirstChildClass extends ParentClass {\n public boolean doSomething(){...} //Non-Compliant\n}\n</pre>\n\n<h2>Compliant Solution</h2>\n<pre>\nclass ParentClass {\n public boolean doSomething(){...}\n}\nclass FirstChildClass extends ParentClass {\n @Override\n public boolean doSomething(){...} //Compliant\n}\n</pre>", + "status": "READY", + "langName": "Java" + }, + { + "key": "common-java:DuplicatedBlocks", + "name": "Duplicated blocks", + "lang": "java", + "desc": "<p>An issue is created on a file as soon as there is a block of duplicated code on this file. It gives the number of blocks in the file.</p>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:S1192", + "name": "String literals should not be duplicated", + "lang": "java", + "desc": "<p>\n Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.\n On the other hand, constants can be referenced from many places, but only need to be updated in a single place.\n</p>\n\n<h2>Non Compliant Code Example</h2>\n\n<pre>\npublic void run() {\n prepare(\"action1\"); // Non-Compliant - \"action1\" is duplicated 3 times\n execute(\"action1\");\n release(\"action1\");\n}\n\n@SuppressWarning(\"all\") // Compliant - annotations are excluded\nprivate void method1() { /* ... */ }\n@SuppressWarning(\"all\")\nprivate void method2() { /* ... */ }\n\npublic String method3(String a) {\n System.out.println(\"'\" + a + \"'\"); // Compliant - literal \"'\" has less than 5 characters and is excluded\n return \"\"; // Compliant - literal \"\" has less than 5 characters and is excluded\n}\n</pre>\n\n<h2>Compliant Code Example</h2>\n\n<pre>\nprivate static final String ACTION_1 = \"action1\"; // Compliant\n\npublic void run() {\n prepare(ACTION_1); // Compliant\n execute(ACTION_1);\n release(ACTION_1);\n}\n</pre>\n\n<h2>Exceptions</h2>\n<p>To prevent generating some false-positives, literals having less than 5 characters are excluded.</p>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:MethodCyclomaticComplexity", + "name": "Methods should not be too complex", + "lang": "java", + "desc": "<p>The Cyclomatic Complexity is measured by the number of\n\t(&&, ||) operators and (if, while, do, for, ?:, catch, switch,\n\tcase, return, throw) statements in the body of a class plus one for\n\teach constructor, method (but not getter/setter), static initializer,\n\tor instance initializer in the class. The last return statement in\n\tmethod, if exists, is not taken into account.</p>\n<p>\n\tEven when the Cyclomatic Complexity of a class is very high, this\n\tcomplexity might be well distributed among all methods. Nevertheless,\n\tmost of the time, a very complex class is a class which breaks the <a\n\t\thref=\"http://en.wikipedia.org/wiki/Single_responsibility_principle\">Single\n\t\tResponsibility Principle</a> and which should be re-factored to be split\n\tin several classes.\n</p>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:S1135", + "name": "TODO tags should be handled", + "lang": "java", + "desc": "<p>\n<code>TODO</code> tags are commonly used to mark places where some more code is required, but which the developer wants to implement later.\nSometimes the developer will not have the time or will simply forget to get back to that tag.\nThis rule is meant to track those tags, and ensure that they do not go unnoticed.\n</p>\n\n<p>The following code illustrates this rule:</p>\n\n<pre>\nvoid doSomething() {\n // TODO\n}\n</pre>", + "status": "READY", + "langName": "Java" + }, + { + "key": "common-java:InsufficientBranchCoverage", + "name": "Insufficient branch coverage by unit tests", + "lang": "java", + "desc": "<p>An issue is created on a file as soon as the branch coverage on this file is less than the required threshold.It gives the number of branches to be covered in order to reach the required threshold.</p>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:S00115", + "name": "Constant names should comply with a naming convention", + "lang": "java", + "desc": "<p>\nSharing some naming conventions is a key point to make it possible for a team to efficiently collaborate. This rule allows to check that all constant names match a provided regular expression.\n</p>\n\n<p>\nThe following code snippet illustrates this rule when the regular expression value is \"^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$\":\n</p>\n<pre>\npublic class MyClass {\n public static final int first = 1; // Non-Compliant\n public static final int SECOND = 2; // Compliant\n}\n\npublic enum MyEnum {\n first, // Non-Compliant\n SECOND; // Compliant\n}\n</pre>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:S1134", + "name": "FIXME tags should be handled", + "lang": "java", + "desc": "<p>\n<code>FIXME</code> tags are commonly used to mark places where a bug is suspected, but which the developer wants to deal with later.\nSometimes the developer will not have the time or will simply forget to get back to that tag.\nThis rule is meant to track those tags, and ensure that they do not go unnoticed.\n</p>\n\n<p>The following code illustrates this rule:</p>\n\n<pre>\nint divide(int numerator, int denominator) {\n return numerator / denominator; // FIXME denominator = 0, Non-Compliant\n}\n</pre>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:S1133", + "name": "Deprecated code should be removed eventually", + "lang": "java", + "desc": "<p>\nThis rule is meant to be used as a way to track code which is marked as being deprecated.\nDeprecated code should eventually be removed.\n</p>\n\n<p>\nThe following code illustrates this rule:\n</p>\n\n<pre>\nclass Foo {\n /**\n * @deprecated\n */\n public void foo() { // Non-Compliant\n }\n\n @Deprecated // Non-Compliant\n public void bar() {\n }\n\n public void baz() { // Compliant\n }\n}\n</pre>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:CallToDeprecatedMethod", + "name": "Avoid use of deprecated method", + "lang": "java", + "desc": "<p>Once deprecated, a method should no longer be used as it means\n\tthat the method might be removed sooner or later.</p>", + "status": "READY", + "langName": "Java" + }, + { + "key": "squid:S1228", + "name": "Packages should have a javadoc file 'package-info.java'", + "lang": "java", + "desc": "<p>Each package in a Java project should include a <code>package-info.java</code> file. The purpose of this file is to document the Java package using javadoc and declare package annotations.</p>\n\n<h2>Compliant Solution</h2>\n<pre>\n/**\n* This package has non null parameters and is documented.\n**/\n@ParametersAreNonnullByDefault\npackage org.foo.bar;\n</pre>", + "status": "READY", + "langName": "Java" + } + ], + "facets": [ + { + "property": "rules", + "values": [ + { + "val": "squid:S1161", + "count": 879 + }, + { + "val": "squid:S1135", + "count": 571 + }, + { + "val": "squid:S1133", + "count": 558 + }, + { + "val": "common-java:InsufficientBranchCoverage", + "count": 550 + }, + { + "val": "common-java:DuplicatedBlocks", + "count": 408 + }, + { + "val": "squid:AstNode_SSLR_class_should_not_be_used", + "count": 265 + }, + { + "val": "squid:IndentationCheck", + "count": 264 + }, + { + "val": "squid:CallToDeprecatedMethod", + "count": 237 + }, + { + "val": "squid:MethodCyclomaticComplexity", + "count": 233 + }, + { + "val": "squid:S00115", + "count": 212 + }, + { + "val": "resharper-cs:RedundantUsingDirective", + "count": 175 + }, + { + "val": "squid:S1228", + "count": 174 + }, + { + "val": "squid:S1698", + "count": 139 + }, + { + "val": "squid:S1134", + "count": 113 + }, + { + "val": "squid:S1192", + "count": 111 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-severity.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-severity.json new file mode 100644 index 00000000000..f261766748c --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-issues-by-severity.json @@ -0,0 +1,32 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "severities", + "values": [ + { + "val": "MAJOR", + "count": 5027 + }, + { + "val": "INFO", + "count": 1178 + }, + { + "val": "MINOR", + "count": 540 + }, + { + "val": "CRITICAL", + "count": 105 + }, + { + "val": "BLOCKER", + "count": 1 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-unassigned-issues-by-assignee.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-unassigned-issues-by-assignee.json new file mode 100644 index 00000000000..eec6932ed8c --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-unassigned-issues-by-assignee.json @@ -0,0 +1,48 @@ +{ + "total": 4134, + "p": 1, + "ps": 1, + "users": [ + { + "login": "second.user", + "name": "Second User", + "active": true, + "email": "second.user@example.com" + }, + { + "login": "third.user", + "name": "Third User", + "active": true, + "email": "third.user@example .com" + }, + { + "login": "first.user", + "name": "First User", + "active": true, + "email": "first.user@example.com" + } + ], + "facets": [ + { + "property": "assignees", + "values": [ + { + "val": "", + "count": 4134 + }, + { + "val": "first.user", + "count": 698 + }, + { + "val": "second.user", + "count": 504 + }, + { + "val": "third.user", + "count": 426 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-unplanned-issues-by-action-plan.json b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-unplanned-issues-by-action-plan.json new file mode 100644 index 00000000000..94eba943db2 --- /dev/null +++ b/server/sonar-web/src/test/json/global-issues-filter-widget/unresolved-unplanned-issues-by-action-plan.json @@ -0,0 +1,63 @@ +{ + "total": 5877, + "p": 1, + "ps": 1, + "actionPlans": [ + { + "key": "0cf48508-2fcd-4cb8-a50b-c5cd7c3decc0", + "name": "First Action Plan", + "status": "OPEN", + "project": "example:project", + "userLogin": "example.login", + "createdAt": "2014-04-03T12:28:05+0200", + "fCreatedAt": "Apr 3, 2014 12:28 PM", + "updatedAt": "2014-04-03T12:28:05+0200", + "fUpdatedAt": "Apr 3, 2014 12:28 PM" + }, + { + "key": "1b9e7e52-ff58-40c1-80bf-f68429a3275e", + "name": "Second Action Plan", + "status": "OPEN", + "project": "example:project", + "userLogin": "example.login", + "createdAt": "2014-04-03T12:28:05+0200", + "fCreatedAt": "Apr 3, 2014 12:28 PM", + "updatedAt": "2014-04-03T12:28:05+0200", + "fUpdatedAt": "Apr 3, 2014 12:28 PM" + }, + { + "key": "8c1d5d01-948e-4670-a0d9-17c512979486", + "name": "Third Action Plan", + "status": "OPEN", + "project": "example:project", + "userLogin": "example.login", + "createdAt": "2014-04-03T12:28:05+0200", + "fCreatedAt": "Apr 3, 2014 12:28 PM", + "updatedAt": "2014-04-03T12:28:05+0200", + "fUpdatedAt": "Apr 3, 2014 12:28 PM" + } + ], + "facets": [ + { + "property": "actionPlans", + "values": [ + { + "val": "", + "count": 5877 + }, + { + "val": "0cf48508-2fcd-4cb8-a50b-c5cd7c3decc0", + "count": 532 + }, + { + "val": "1b9e7e52-ff58-40c1-80bf-f68429a3275e", + "count": 56 + }, + { + "val": "8c1d5d01-948e-4670-a0d9-17c512979486", + "count": 52 + } + ] + } + ] +} 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/test/json/project-issues-filter-widget/unresolved-issues-by-date.json b/server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-date.json new file mode 100644 index 00000000000..54153d9897b --- /dev/null +++ b/server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-date.json @@ -0,0 +1,32 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "createdAt", + "values": [ + { + "val": "2011-01-01T01:00:00+0000", + "count": 72 + }, + { + "val": "2012-01-01T01:00:00+0000", + "count": 64 + }, + { + "val": "2013-01-01T01:00:00+0000", + "count": 1262 + }, + { + "val": "2014-01-01T01:00:00+0000", + "count": 3729 + }, + { + "val": "2015-01-01T01:00:00+0000", + "count": 1724 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-severity-with-differential-period.json b/server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-severity-with-differential-period.json new file mode 100644 index 00000000000..afa5ed4f5cc --- /dev/null +++ b/server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-severity-with-differential-period.json @@ -0,0 +1,32 @@ +{ + "total": 549, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "severities", + "values": [ + { + "val": "MAJOR", + "count": 306 + }, + { + "val": "MINOR", + "count": 135 + }, + { + "val": "CRITICAL", + "count": 59 + }, + { + "val": "INFO", + "count": 49 + }, + { + "val": "BLOCKER", + "count": 0 + } + ] + } + ] +} diff --git a/server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-severity.json b/server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-severity.json new file mode 100644 index 00000000000..f261766748c --- /dev/null +++ b/server/sonar-web/src/test/json/project-issues-filter-widget/unresolved-issues-by-severity.json @@ -0,0 +1,32 @@ +{ + "total": 6851, + "p": 1, + "ps": 1, + "facets": [ + { + "property": "severities", + "values": [ + { + "val": "MAJOR", + "count": 5027 + }, + { + "val": "INFO", + "count": 1178 + }, + { + "val": "MINOR", + "count": 540 + }, + { + "val": "CRITICAL", + "count": 105 + }, + { + "val": "BLOCKER", + "count": 1 + } + ] + } + ] +} 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/test/json/source-viewer-coverage/app.json b/server/sonar-web/src/test/json/source-viewer-coverage/app.json new file mode 100644 index 00000000000..bfee785a15c --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-coverage/app.json @@ -0,0 +1,19 @@ +{ + "uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaa", + "key": "sample:sample", + "path": "sample/path", + "name": "Sample", + "longName": "Sample", + "q": "FIL", + "subProject": "sample:subproject", + "subProjectName": "Sample Sub-Project", + "project": "sample:project", + "projectName": "Sample Project", + "fav": false, + "canMarkAsFavourite": true, + "canCreateManualIssue": true, + "measures": { + "lines": "20", + "duplicationDensity": "25%" + } +} diff --git a/server/sonar-web/src/test/json/source-viewer-coverage/issues.json b/server/sonar-web/src/test/json/source-viewer-coverage/issues.json new file mode 100644 index 00000000000..40edd884b11 --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-coverage/issues.json @@ -0,0 +1,14 @@ +{ + "total": 0, + "p": 1, + "ps": 100, + "issues": [], + "maxResultsReached": false, + "paging": { + "pageIndex": 1, + "pageSize": 100, + "total": 0, + "fTotal": "0", + "pages": 1 + } +} diff --git a/server/sonar-web/src/test/json/source-viewer-coverage/lines.json b/server/sonar-web/src/test/json/source-viewer-coverage/lines.json new file mode 100644 index 00000000000..3b0947ab08b --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-coverage/lines.json @@ -0,0 +1,18 @@ +{"sources": [ + { "line": 1, "code": "line 1" }, + { "line": 2, "code": "line 2" }, + { "line": 3, "code": "line 3" }, + { "line": 4, "code": "line 4" }, + { "line": 5, "code": "line 5" }, + { "line": 6, "code": "line 6" }, + { "line": 7, "code": "line 7" }, + { "line": 8, "code": "line 8" }, + { "line": 9, "code": "line 9" }, + { "line": 10, "code": "line 10" }, + { "line": 11, "code": "line 11", "utLineHits": 3 }, + { "line": 16, "code": "line 16" }, + { "line": 17, "code": "line 17" }, + { "line": 18, "code": "line 18" }, + { "line": 19, "code": "line 19" }, + { "line": 20, "code": "line 20" } +]} diff --git a/server/sonar-web/src/test/json/source-viewer-coverage/test-cases.json b/server/sonar-web/src/test/json/source-viewer-coverage/test-cases.json new file mode 100644 index 00000000000..db0ef3fb827 --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-coverage/test-cases.json @@ -0,0 +1,17 @@ +{ + "tests": [ + { + "name": "sampleTest", + "status": "OK", + "durationInMs": 2, + "_ref": "1" + } + ], + "files": { + "1": { + "uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbb", + "key": "test:sample", + "longName": "SampleTest" + } + } +} 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-create-manual-issue/lines.json b/server/sonar-web/src/test/json/source-viewer-create-manual-issue/lines.json index e33d02b2465..2983d8e4728 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-create-manual-issue/lines.json @@ -313,7 +313,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 46, @@ -321,7 +321,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 47, @@ -329,7 +329,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 48, @@ -337,7 +337,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 49, @@ -359,7 +359,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 52, @@ -367,7 +367,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 53, @@ -396,7 +396,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 57, @@ -404,7 +404,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 58, @@ -433,7 +433,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 62, @@ -441,7 +441,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 63, @@ -470,7 +470,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 67, @@ -478,7 +478,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 68, @@ -514,7 +514,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 73, @@ -522,7 +522,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 74, @@ -530,7 +530,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 75, @@ -538,7 +538,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 76, @@ -546,7 +546,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 77, @@ -603,7 +603,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 85, @@ -611,7 +611,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 86, @@ -668,7 +668,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 94, @@ -676,7 +676,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 95, @@ -733,7 +733,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 103, @@ -741,7 +741,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 104, @@ -798,7 +798,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 112, @@ -806,7 +806,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 113, @@ -856,7 +856,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 120, @@ -864,9 +864,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 121, @@ -874,7 +874,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 122, @@ -889,7 +889,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 124, @@ -897,7 +897,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 125, @@ -912,7 +912,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 127, @@ -948,7 +948,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 132, @@ -956,7 +956,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 133, @@ -985,7 +985,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 137, @@ -993,7 +993,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 138, @@ -1022,7 +1022,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 142, @@ -1030,7 +1030,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 143, @@ -1059,7 +1059,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 147, @@ -1067,7 +1067,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 148, @@ -1103,7 +1103,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", "scmDate": "2013-10-10T12:18:02+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 153, @@ -1111,7 +1111,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", "scmDate": "2013-10-10T12:18:02+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 154, @@ -1119,7 +1119,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", "scmDate": "2013-10-10T12:18:02+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 155, @@ -1134,7 +1134,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", "scmDate": "2013-10-10T12:18:02+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 157, @@ -1170,7 +1170,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 162, @@ -1178,7 +1178,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 163, @@ -1207,7 +1207,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 167, @@ -1215,7 +1215,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 168, @@ -1244,7 +1244,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 172, @@ -1252,7 +1252,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 173, @@ -1281,7 +1281,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 177, @@ -1289,7 +1289,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 178, @@ -1325,7 +1325,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "6f1161efb92298ace498df544e38f6f97216ec36", "scmDate": "2013-04-26T15:19:16+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 183, @@ -1333,7 +1333,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 184, @@ -1348,7 +1348,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 186, @@ -1419,7 +1419,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 196, @@ -1427,7 +1427,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 197, @@ -1456,7 +1456,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 201, @@ -1464,7 +1464,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 202, @@ -1493,7 +1493,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 206, @@ -1501,7 +1501,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 207, @@ -1530,7 +1530,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 211, @@ -1538,7 +1538,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 212, @@ -1574,7 +1574,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 217, @@ -1582,7 +1582,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 218, @@ -1590,7 +1590,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 219, @@ -1598,7 +1598,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 220, @@ -1606,7 +1606,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 221, @@ -1614,7 +1614,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 222, @@ -1678,7 +1678,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 231, @@ -1686,7 +1686,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 232, @@ -1694,7 +1694,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 233, @@ -1702,7 +1702,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 234, @@ -1710,7 +1710,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 235, @@ -1718,7 +1718,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 236, @@ -1803,7 +1803,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 248, @@ -1811,7 +1811,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 249, @@ -1819,7 +1819,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 250, @@ -1827,7 +1827,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 251, @@ -1835,7 +1835,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 252, @@ -1843,9 +1843,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 253, @@ -1853,7 +1853,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 254, @@ -1868,7 +1868,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 256, @@ -1876,7 +1876,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 257, @@ -1884,7 +1884,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 258, @@ -1934,7 +1934,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 265, @@ -1942,7 +1942,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 266, @@ -1950,7 +1950,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 267, @@ -1958,7 +1958,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 268, @@ -1966,7 +1966,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 269, @@ -1974,7 +1974,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 270, @@ -1982,9 +1982,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 271, @@ -1992,7 +1992,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 272, @@ -2007,7 +2007,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 274, @@ -2015,7 +2015,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 275, @@ -2023,7 +2023,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 276, @@ -2101,7 +2101,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 287, @@ -2109,7 +2109,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 288, @@ -2117,7 +2117,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 289, @@ -2125,7 +2125,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 290, @@ -2133,9 +2133,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 291, @@ -2143,7 +2143,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 292, @@ -2158,7 +2158,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 294, @@ -2166,7 +2166,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 295, @@ -2174,7 +2174,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 296, @@ -2238,7 +2238,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 305, @@ -2246,7 +2246,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 306, @@ -2254,7 +2254,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 307, @@ -2262,7 +2262,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 308, @@ -2270,7 +2270,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 309, @@ -2278,7 +2278,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 310, @@ -2286,7 +2286,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", "scmDate": "2014-06-20T14:13:01+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 311, @@ -2322,7 +2322,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", "scmDate": "2014-06-20T14:13:01+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 316, @@ -2379,7 +2379,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 324, @@ -2387,7 +2387,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 325, @@ -2395,7 +2395,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 326, @@ -2403,7 +2403,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 327, @@ -2411,7 +2411,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 328, @@ -2419,7 +2419,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "46395126b184c343df5471a147cdb48133f59f6f", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 329, @@ -2427,7 +2427,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", "scmDate": "2014-06-20T14:13:01+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 330, @@ -2491,7 +2491,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 339, @@ -2499,7 +2499,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 340, @@ -2507,7 +2507,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 341, @@ -2515,7 +2515,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 342, @@ -2523,7 +2523,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 343, @@ -2531,7 +2531,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", "scmDate": "2014-06-20T14:13:01+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 344, @@ -2567,7 +2567,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 349, @@ -2575,7 +2575,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 350, @@ -2583,7 +2583,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 351, @@ -2612,7 +2612,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 355, @@ -2620,7 +2620,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 356, @@ -2628,7 +2628,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 357, @@ -2657,7 +2657,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 361, @@ -2665,7 +2665,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 362, @@ -2673,7 +2673,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 363, @@ -2695,7 +2695,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 366, @@ -2703,7 +2703,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 367, @@ -2711,7 +2711,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 368, @@ -2733,7 +2733,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 371, @@ -2741,7 +2741,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 372, @@ -2749,7 +2749,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 373, @@ -2771,7 +2771,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 376, @@ -2779,9 +2779,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0, - "conditions": 2, - "coveredConditions": 0 + "utLineHits": 0, + "utConditions": 2, + "utCoveredConditions": 0 }, { "line": 377, @@ -2789,7 +2789,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 378, @@ -2804,7 +2804,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 380, @@ -2868,7 +2868,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 389, @@ -2876,7 +2876,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 390, @@ -2884,7 +2884,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 391, @@ -2913,7 +2913,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 395, @@ -2970,7 +2970,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 403, @@ -2978,7 +2978,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -2987,7 +2987,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -2996,7 +2996,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3037,7 +3037,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3046,7 +3046,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0, + "utLineHits": 0, "duplicated": true }, { @@ -3055,7 +3055,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0, + "utLineHits": 0, "duplicated": true }, { @@ -3118,7 +3118,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 421, @@ -3126,7 +3126,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 422, @@ -3134,7 +3134,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 423, @@ -3142,7 +3142,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 424, @@ -3150,9 +3150,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 1 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 1 }, { "line": 425, @@ -3160,7 +3160,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 426, @@ -3175,7 +3175,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 428, @@ -3211,7 +3211,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "34cce8e330192c56a159a856ebd8072d38299087", "scmDate": "2014-02-24T14:21:50+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 433, @@ -3261,7 +3261,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 440, @@ -3269,7 +3269,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 441, @@ -3277,7 +3277,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 442, @@ -3306,7 +3306,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 446, @@ -3363,7 +3363,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 454, @@ -3371,7 +3371,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3380,7 +3380,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3389,7 +3389,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3430,7 +3430,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3439,7 +3439,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 0, + "utLineHits": 0, "duplicated": true }, { @@ -3448,7 +3448,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 0, + "utLineHits": 0, "duplicated": true }, { @@ -3511,7 +3511,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 472, @@ -3519,7 +3519,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 473, @@ -3527,7 +3527,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 474, @@ -3535,7 +3535,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 475, @@ -3543,9 +3543,9 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 1 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 1 }, { "line": 476, @@ -3553,7 +3553,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 477, @@ -3561,7 +3561,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 478, @@ -3569,7 +3569,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 479, @@ -3577,9 +3577,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 480, @@ -3587,7 +3587,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 481, @@ -3602,7 +3602,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 483, @@ -3617,7 +3617,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 485, @@ -3653,7 +3653,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "34cce8e330192c56a159a856ebd8072d38299087", "scmDate": "2014-02-24T14:21:50+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 490, @@ -3710,7 +3710,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 498, @@ -3718,7 +3718,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 499, @@ -3726,7 +3726,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 500, @@ -3734,7 +3734,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 501, @@ -3756,7 +3756,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 504, @@ -3792,7 +3792,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 509, @@ -3828,7 +3828,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 514, diff --git a/server/sonar-web/src/test/json/source-viewer-duplications/app.json b/server/sonar-web/src/test/json/source-viewer-duplications/app.json new file mode 100644 index 00000000000..bfee785a15c --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-duplications/app.json @@ -0,0 +1,19 @@ +{ + "uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaa", + "key": "sample:sample", + "path": "sample/path", + "name": "Sample", + "longName": "Sample", + "q": "FIL", + "subProject": "sample:subproject", + "subProjectName": "Sample Sub-Project", + "project": "sample:project", + "projectName": "Sample Project", + "fav": false, + "canMarkAsFavourite": true, + "canCreateManualIssue": true, + "measures": { + "lines": "20", + "duplicationDensity": "25%" + } +} diff --git a/server/sonar-web/src/test/json/source-viewer-duplications/duplications.json b/server/sonar-web/src/test/json/source-viewer-duplications/duplications.json new file mode 100644 index 00000000000..7da4385b3a5 --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-duplications/duplications.json @@ -0,0 +1,41 @@ +{ + "duplications": [ + { + "blocks": [ + { + "from": 11, + "size": 5, + "_ref": "1" + }, + { + "from": 12, + "size": 5, + "_ref": "2" + } + ] + } + ], + "files": { + "2": { + "uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbb", + "key": "duplicated:duplicated", + "name": "Duplicated", + "q": "FIL", + "subProject": "duplicated:subproject", + "subProjectName": "Duplicated Sub-Project", + "project": "duplicated:project", + "projectName": "Duplicated Project" + }, + "1": { + "uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaa", + "key": "sample:sample", + "name": "Sample", + "longName": "Sample", + "q": "FIL", + "subProject": "sample:subproject", + "subProjectName": "Sample Sub-Project", + "project": "sample:project", + "projectName": "Sample Project" + } + } +} diff --git a/server/sonar-web/src/test/json/source-viewer-duplications/issues.json b/server/sonar-web/src/test/json/source-viewer-duplications/issues.json new file mode 100644 index 00000000000..40edd884b11 --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-duplications/issues.json @@ -0,0 +1,14 @@ +{ + "total": 0, + "p": 1, + "ps": 100, + "issues": [], + "maxResultsReached": false, + "paging": { + "pageIndex": 1, + "pageSize": 100, + "total": 0, + "fTotal": "0", + "pages": 1 + } +} diff --git a/server/sonar-web/src/test/json/source-viewer-duplications/lines.json b/server/sonar-web/src/test/json/source-viewer-duplications/lines.json new file mode 100644 index 00000000000..5fc7b0cb4de --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-duplications/lines.json @@ -0,0 +1,22 @@ +{"sources": [ + { "line": 1, "code": "line 1" }, + { "line": 2, "code": "line 2" }, + { "line": 3, "code": "line 3" }, + { "line": 4, "code": "line 4" }, + { "line": 5, "code": "line 5" }, + { "line": 6, "code": "line 6" }, + { "line": 7, "code": "line 7" }, + { "line": 8, "code": "line 8" }, + { "line": 9, "code": "line 9" }, + { "line": 10, "code": "line 10" }, + { "line": 11, "code": "line 11", "duplicated": true }, + { "line": 12, "code": "line 12", "duplicated": true }, + { "line": 13, "code": "line 13", "duplicated": true }, + { "line": 14, "code": "line 14", "duplicated": true }, + { "line": 15, "code": "line 15", "duplicated": true }, + { "line": 16, "code": "line 16" }, + { "line": 17, "code": "line 17" }, + { "line": 18, "code": "line 18" }, + { "line": 19, "code": "line 19" }, + { "line": 20, "code": "line 20" } +]} diff --git a/server/sonar-web/src/test/json/source-viewer-scm/app.json b/server/sonar-web/src/test/json/source-viewer-scm/app.json new file mode 100644 index 00000000000..bfee785a15c --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-scm/app.json @@ -0,0 +1,19 @@ +{ + "uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaa", + "key": "sample:sample", + "path": "sample/path", + "name": "Sample", + "longName": "Sample", + "q": "FIL", + "subProject": "sample:subproject", + "subProjectName": "Sample Sub-Project", + "project": "sample:project", + "projectName": "Sample Project", + "fav": false, + "canMarkAsFavourite": true, + "canCreateManualIssue": true, + "measures": { + "lines": "20", + "duplicationDensity": "25%" + } +} diff --git a/server/sonar-web/src/test/json/source-viewer-scm/issues.json b/server/sonar-web/src/test/json/source-viewer-scm/issues.json new file mode 100644 index 00000000000..40edd884b11 --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-scm/issues.json @@ -0,0 +1,14 @@ +{ + "total": 0, + "p": 1, + "ps": 100, + "issues": [], + "maxResultsReached": false, + "paging": { + "pageIndex": 1, + "pageSize": 100, + "total": 0, + "fTotal": "0", + "pages": 1 + } +} diff --git a/server/sonar-web/src/test/json/source-viewer-scm/lines.json b/server/sonar-web/src/test/json/source-viewer-scm/lines.json new file mode 100644 index 00000000000..c934ddd0e0a --- /dev/null +++ b/server/sonar-web/src/test/json/source-viewer-scm/lines.json @@ -0,0 +1,11 @@ +{ + "sources": [ + { + "line": 1, + "code": "line 1", + "scmAuthor": "sample-author", + "scmDate": "2015-01-01T00:00:00+0000", + "scmRevision": "samplerevision" + } + ] +} 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-spec/lines.json b/server/sonar-web/src/test/json/source-viewer-spec/lines.json index e33d02b2465..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-spec/lines.json @@ -313,7 +313,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 46, @@ -321,7 +321,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 47, @@ -329,7 +329,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 48, @@ -337,7 +337,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 49, @@ -359,7 +359,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 52, @@ -367,7 +367,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 53, @@ -396,7 +396,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 57, @@ -404,7 +404,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 58, @@ -433,7 +433,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 62, @@ -441,7 +441,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 63, @@ -470,7 +470,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 67, @@ -478,7 +478,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 68, @@ -514,7 +514,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 73, @@ -522,7 +522,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 74, @@ -530,7 +530,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 75, @@ -538,7 +538,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 76, @@ -546,7 +546,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 77, @@ -603,7 +603,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 85, @@ -611,7 +611,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 86, @@ -668,7 +668,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 94, @@ -676,7 +676,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 95, @@ -733,7 +733,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 103, @@ -741,7 +741,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 104, @@ -798,7 +798,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 112, @@ -806,7 +806,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 113, @@ -856,7 +856,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 120, @@ -864,9 +864,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 121, @@ -874,7 +874,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 122, @@ -889,7 +889,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 124, @@ -897,7 +897,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 125, @@ -912,7 +912,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 127, @@ -948,7 +948,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 132, @@ -956,7 +956,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 133, @@ -985,7 +985,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 137, @@ -993,7 +993,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 138, @@ -1022,7 +1022,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 142, @@ -1030,7 +1030,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 143, @@ -1059,7 +1059,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 147, @@ -1067,7 +1067,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 148, @@ -1103,7 +1103,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", "scmDate": "2013-10-10T12:18:02+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 153, @@ -1111,7 +1111,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", "scmDate": "2013-10-10T12:18:02+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 154, @@ -1119,7 +1119,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", "scmDate": "2013-10-10T12:18:02+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 155, @@ -1134,7 +1134,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e108f5de333cf36aff978aa03940590f9caca9fc", "scmDate": "2013-10-10T12:18:02+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 157, @@ -1170,7 +1170,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 162, @@ -1178,7 +1178,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 163, @@ -1207,7 +1207,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 167, @@ -1215,7 +1215,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 168, @@ -1244,7 +1244,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 172, @@ -1252,7 +1252,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 173, @@ -1281,7 +1281,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 177, @@ -1289,7 +1289,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 178, @@ -1325,7 +1325,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "6f1161efb92298ace498df544e38f6f97216ec36", "scmDate": "2013-04-26T15:19:16+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 183, @@ -1333,7 +1333,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 184, @@ -1348,7 +1348,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 186, @@ -1419,7 +1419,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 196, @@ -1427,7 +1427,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 197, @@ -1456,7 +1456,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 201, @@ -1464,7 +1464,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 202, @@ -1493,7 +1493,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 206, @@ -1501,7 +1501,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 207, @@ -1530,7 +1530,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 211, @@ -1538,7 +1538,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 212, @@ -1574,7 +1574,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 217, @@ -1582,7 +1582,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 218, @@ -1590,7 +1590,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 219, @@ -1598,7 +1598,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 220, @@ -1606,7 +1606,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 221, @@ -1614,7 +1614,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 222, @@ -1678,7 +1678,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 231, @@ -1686,7 +1686,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 232, @@ -1694,7 +1694,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 233, @@ -1702,7 +1702,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 234, @@ -1710,7 +1710,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 235, @@ -1718,7 +1718,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 236, @@ -1803,7 +1803,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 248, @@ -1811,7 +1811,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 249, @@ -1819,7 +1819,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 250, @@ -1827,7 +1827,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 251, @@ -1835,7 +1835,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 252, @@ -1843,9 +1843,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 253, @@ -1853,7 +1853,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 254, @@ -1868,7 +1868,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 256, @@ -1876,7 +1876,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 257, @@ -1884,7 +1884,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 258, @@ -1934,7 +1934,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 265, @@ -1942,7 +1942,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 266, @@ -1950,7 +1950,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 267, @@ -1958,7 +1958,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 268, @@ -1966,7 +1966,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 269, @@ -1974,7 +1974,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 270, @@ -1982,9 +1982,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 271, @@ -1992,7 +1992,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 272, @@ -2007,7 +2007,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 274, @@ -2015,7 +2015,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 275, @@ -2023,7 +2023,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 276, @@ -2101,7 +2101,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 287, @@ -2109,7 +2109,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 288, @@ -2117,7 +2117,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 289, @@ -2125,7 +2125,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 290, @@ -2133,9 +2133,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 291, @@ -2143,7 +2143,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 292, @@ -2158,7 +2158,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 294, @@ -2166,7 +2166,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 295, @@ -2174,7 +2174,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 296, @@ -2238,7 +2238,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 305, @@ -2246,7 +2246,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 306, @@ -2254,7 +2254,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 307, @@ -2262,7 +2262,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 308, @@ -2270,7 +2270,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 309, @@ -2278,7 +2278,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "171cd79c0b5152461434951ed5d6e5e58849a7b7", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 310, @@ -2286,7 +2286,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", "scmDate": "2014-06-20T14:13:01+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 311, @@ -2322,7 +2322,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", "scmDate": "2014-06-20T14:13:01+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 316, @@ -2379,7 +2379,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 324, @@ -2387,7 +2387,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 325, @@ -2395,7 +2395,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 326, @@ -2403,7 +2403,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 327, @@ -2411,7 +2411,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 328, @@ -2419,7 +2419,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "46395126b184c343df5471a147cdb48133f59f6f", "scmDate": "2014-04-23T14:41:32+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 329, @@ -2427,7 +2427,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", "scmDate": "2014-06-20T14:13:01+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 330, @@ -2491,7 +2491,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 339, @@ -2499,7 +2499,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 340, @@ -2507,7 +2507,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 341, @@ -2515,7 +2515,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 342, @@ -2523,7 +2523,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "26edff10d133e29e7013f803e7ef0d69ff593aeb", "scmDate": "2013-04-16T17:26:34+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 343, @@ -2531,7 +2531,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "904b462c56317b1fb5a616534bd58aa9c9097d0b", "scmDate": "2014-06-20T14:13:01+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 344, @@ -2567,7 +2567,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 349, @@ -2575,7 +2575,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 350, @@ -2583,7 +2583,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 351, @@ -2612,7 +2612,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 355, @@ -2620,7 +2620,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 356, @@ -2628,7 +2628,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 357, @@ -2657,7 +2657,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 361, @@ -2665,7 +2665,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 362, @@ -2673,7 +2673,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 363, @@ -2695,7 +2695,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 366, @@ -2703,7 +2703,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 367, @@ -2711,7 +2711,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 368, @@ -2733,7 +2733,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 371, @@ -2741,7 +2741,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 372, @@ -2749,7 +2749,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 373, @@ -2771,7 +2771,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 376, @@ -2779,9 +2779,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0, - "conditions": 2, - "coveredConditions": 0 + "utLineHits": 0, + "utConditions": 2, + "utCoveredConditions": 0 }, { "line": 377, @@ -2789,7 +2789,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 378, @@ -2804,7 +2804,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 380, @@ -2868,7 +2868,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 389, @@ -2876,7 +2876,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 390, @@ -2884,7 +2884,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 391, @@ -2913,7 +2913,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 395, @@ -2970,7 +2970,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 403, @@ -2978,7 +2978,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -2987,7 +2987,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -2996,7 +2996,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3037,7 +3037,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3046,7 +3046,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0, + "utLineHits": 0, "duplicated": true }, { @@ -3055,7 +3055,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 0, + "utLineHits": 0, "duplicated": true }, { @@ -3118,7 +3118,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 421, @@ -3126,7 +3126,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 422, @@ -3134,7 +3134,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 423, @@ -3142,7 +3142,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 424, @@ -3150,9 +3150,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "babb50a4f143c312df1ba45955d3d589ecb2845f", "scmDate": "2013-05-29T14:27:38+0200", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 1 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 1 }, { "line": 425, @@ -3160,7 +3160,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 426, @@ -3175,7 +3175,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 428, @@ -3211,7 +3211,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "34cce8e330192c56a159a856ebd8072d38299087", "scmDate": "2014-02-24T14:21:50+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 433, @@ -3261,7 +3261,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 440, @@ -3269,7 +3269,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 441, @@ -3277,7 +3277,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 442, @@ -3306,7 +3306,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 446, @@ -3363,7 +3363,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 454, @@ -3371,7 +3371,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3380,7 +3380,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3389,7 +3389,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3430,7 +3430,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, + "utLineHits": 1, "duplicated": true }, { @@ -3439,7 +3439,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 0, + "utLineHits": 0, "duplicated": true }, { @@ -3448,7 +3448,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 0, + "utLineHits": 0, "duplicated": true }, { @@ -3511,7 +3511,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 472, @@ -3519,7 +3519,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 473, @@ -3527,7 +3527,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 474, @@ -3535,7 +3535,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 475, @@ -3543,9 +3543,9 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 1 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 1 }, { "line": 476, @@ -3553,7 +3553,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 477, @@ -3561,7 +3561,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 478, @@ -3569,7 +3569,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 479, @@ -3577,9 +3577,9 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1, - "conditions": 2, - "coveredConditions": 2 + "utLineHits": 1, + "utConditions": 2, + "utCoveredConditions": 2 }, { "line": 480, @@ -3587,7 +3587,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 481, @@ -3602,7 +3602,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 483, @@ -3617,7 +3617,7 @@ "scmAuthor": "julien.henry@sonarsource.com", "scmRevision": "cc071cc29e8c4d4592282313a3ca2ec376fd7f71", "scmDate": "2014-05-01T00:00:12+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 485, @@ -3653,7 +3653,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "34cce8e330192c56a159a856ebd8072d38299087", "scmDate": "2014-02-24T14:21:50+0100", - "lineHits": 0 + "utLineHits": 0 }, { "line": 490, @@ -3710,7 +3710,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "e486fe02a0a38d3d9fb70690f7870c77e2265254", "scmDate": "2014-02-20T07:23:08+0100", - "lineHits": 1 + "utLineHits": 1 }, { "line": 498, @@ -3718,7 +3718,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 499, @@ -3726,7 +3726,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 500, @@ -3734,7 +3734,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 501, @@ -3756,7 +3756,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 504, @@ -3792,7 +3792,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 1 + "utLineHits": 1 }, { "line": 509, @@ -3828,7 +3828,7 @@ "scmAuthor": "simon.brandhof@gmail.com", "scmRevision": "b5eb47872b34aa9d017dca62abfe49b2fd7af61b", "scmDate": "2013-04-17T10:35:23+0200", - "lineHits": 0 + "utLineHits": 0 }, { "line": 514, 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..82204cdacfe 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,16 @@ exports.assertLinkHref = function assertElementCount(selector, href, message) { } }); }; + + +exports.sendCoverage = function () { + return casper.evaluate(function () { + 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/test/views/issue-filter-widget.jade b/server/sonar-web/src/test/views/issue-filter-widget.jade new file mode 100644 index 00000000000..97a22c3de73 --- /dev/null +++ b/server/sonar-web/src/test/views/issue-filter-widget.jade @@ -0,0 +1,9 @@ +extends layouts/main + +block header + script(src='../js/require.js') + script. + requirejs.config({ baseUrl: '/js' }); + +block body + #issue-filter-widget 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 |