aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2015-01-08 17:09:18 +0100
committerStas Vilchik <vilchiks@gmail.com>2015-01-08 17:09:26 +0100
commit80ce9c47fc03e62a6049a23a1078bc7a3017d26a (patch)
tree21adf2269c3df7e2b714a8d020a3f64bcb0bdbe3
parent91b12c9203cdc1bfca80ff4f63c9501b16327f16 (diff)
downloadsonarqube-80ce9c47fc03e62a6049a23a1078bc7a3017d26a.tar.gz
sonarqube-80ce9c47fc03e62a6049a23a1078bc7a3017d26a.zip
SONAR-6031 Issue permalink must display source code, not the list with single result
-rw-r--r--server/sonar-web/src/main/coffee/issues/controller.coffee7
-rw-r--r--server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink.js8
-rw-r--r--server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/components-app.json21
-rw-r--r--server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/lines.json392
4 files changed, 426 insertions, 2 deletions
diff --git a/server/sonar-web/src/main/coffee/issues/controller.coffee b/server/sonar-web/src/main/coffee/issues/controller.coffee
index 4bc75e7d472..25ed07e0854 100644
--- a/server/sonar-web/src/main/coffee/issues/controller.coffee
+++ b/server/sonar-web/src/main/coffee/issues/controller.coffee
@@ -65,10 +65,17 @@ define [
total: r.total
maxResultsReached: r.p * r.ps >= r.total
window.process.finishBackgroundProcess fetchIssuesProcess
+ if firstPage && @isIssuePermalink()
+ @showComponentViewer @options.app.list.first()
.fail ->
window.process.failBackgroundProcess fetchIssuesProcess
+ isIssuePermalink: ->
+ query = @options.app.state.get('query')
+ query.issues? && @options.app.list.length == 1
+
+
fetchFilters: ->
$.get "#{baseUrl}/api/issue_filters/app", (r) =>
@options.app.state.set
diff --git a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink.js b/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink.js
index befc79da2cb..ca9d7a51984 100644
--- a/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink.js
+++ b/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink.js
@@ -10,18 +10,22 @@ lib.changeWorkingDirectory('issues-page-should-open-issue-permalink');
var issueKey = 'some-issue-key';
-casper.test.begin('issues-page-should-open-issue-permalink', function (test) {
+casper.test.begin('issues-page-should-open-issue-permalink', 3, function (test) {
casper
.start(lib.buildUrl('issues#issues=' + encodeURI(issueKey)), function () {
lib.setDefaultViewport();
lib.mockRequest('/api/l10n/index', '{}');
lib.mockRequestFromFile('/api/issue_filters/app', 'app.json');
+ lib.mockRequest('/api/issues/search', '{}', { data: { issues: issueKey, p: 2 } });
lib.mockRequestFromFile('/api/issues/search', 'search.json', { data: { issues: issueKey } });
+ lib.mockRequestFromFile('/api/components/app', 'components-app.json');
+ lib.mockRequestFromFile('/api/sources/lines', 'lines.json');
})
.then(function () {
- casper.waitForSelector('.issue', function () {
+ casper.waitForSelector('.source-line', function () {
+ test.assertSelectorContains('.source-viewer', 'public void executeOn(Project project, SensorContext context');
test.assertElementCount('.issue', 1);
test.assertExist('.issue[data-key="' + issueKey + '"]');
});
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/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/components-app.json
new file mode 100644
index 00000000000..61afe8a34c8
--- /dev/null
+++ b/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/components-app.json
@@ -0,0 +1,21 @@
+{
+ "key": "org.codehaus.sonar-plugins:sonar-issues-report-plugin:src/main/java/org/sonar/issuesreport/ReportJob.java",
+ "uuid": "98662175-0f52-4f83-b0e9-1e9444320b5b",
+ "path": "src/main/java/org/sonar/issuesreport/ReportJob.java",
+ "name": "ReportJob.java",
+ "longName": "src/main/java/org/sonar/issuesreport/ReportJob.java",
+ "q": "FIL",
+ "project": "org.codehaus.sonar-plugins:sonar-issues-report-plugin",
+ "projectName": "Sonar :: Issues Report :: Plugin",
+ "fav": false,
+ "canMarkAsFavourite": true,
+ "canCreateManualIssue": true,
+ "measures": {
+ "lines": "53",
+ "coverage": "100.0%",
+ "issues": "1",
+ "debt": "5min",
+ "sqaleRating": "A",
+ "debtRatio": "0.6%"
+ }
+}
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/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/lines.json
new file mode 100644
index 00000000000..cd2053d91d6
--- /dev/null
+++ b/server/sonar-web/src/main/js/tests/e2e/tests/issues-page-should-open-issue-permalink/lines.json
@@ -0,0 +1,392 @@
+{
+ "sources": [
+ {
+ "line": 1,
+ "code": "<span class=\"cppd\">/*</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 2,
+ "code": "<span class=\"cppd\"> * Sonar :: Issues Report :: Plugin</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 3,
+ "code": "<span class=\"cppd\"> * Copyright (C) 2013 SonarSource</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 4,
+ "code": "<span class=\"cppd\"> * dev@sonar.codehaus.org</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 5,
+ "code": "<span class=\"cppd\"> *</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 6,
+ "code": "<span class=\"cppd\"> * This program is free software; you can redistribute it and/or</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 7,
+ "code": "<span class=\"cppd\"> * modify it under the terms of the GNU Lesser General Public</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 8,
+ "code": "<span class=\"cppd\"> * License as published by the Free Software Foundation; either</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 9,
+ "code": "<span class=\"cppd\"> * version 3 of the License, or (at your option) any later version.</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 10,
+ "code": "<span class=\"cppd\"> *</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 11,
+ "code": "<span class=\"cppd\"> * This program is distributed in the hope that it will be useful,</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 12,
+ "code": "<span class=\"cppd\"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 13,
+ "code": "<span class=\"cppd\"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 14,
+ "code": "<span class=\"cppd\"> * Lesser General Public License for more details.</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 15,
+ "code": "<span class=\"cppd\"> *</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 16,
+ "code": "<span class=\"cppd\"> * You should have received a copy of the GNU Lesser General Public</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 17,
+ "code": "<span class=\"cppd\"> * License along with this program; if not, write to the Free Software</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 18,
+ "code": "<span class=\"cppd\"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 19,
+ "code": "<span class=\"cppd\"> */</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 20,
+ "code": "<span class=\"k\">package</span> org.sonar.issuesreport;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 21,
+ "code": "",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 22,
+ "code": "<span class=\"k\">import </span>org.sonar.api.batch.<span class=\"sym-1 sym\">PostJob</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 23,
+ "code": "<span class=\"k\">import </span>org.sonar.api.batch.<span class=\"sym-2 sym\">SensorContext</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 24,
+ "code": "<span class=\"k\">import </span>org.sonar.api.resources.<span class=\"sym-3 sym\">Project</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 25,
+ "code": "<span class=\"k\">import </span>org.sonar.issuesreport.printer.<span class=\"sym-4 sym\">ReportPrinter</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200"
+ },
+ {
+ "line": 26,
+ "code": "<span class=\"k\">import </span>org.sonar.issuesreport.report.<span class=\"sym-5 sym\">IssuesReport</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "ed1e45b9f01b4d6bc704595ff42e6ecd6fb80dbe",
+ "scmDate": "2013-02-20T17:18:48+0100"
+ },
+ {
+ "line": 27,
+ "code": "<span class=\"k\">import </span>org.sonar.issuesreport.report.<span class=\"sym-6 sym\">IssuesReportBuilder</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200"
+ },
+ {
+ "line": 28,
+ "code": "",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 29,
+ "code": "<span class=\"k\">public </span><span class=\"k\">class</span> <span class=\"sym-7 sym\">ReportJob</span> <span class=\"k\">implements</span> <span class=\"sym-1 sym\">PostJob</span> {",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 30,
+ "code": "",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 31,
+ "code": " <span class=\"k\">private </span><span class=\"sym-6 sym\">IssuesReportBuilder</span> <span class=\"sym-8 sym\">builder</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200"
+ },
+ {
+ "line": 32,
+ "code": " <span class=\"k\">private </span><span class=\"sym-4 sym\">ReportPrinter</span>[] <span class=\"sym-9 sym\">printers</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200"
+ },
+ {
+ "line": 33,
+ "code": "",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 34,
+ "code": " <span class=\"k\">public </span><span class=\"sym-10 sym\">ReportJob</span>(<span class=\"sym-6 sym\">IssuesReportBuilder</span> <span class=\"sym-11 sym\">builder</span>, <span class=\"sym-4 sym\">ReportPrinter</span>[] <span class=\"sym-12 sym\">printers</span>) {",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200",
+ "lineHits": 1
+ },
+ {
+ "line": 35,
+ "code": " <span class=\"k\">this</span>.<span class=\"sym-8 sym\">builder</span> = <span class=\"sym-11 sym\">builder</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200",
+ "lineHits": 1
+ },
+ {
+ "line": 36,
+ "code": " <span class=\"k\">this</span>.<span class=\"sym-9 sym\">printers</span> = <span class=\"sym-12 sym\">printers</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200",
+ "lineHits": 1
+ },
+ {
+ "line": 37,
+ "code": " }",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100",
+ "lineHits": 1
+ },
+ {
+ "line": 38,
+ "code": "",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 39,
+ "code": " <span class=\"k\">public </span><span class=\"k\">void </span><span class=\"sym-13 sym\">executeOn</span>(<span class=\"sym-3 sym\">Project</span> <span class=\"sym-14 sym\">project</span>, <span class=\"sym-2 sym\">SensorContext</span> <span class=\"sym-15 sym\">context</span>) {",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 40,
+ "code": " <span class=\"cppd\">// For performance only initialize IssuesReport if there is on Printer enabled</span>",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200"
+ },
+ {
+ "line": 41,
+ "code": " <span class=\"sym-5 sym\">IssuesReport</span> <span class=\"sym-16 sym\">report</span> = <span class=\"k\">null</span>;",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200",
+ "lineHits": 1
+ },
+ {
+ "line": 42,
+ "code": " <span class=\"k\">for</span> (<span class=\"sym-4 sym\">ReportPrinter</span> <span class=\"sym-17 sym\">printer</span> : <span class=\"sym-9 sym\">printers</span>) {",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200",
+ "lineHits": 1,
+ "conditions": 2,
+ "coveredConditions": 2
+ },
+ {
+ "line": 43,
+ "code": " <span class=\"k\">if </span>(<span class=\"sym-17 sym\">printer</span>.isEnabled()) {",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200",
+ "lineHits": 1,
+ "conditions": 2,
+ "coveredConditions": 2
+ },
+ {
+ "line": 44,
+ "code": " <span class=\"k\">if </span>(<span class=\"sym-16 sym\">report</span> == <span class=\"k\">null</span>) {",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "ed1e45b9f01b4d6bc704595ff42e6ecd6fb80dbe",
+ "scmDate": "2013-02-20T17:18:48+0100",
+ "lineHits": 1,
+ "conditions": 2,
+ "coveredConditions": 2
+ },
+ {
+ "line": 45,
+ "code": " <span class=\"sym-16 sym\">report</span> = <span class=\"sym-8 sym\">builder</span>.buildReport(<span class=\"sym-14 sym\">project</span>);",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200",
+ "lineHits": 1
+ },
+ {
+ "line": 46,
+ "code": " }",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "ed1e45b9f01b4d6bc704595ff42e6ecd6fb80dbe",
+ "scmDate": "2013-02-20T17:18:48+0100"
+ },
+ {
+ "line": 47,
+ "code": " <span class=\"sym-17 sym\">printer</span>.print(<span class=\"sym-16 sym\">report</span>);",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200",
+ "lineHits": 1
+ },
+ {
+ "line": 48,
+ "code": " }",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200"
+ },
+ {
+ "line": 49,
+ "code": " }",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "bbbf5a70655725bd960e41626bcda3b0f85c82d9",
+ "scmDate": "2013-09-19T19:06:45+0200"
+ },
+ {
+ "line": 50,
+ "code": " }",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "ed1e45b9f01b4d6bc704595ff42e6ecd6fb80dbe",
+ "scmDate": "2013-02-20T17:18:48+0100",
+ "lineHits": 1
+ },
+ {
+ "line": 51,
+ "code": "",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "ed1e45b9f01b4d6bc704595ff42e6ecd6fb80dbe",
+ "scmDate": "2013-02-20T17:18:48+0100"
+ },
+ {
+ "line": 52,
+ "code": "}",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ },
+ {
+ "line": 53,
+ "code": "",
+ "scmAuthor": "julien.henry@sonarsource.com",
+ "scmRevision": "a0c83c815b2deeec585de6894a0b882db635410f",
+ "scmDate": "2013-02-19T18:45:35+0100"
+ }
+ ]
+}