]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8450 Add test on WS example 1432/head
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 6 Dec 2016 10:48:09 +0000 (11:48 +0100)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 6 Dec 2016 10:48:59 +0000 (11:48 +0100)
server/sonar-server/src/main/resources/org/sonar/server/ui/ws/example-component.json
server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentNavigationActionTest.java

index 12d968f09a00195ada9dbea1aac5683551cb96b7..1778572c92a0ed7c967b82a66eb57b4235fc2f1d 100644 (file)
@@ -1,13 +1,27 @@
 {
-  "id": 2865,
   "key": "org.codehaus.sonar:sonar",
-  "uuid": "69e57151-be0d-4157-adff-c06741d88879",
+  "uuid": "ABCD",
+  "name": "Sonarqube",
   "description": "Open source platform for continuous inspection of code quality",
   "isComparable": true,
   "canBeFavorite": true,
   "isFavorite": true,
-  "version": "5.2-SNAPSHOT",
-  "snapshotDate": "2015-04-16T14:40:32+02:00",
+  "version": "6.3",
+  "snapshotDate": "2016-12-06T11:44:00+0200",
+  "extensions": [
+    {
+      "url": "/admin/page?id\u003dorg.codehaus.sonar%3Asonar",
+      "name": "Admin Page"
+    },
+    {
+      "url": "/plugins/resource/org.codehaus.sonar%3Asonar?page\u003dfirst_page",
+      "name": "First Page"
+    },
+    {
+      "url": "/second/page?id\u003dorg.codehaus.sonar%3Asonar",
+      "name": "Second Page"
+    }
+  ],
   "qualityProfiles": [
     {
       "key": "qp1",
       "language": "xoo"
     }
   ],
-  "extensions": [
-    {
-      "name": "My Resource Plugin",
-      "url": "/plugins/resource/2865?page=my-resource-plugin"
-    }
-  ],
   "qualityGate": {
-    "key": "qg",
+    "key": "BCDE",
     "name": "Sonar way",
     "isDefault": false
   },
     "showPermissions": true,
     "showHistory": true,
     "showUpdateKey": true,
-    "showDeletion": true,
-    "extensions": [
-      {
-        "name": "General Settings",
-        "url": "/project/settings/2865"
-      },
-      {
-        "name": "Action Plans",
-        "url": "/action_plans/index/2865"
-      }
-    ]
+    "showBackgroundTasks": true,
+    "extensions": []
   },
   "breadcrumbs": [
     {
-      "name": "SonarQube",
-      "qualifier": "TRK",
-      "key": "org.codehaus.sonar:sonar"
+      "key": "org.codehaus.sonar:sonar",
+      "name": "Sonarqube",
+      "qualifier": "TRK"
     }
   ]
 }
index f2c597f8d8092c075f4abf21bb4ca35fb5e4b95d..a01eb4a0d6c065f705e6c0dd022a6697cef74d0b 100644 (file)
@@ -40,6 +40,7 @@ import org.sonar.api.web.ResourceQualifier;
 import org.sonar.api.web.ResourceScope;
 import org.sonar.api.web.UserRole;
 import org.sonar.api.web.View;
+import org.sonar.core.component.DefaultResourceTypes;
 import org.sonar.db.DbClient;
 import org.sonar.db.DbTester;
 import org.sonar.db.component.ComponentDbTester;
@@ -357,6 +358,30 @@ public class ComponentNavigationActionTest {
     execute(PROJECT.key());
   }
 
+  @Test
+  public void test_example_response() throws Exception {
+    init(createViews());
+    ComponentDto project = newProjectDto("ABCD").setKey("org.codehaus.sonar:sonar").setName("Sonarqube").setDescription("Open source platform for continuous inspection of code quality");
+    componentDbTester.insertComponent(project);
+    SnapshotDto analysis = newAnalysis(project)
+      .setCreatedAt(DateUtils.parseDateTime("2016-12-06T11:44:00+0200").getTime())
+      .setVersion("6.3")
+      .setLast(true);
+    componentDbTester.insertSnapshot(analysis);
+    when(resourceTypes.get(project.qualifier())).thenReturn(DefaultResourceTypes.get().getRootType());
+    UserDto user = userDbTester.insertUser("obiwan");
+    propertyDbTester.insertProperty(new PropertyDto().setKey("favourite").setResourceId(project.getId()).setUserId(user.getId()));
+    addQualityProfiles(project, analysis,
+      createQProfile("qp1", "Sonar Way Java", "java"),
+      createQProfile("qp2", "Sonar Way Xoo", "xoo"));
+    QualityGateDto qualityGateDto = dbTester.qualityGates().insertQualityGate("Sonar way");
+    dbTester.qualityGates().associateProjectToQualityGate(project, qualityGateDto);
+    userSessionRule.login(user).addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+
+    String result = execute(project.key());
+    assertJson(ws.getDef().responseExampleAsString()).ignoreFields("snapshotDate", "key").isSimilarTo(result);
+  }
+
   private void init(View... views) {
     ws = new WsActionTester(new ComponentNavigationAction(dbClient, new Views(userSessionRule, views), i18n, resourceTypes, userSessionRule, new ComponentFinder(dbClient),
       new QualityGateFinder(dbClient)));