http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java index 9d96ee5..a8d6ea2 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookRestApiTest.java @@ -24,31 +24,26 @@ import static org.junit.Assert.assertThat; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; - -import org.apache.commons.httpclient.methods.GetMethod; -import org.apache.commons.httpclient.methods.PostMethod; -import org.apache.commons.httpclient.methods.PutMethod; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.FixMethodOrder; -import org.junit.Test; -import org.junit.runners.MethodSorters; - import java.io.IOException; import java.util.Map; import java.util.Set; - +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.methods.PutMethod; import org.apache.zeppelin.interpreter.InterpreterResult; import org.apache.zeppelin.notebook.Note; import org.apache.zeppelin.notebook.Paragraph; import org.apache.zeppelin.scheduler.Job; import org.apache.zeppelin.server.ZeppelinServer; import org.apache.zeppelin.user.AuthenticationInfo; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; -/** - * Zeppelin notebook rest api tests. - */ +/** Zeppelin notebook rest api tests. */ @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class NotebookRestApiTest extends AbstractTestRestApi { Gson gson = new Gson(); @@ -78,15 +73,16 @@ public class NotebookRestApiTest extends AbstractTestRestApi { GetMethod get = httpGet("/notebook/job/" + note1.getId() + "/" + paragraphId); assertThat(get, isAllowed()); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, Set<String>> paragraphStatus = (Map<String, Set<String>>) resp.get("body"); // Check id and status have proper value assertEquals(paragraphStatus.get("id"), paragraphId); assertEquals(paragraphStatus.get("status"), "READY"); - //cleanup + // cleanup ZeppelinServer.notebook.removeNote(note1.getId(), anonymous); } @@ -100,8 +96,9 @@ public class NotebookRestApiTest extends AbstractTestRestApi { // run blank paragraph PostMethod post = httpPost("/notebook/job/" + note1.getId() + "/" + p.getId(), ""); assertThat(post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertEquals(resp.get("status"), "OK"); post.releaseConnection(); assertEquals(p.getStatus(), Job.Status.FINISHED); @@ -110,13 +107,14 @@ public class NotebookRestApiTest extends AbstractTestRestApi { p.setText("test"); post = httpPost("/notebook/job/" + note1.getId() + "/" + p.getId(), ""); assertThat(post, isAllowed()); - resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertEquals(resp.get("status"), "OK"); post.releaseConnection(); assertNotEquals(p.getStatus(), Job.Status.READY); - //cleanup + // cleanup ZeppelinServer.notebook.removeNote(note1.getId(), anonymous); } @@ -141,8 +139,9 @@ public class NotebookRestApiTest extends AbstractTestRestApi { PostMethod post = httpPost("/notebook/job/" + note1.getId(), ""); assertThat(post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertEquals(resp.get("status"), "OK"); post.releaseConnection(); @@ -167,13 +166,15 @@ public class NotebookRestApiTest extends AbstractTestRestApi { // Paragraph p1 = note1.addNewParagraph(AuthenticationInfo.ANONYMOUS); Paragraph p2 = note1.addNewParagraph(AuthenticationInfo.ANONYMOUS); - p1.setText("%python import time\ntime.sleep(1)\nfrom __future__ import print_function\nprint(user2)"); + p1.setText( + "%python import time\ntime.sleep(1)\nfrom __future__ import print_function\nprint(user2)"); p2.setText("%python user2='abc'\nprint(user2)"); PostMethod post = httpPost("/notebook/job/" + note1.getId(), ""); assertThat(post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertEquals(resp.get("status"), "OK"); post.releaseConnection(); @@ -188,21 +189,23 @@ public class NotebookRestApiTest extends AbstractTestRestApi { PostMethod post = httpPost("/notebook/" + note1.getId(), ""); LOG.info("testCloneNote response\n" + post.getResponseBodyAsString()); assertThat(post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); String clonedNoteId = (String) resp.get("body"); post.releaseConnection(); GetMethod get = httpGet("/notebook/" + clonedNoteId); assertThat(get, isAllowed()); - Map<String, Object> resp2 = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp2 = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, Object> resp2Body = (Map<String, Object>) resp2.get("body"); assertEquals(resp2Body.get("name"), "Note " + clonedNoteId); get.releaseConnection(); - //cleanup + // cleanup ZeppelinServer.notebook.removeNote(note1.getId(), anonymous); ZeppelinServer.notebook.removeNote(clonedNoteId, anonymous); } @@ -221,7 +224,7 @@ public class NotebookRestApiTest extends AbstractTestRestApi { assertEquals(note.getName(), newName); - //cleanup + // cleanup ZeppelinServer.notebook.removeNote(noteId, anonymous); } @@ -234,12 +237,13 @@ public class NotebookRestApiTest extends AbstractTestRestApi { String paragraphId = p.getId(); String jsonRequest = "{\"colWidth\": 6.0}"; - PutMethod put = httpPut("/notebook/" + noteId + "/paragraph/" + paragraphId + "/config", - jsonRequest); + PutMethod put = + httpPut("/notebook/" + noteId + "/paragraph/" + paragraphId + "/config", jsonRequest); assertThat("test testUpdateParagraphConfig:", put, isAllowed()); - Map<String, Object> resp = gson.fromJson(put.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + put.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, Object> respBody = (Map<String, Object>) resp.get("body"); Map<String, Object> config = (Map<String, Object>) respBody.get("config"); put.releaseConnection(); @@ -248,7 +252,7 @@ public class NotebookRestApiTest extends AbstractTestRestApi { note = ZeppelinServer.notebook.getNote(noteId); assertEquals(note.getParagraph(paragraphId).getConfig().get("colWidth"), 6.0); - //cleanup + // cleanup ZeppelinServer.notebook.removeNote(noteId, anonymous); } @@ -257,8 +261,9 @@ public class NotebookRestApiTest extends AbstractTestRestApi { // Create note and set result explicitly Note note = ZeppelinServer.notebook.createNote(anonymous); Paragraph p1 = note.addNewParagraph(AuthenticationInfo.ANONYMOUS); - InterpreterResult result = new InterpreterResult(InterpreterResult.Code.SUCCESS, - InterpreterResult.Type.TEXT, "result"); + InterpreterResult result = + new InterpreterResult( + InterpreterResult.Code.SUCCESS, InterpreterResult.Type.TEXT, "result"); p1.setResult(result); Paragraph p2 = note.addNewParagraph(AuthenticationInfo.ANONYMOUS); @@ -273,20 +278,22 @@ public class NotebookRestApiTest extends AbstractTestRestApi { // check if paragraph results are cleared GetMethod get = httpGet("/notebook/" + note.getId() + "/paragraph/" + p1.getId()); assertThat(get, isAllowed()); - Map<String, Object> resp1 = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp1 = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, Object> resp1Body = (Map<String, Object>) resp1.get("body"); assertNull(resp1Body.get("result")); get = httpGet("/notebook/" + note.getId() + "/paragraph/" + p2.getId()); assertThat(get, isAllowed()); - Map<String, Object> resp2 = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp2 = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, Object> resp2Body = (Map<String, Object>) resp2.get("body"); assertNull(resp2Body.get("result")); get.releaseConnection(); - //cleanup + // cleanup ZeppelinServer.notebook.removeNote(note.getId(), anonymous); } @@ -327,8 +334,9 @@ public class NotebookRestApiTest extends AbstractTestRestApi { PostMethod post2 = httpPost("/notebook/job/" + note1.getId(), ""); assertThat(post2, isAllowed()); - Map<String, Object> resp = gson.fromJson(post2.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post2.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertEquals(resp.get("status"), "OK"); post2.releaseConnection();
http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java index 209a272..c40a4b4 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/NotebookSecurityRestApiTest.java @@ -24,32 +24,29 @@ import static org.junit.Assert.assertThat; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; - +import java.io.IOException; +import java.util.ArrayList; +import java.util.Map; import org.apache.commons.httpclient.HttpMethodBase; import org.apache.commons.httpclient.methods.DeleteMethod; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.PutMethod; +import org.apache.zeppelin.notebook.Note; +import org.apache.zeppelin.server.ZeppelinServer; import org.hamcrest.Matcher; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Map; - -import org.apache.zeppelin.notebook.Note; -import org.apache.zeppelin.server.ZeppelinServer; - public class NotebookSecurityRestApiTest extends AbstractTestRestApi { Gson gson = new Gson(); @BeforeClass public static void init() throws Exception { AbstractTestRestApi.startUpWithAuthenticationEnable( - NotebookSecurityRestApiTest.class.getSimpleName()); + NotebookSecurityRestApiTest.class.getSimpleName()); } @AfterClass @@ -59,7 +56,7 @@ public class NotebookSecurityRestApiTest extends AbstractTestRestApi { @Before public void setUp() {} - + @Test public void testThatUserCanCreateAndRemoveNote() throws IOException { String noteId = createNoteForUser("test", "admin", "password1"); @@ -68,48 +65,50 @@ public class NotebookSecurityRestApiTest extends AbstractTestRestApi { assertThat(id, is(noteId)); deleteNoteForUser(noteId, "admin", "password1"); } - + @Test public void testThatOtherUserCanAccessNoteIfPermissionNotSet() throws IOException { String noteId = createNoteForUser("test", "admin", "password1"); - + userTryGetNote(noteId, "user1", "password2", isAllowed()); - + deleteNoteForUser(noteId, "admin", "password1"); } - + @Test public void testThatOtherUserCannotAccessNoteIfPermissionSet() throws IOException { String noteId = createNoteForUser("test", "admin", "password1"); - - //set permission - String payload = "{ \"owners\": [\"admin\"], \"readers\": [\"user2\"], " + - "\"runners\": [\"user2\"], \"writers\": [\"user2\"] }"; - PutMethod put = httpPut("/notebook/" + noteId + "/permissions", payload , "admin", "password1"); + + // set permission + String payload = + "{ \"owners\": [\"admin\"], \"readers\": [\"user2\"], " + + "\"runners\": [\"user2\"], \"writers\": [\"user2\"] }"; + PutMethod put = httpPut("/notebook/" + noteId + "/permissions", payload, "admin", "password1"); assertThat("test set note permission method:", put, isAllowed()); put.releaseConnection(); - + userTryGetNote(noteId, "user1", "password2", isForbidden()); - + userTryGetNote(noteId, "user2", "password3", isAllowed()); - + deleteNoteForUser(noteId, "admin", "password1"); } - + @Test public void testThatWriterCannotRemoveNote() throws IOException { String noteId = createNoteForUser("test", "admin", "password1"); - - //set permission - String payload = "{ \"owners\": [\"admin\", \"user1\"], \"readers\": [\"user2\"], " + - "\"runners\": [\"user2\"], \"writers\": [\"user2\"] }"; - PutMethod put = httpPut("/notebook/" + noteId + "/permissions", payload , "admin", "password1"); + + // set permission + String payload = + "{ \"owners\": [\"admin\", \"user1\"], \"readers\": [\"user2\"], " + + "\"runners\": [\"user2\"], \"writers\": [\"user2\"] }"; + PutMethod put = httpPut("/notebook/" + noteId + "/permissions", payload, "admin", "password1"); assertThat("test set note permission method:", put, isAllowed()); put.releaseConnection(); - + userTryRemoveNote(noteId, "user2", "password3", isForbidden()); userTryRemoveNote(noteId, "user1", "password2", isAllowed()); - + Note deletedNote = ZeppelinServer.notebook.getNote(noteId); assertNull("Deleted note should be null", deletedNote); } @@ -117,14 +116,14 @@ public class NotebookSecurityRestApiTest extends AbstractTestRestApi { @Test public void testThatUserCanSearchNote() throws IOException { String noteId1 = createNoteForUser("test1", "admin", "password1"); - createParagraphForUser(noteId1, "admin", "password1", "title1", - "ThisIsToTestSearchMethodWithPermissions 1"); + createParagraphForUser( + noteId1, "admin", "password1", "title1", "ThisIsToTestSearchMethodWithPermissions 1"); String noteId2 = createNoteForUser("test2", "user1", "password2"); - createParagraphForUser(noteId1, "admin", "password1", "title2", - "ThisIsToTestSearchMethodWithPermissions 2"); + createParagraphForUser( + noteId1, "admin", "password1", "title2", "ThisIsToTestSearchMethodWithPermissions 2"); - //set permission for each note + // set permission for each note setPermissionForNote(noteId1, "admin", "password1"); setPermissionForNote(noteId1, "user1", "password2"); @@ -134,15 +133,17 @@ public class NotebookSecurityRestApiTest extends AbstractTestRestApi { deleteNoteForUser(noteId2, "user1", "password2"); } - private void userTryRemoveNote(String noteId, String user, String pwd, - Matcher<? super HttpMethodBase> m) throws IOException { + private void userTryRemoveNote( + String noteId, String user, String pwd, Matcher<? super HttpMethodBase> m) + throws IOException { DeleteMethod delete = httpDelete(("/notebook/" + noteId), user, pwd); assertThat(delete, m); delete.releaseConnection(); } - - private void userTryGetNote(String noteId, String user, String pwd, - Matcher<? super HttpMethodBase> m) throws IOException { + + private void userTryGetNote( + String noteId, String user, String pwd, Matcher<? super HttpMethodBase> m) + throws IOException { GetMethod get = httpGet("/notebook/" + noteId, user, pwd); assertThat(get, m); get.releaseConnection(); @@ -151,20 +152,22 @@ public class NotebookSecurityRestApiTest extends AbstractTestRestApi { private String getNoteIdForUser(String noteId, String user, String pwd) throws IOException { GetMethod get = httpGet("/notebook/" + noteId, user, pwd); assertThat("test note create method:", get, isAllowed()); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); get.releaseConnection(); return (String) ((Map<String, Object>) resp.get("body")).get("id"); } - + private String createNoteForUser(String noteName, String user, String pwd) throws IOException { String jsonRequest = "{\"name\":\"" + noteName + "\"}"; PostMethod post = httpPost("/notebook/", jsonRequest, user, pwd); assertThat("test note create method:", post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); post.releaseConnection(); - String newNoteId = (String) resp.get("body"); + String newNoteId = (String) resp.get("body"); Note newNote = ZeppelinServer.notebook.getNote(newNoteId); assertNotNull("Can not find new note by id", newNote); return newNoteId; @@ -181,24 +184,34 @@ public class NotebookSecurityRestApiTest extends AbstractTestRestApi { } } - private void createParagraphForUser(String noteId, String user, String pwd, - String title, String text) throws IOException { + private void createParagraphForUser( + String noteId, String user, String pwd, String title, String text) throws IOException { String payload = "{\"title\": \"" + title + "\",\"text\": \"" + text + "\"}"; PostMethod post = httpPost(("/notebook/" + noteId + "/paragraph"), payload, user, pwd); post.releaseConnection(); } private void setPermissionForNote(String noteId, String user, String pwd) throws IOException { - String payload = "{\"owners\":[\"" + user + "\"],\"readers\":[\"" + user + - "\"],\"runners\":[\"" + user + "\"],\"writers\":[\"" + user + "\"]}"; + String payload = + "{\"owners\":[\"" + + user + + "\"],\"readers\":[\"" + + user + + "\"],\"runners\":[\"" + + user + + "\"],\"writers\":[\"" + + user + + "\"]}"; PutMethod put = httpPut(("/notebook/" + noteId + "/permissions"), payload, user, pwd); put.releaseConnection(); } private void searchNoteBasedOnPermission(String searchText, String user, String pwd) - throws IOException{ + throws IOException { GetMethod searchNote = httpGet(("/notebook/search?q=" + searchText), user, pwd); - Map<String, Object> respSearchResult = gson.fromJson(searchNote.getResponseBodyAsString(), + Map<String, Object> respSearchResult = + gson.fromJson( + searchNote.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); ArrayList searchBody = (ArrayList) respSearchResult.get("body"); assertEquals("At-least one search results is there", true, searchBody.size() >= 1); @@ -208,7 +221,9 @@ public class NotebookSecurityRestApiTest extends AbstractTestRestApi { String userId = searchResult.get("id").split("/", 2)[0]; GetMethod getPermission = httpGet(("/notebook/" + userId + "/permissions"), user, pwd); - Map<String, Object> resp = gson.fromJson(getPermission.getResponseBodyAsString(), + Map<String, Object> resp = + gson.fromJson( + getPermission.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, ArrayList> permissions = (Map<String, ArrayList>) resp.get("body"); ArrayList owners = permissions.get("owners"); @@ -217,8 +232,13 @@ public class NotebookSecurityRestApiTest extends AbstractTestRestApi { ArrayList runners = permissions.get("runners"); if (owners.size() != 0 && readers.size() != 0 && writers.size() != 0 && runners.size() != 0) { - assertEquals("User has permissions ", true, (owners.contains(user) || - readers.contains(user) || writers.contains(user) || runners.contains(user))); + assertEquals( + "User has permissions ", + true, + (owners.contains(user) + || readers.contains(user) + || writers.contains(user) + || runners.contains(user))); } getPermission.releaseConnection(); } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java index c4584b2..519c25a 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/SecurityRestApiTest.java @@ -18,7 +18,9 @@ package org.apache.zeppelin.rest; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; - +import java.io.IOException; +import java.util.List; +import java.util.Map; import org.apache.commons.httpclient.methods.GetMethod; import org.hamcrest.CoreMatchers; import org.junit.AfterClass; @@ -27,15 +29,10 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ErrorCollector; -import java.io.IOException; -import java.util.List; -import java.util.Map; - public class SecurityRestApiTest extends AbstractTestRestApi { Gson gson = new Gson(); - @Rule - public ErrorCollector collector = new ErrorCollector(); + @Rule public ErrorCollector collector = new ErrorCollector(); @BeforeClass public static void init() throws Exception { @@ -51,13 +48,13 @@ public class SecurityRestApiTest extends AbstractTestRestApi { public void testTicket() throws IOException { GetMethod get = httpGet("/security/ticket", "admin", "password1"); get.addRequestHeader("Origin", "http://localhost"); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>(){}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); Map<String, String> body = (Map<String, String>) resp.get("body"); - collector.checkThat("Paramater principal", body.get("principal"), - CoreMatchers.equalTo("admin")); - collector.checkThat("Paramater ticket", body.get("ticket"), - CoreMatchers.not("anonymous")); + collector.checkThat( + "Paramater principal", body.get("principal"), CoreMatchers.equalTo("admin")); + collector.checkThat("Paramater ticket", body.get("ticket"), CoreMatchers.not("anonymous")); get.releaseConnection(); } @@ -65,22 +62,22 @@ public class SecurityRestApiTest extends AbstractTestRestApi { public void testGetUserList() throws IOException { GetMethod get = httpGet("/security/userlist/admi", "admin", "password1"); get.addRequestHeader("Origin", "http://localhost"); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>(){}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<String> userList = (List) ((Map) resp.get("body")).get("users"); - collector.checkThat("Search result size", userList.size(), - CoreMatchers.equalTo(1)); - collector.checkThat("Search result contains admin", userList.contains("admin"), - CoreMatchers.equalTo(true)); + collector.checkThat("Search result size", userList.size(), CoreMatchers.equalTo(1)); + collector.checkThat( + "Search result contains admin", userList.contains("admin"), CoreMatchers.equalTo(true)); get.releaseConnection(); GetMethod notUser = httpGet("/security/userlist/randomString", "admin", "password1"); notUser.addRequestHeader("Origin", "http://localhost"); - Map<String, Object> notUserResp = gson.fromJson(notUser.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>(){}.getType()); + Map<String, Object> notUserResp = + gson.fromJson( + notUser.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<String> emptyUserList = (List) ((Map) notUserResp.get("body")).get("users"); - collector.checkThat("Search result size", emptyUserList.size(), - CoreMatchers.equalTo(0)); + collector.checkThat("Search result size", emptyUserList.size(), CoreMatchers.equalTo(0)); notUser.releaseConnection(); } @@ -88,12 +85,11 @@ public class SecurityRestApiTest extends AbstractTestRestApi { @Test public void testRolesEscaped() throws IOException { GetMethod get = httpGet("/security/ticket", "admin", "password1"); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>(){}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); String roles = (String) ((Map) resp.get("body")).get("roles"); - collector.checkThat("Paramater roles", roles, - CoreMatchers.equalTo("[\"admin\"]")); + collector.checkThat("Paramater roles", roles, CoreMatchers.equalTo("[\"admin\"]")); get.releaseConnection(); } - } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java index 65280f8..59f9859 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinRestApiTest.java @@ -26,12 +26,21 @@ import static org.junit.Assert.assertTrue; import com.google.common.collect.Sets; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; - +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; import org.apache.commons.httpclient.methods.DeleteMethod; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.lang3.StringUtils; +import org.apache.zeppelin.conf.ZeppelinConfiguration.ConfVars; +import org.apache.zeppelin.notebook.Note; +import org.apache.zeppelin.notebook.Paragraph; +import org.apache.zeppelin.server.ZeppelinServer; +import org.apache.zeppelin.user.AuthenticationInfo; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; @@ -39,21 +48,7 @@ import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; - -import org.apache.zeppelin.conf.ZeppelinConfiguration.ConfVars; -import org.apache.zeppelin.notebook.Note; -import org.apache.zeppelin.notebook.Paragraph; -import org.apache.zeppelin.server.ZeppelinServer; -import org.apache.zeppelin.user.AuthenticationInfo; - -/** - * BASIC Zeppelin rest api tests. - */ +/** BASIC Zeppelin rest api tests. */ @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class ZeppelinRestApiTest extends AbstractTestRestApi { Gson gson = new Gson(); @@ -74,9 +69,7 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { anonymous = new AuthenticationInfo("anonymous"); } - /** - * ROOT API TEST. - **/ + /** ROOT API TEST. */ @Test public void getApiRoot() throws IOException { // when @@ -106,8 +99,9 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { LOG.info("testGetNoteInfo \n" + get.getResponseBodyAsString()); assertThat("test note get method:", get, isAllowed()); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertNotNull(resp); assertEquals("OK", resp.get("status")); @@ -136,21 +130,25 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { public void testNoteCreateWithParagraphs() throws IOException { // Call Create Note REST API String noteName = "test"; - String jsonRequest = "{\"name\":\"" + noteName + "\", \"paragraphs\": [" + - "{\"title\": \"title1\", \"text\": \"text1\"}," + - "{\"title\": \"title2\", \"text\": \"text2\"}," + - "{\"title\": \"titleConfig\", \"text\": \"text3\", " + - "\"config\": {\"colWidth\": 9.0, \"title\": true, " + - "\"results\": [{\"graph\": {\"mode\": \"pieChart\"}}] " + - "}}]} "; + String jsonRequest = + "{\"name\":\"" + + noteName + + "\", \"paragraphs\": [" + + "{\"title\": \"title1\", \"text\": \"text1\"}," + + "{\"title\": \"title2\", \"text\": \"text2\"}," + + "{\"title\": \"titleConfig\", \"text\": \"text3\", " + + "\"config\": {\"colWidth\": 9.0, \"title\": true, " + + "\"results\": [{\"graph\": {\"mode\": \"pieChart\"}}] " + + "}}]} "; PostMethod post = httpPost("/notebook/", jsonRequest); LOG.info("testNoteCreate \n" + post.getResponseBodyAsString()); assertThat("test note create method:", post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); - String newNoteId = (String) resp.get("body"); + String newNoteId = (String) resp.get("body"); LOG.info("newNoteId:=" + newNoteId); Note newNote = ZeppelinServer.notebook.getNote(newNoteId); assertNotNull("Can not find new note by id", newNote); @@ -189,10 +187,11 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { LOG.info("testNoteCreate \n" + post.getResponseBodyAsString()); assertThat("test note create method:", post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); - String newNoteId = (String) resp.get("body"); + String newNoteId = (String) resp.get("body"); LOG.info("newNoteId:=" + newNoteId); Note newNote = ZeppelinServer.notebook.getNote(newNoteId); assertNotNull("Can not find new note by id", newNote); @@ -211,7 +210,7 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { @Test public void testDeleteNote() throws IOException { LOG.info("testDeleteNote"); - //Create note and get ID + // Create note and get ID Note note = ZeppelinServer.notebook.createNote(anonymous); String noteId = note.getId(); testDeleteNote(noteId); @@ -242,8 +241,8 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { assertThat("test note export method:", get, isAllowed()); Map<String, Object> resp = - gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); String exportJSON = (String) resp.get("body"); assertNotNull("Can not find new notejson", exportJSON); @@ -274,15 +273,16 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { PostMethod importPost = httpPost("/notebook/import/", oldJson); assertThat(importPost, isAllowed()); resp = - gson.fromJson(importPost.getResponseBodyAsString(), + gson.fromJson( + importPost.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); String importId = (String) resp.get("body"); assertNotNull("Did not get back a note id in body", importId); Note newNote = ZeppelinServer.notebook.getNote(importId); assertEquals("Compare note names", noteName, newNote.getName()); - assertEquals("Compare paragraphs count", note.getParagraphs().size(), newNote.getParagraphs() - .size()); + assertEquals( + "Compare paragraphs count", note.getParagraphs().size(), newNote.getParagraphs().size()); // cleanup ZeppelinServer.notebook.removeNote(note.getId(), anonymous); ZeppelinServer.notebook.removeNote(newNote.getId(), anonymous); @@ -294,8 +294,8 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { assertThat(get, isAllowed()); get.addRequestHeader("Origin", "http://localhost"); Map<String, Object> resp = - gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertEquals(200, get.getStatusCode()); String body = resp.get("body").toString(); // System.out.println("Body is " + body); @@ -344,17 +344,18 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { LOG.info("testNoteClone \n" + post.getResponseBodyAsString()); assertThat("test note clone method:", post, isAllowed()); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); - String newNoteId = (String) resp.get("body"); + String newNoteId = (String) resp.get("body"); LOG.info("newNoteId:=" + newNoteId); Note newNote = ZeppelinServer.notebook.getNote(newNoteId); assertNotNull("Can not find new note by id", newNote); assertEquals("Compare note names", noteName, newNote.getName()); - assertEquals("Compare paragraphs count", note.getParagraphs().size(), - newNote.getParagraphs().size()); - //cleanup + assertEquals( + "Compare paragraphs count", note.getParagraphs().size(), newNote.getParagraphs().size()); + // cleanup ZeppelinServer.notebook.removeNote(note.getId(), anonymous); ZeppelinServer.notebook.removeNote(newNote.getId(), anonymous); post.releaseConnection(); @@ -365,13 +366,14 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { LOG.info("testListNotes"); GetMethod get = httpGet("/notebook/ "); assertThat("List notes method", get, isAllowed()); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<Map<String, String>> body = (List<Map<String, String>>) resp.get("body"); - //TODO(khalid): anonymous or specific user notes? + // TODO(khalid): anonymous or specific user notes? HashSet<String> anonymous = Sets.newHashSet("anonymous"); - assertEquals("List notes are equal", ZeppelinServer.notebook.getAllNotes(anonymous) - .size(), body.size()); + assertEquals( + "List notes are equal", ZeppelinServer.notebook.getAllNotes(anonymous).size(), body.size()); get.releaseConnection(); } @@ -426,7 +428,7 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { deleteParagraph.releaseConnection(); Thread.sleep(1000); - //cleanup + // cleanup ZeppelinServer.notebook.removeNote(note.getId(), anonymous); } @@ -456,8 +458,8 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { get.releaseConnection(); LOG.info("test get note job: \n" + responseBody); - Map<String, Object> resp = gson.fromJson(responseBody, - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson(responseBody, new TypeToken<Map<String, Object>>() {}.getType()); List<Map<String, Object>> paragraphs = (List<Map<String, Object>>) resp.get("body"); assertEquals(1, paragraphs.size()); @@ -498,8 +500,10 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { note.runAll(); // Call Run paragraph REST API - PostMethod postParagraph = httpPost("/notebook/job/" + noteId + "/" + paragraph.getId(), - "{\"params\": {\"param\": \"hello\", \"param2\": \"world\"}}"); + PostMethod postParagraph = + httpPost( + "/notebook/job/" + noteId + "/" + paragraph.getId(), + "{\"params\": {\"param\": \"hello\", \"param2\": \"world\"}}"); assertThat("test paragraph run:", postParagraph, isAllowed()); postParagraph.releaseConnection(); Thread.sleep(1000); @@ -510,12 +514,12 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { assertEquals("hello", params.get("param")); assertEquals("world", params.get("param2")); - //cleanup + // cleanup ZeppelinServer.notebook.removeNote(note.getId(), anonymous); } @Test - public void testJobs() throws InterruptedException, IOException{ + public void testJobs() throws InterruptedException, IOException { // create a note and a paragraph Note note = ZeppelinServer.notebook.createNote(anonymous); @@ -556,7 +560,7 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { } @Test - public void testCronDisable() throws InterruptedException, IOException{ + public void testCronDisable() throws InterruptedException, IOException { // create a note and a paragraph System.setProperty(ConfVars.ZEPPELIN_NOTEBOOK_CRON_ENABLE.getVarName(), "false"); Note note = ZeppelinServer.notebook.createNote(anonymous); @@ -609,7 +613,9 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { GetMethod getNoteJobs = httpGet("/notebook/job/" + note.getId()); assertThat("test note jobs run:", getNoteJobs, isAllowed()); - Map<String, Object> resp = gson.fromJson(getNoteJobs.getResponseBodyAsString(), + Map<String, Object> resp = + gson.fromJson( + getNoteJobs.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); List<Map<String, String>> body = (List<Map<String, String>>) resp.get("body"); assertFalse(body.get(0).containsKey("started")); @@ -629,8 +635,9 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { assertThat("Test insert method:", post, isAllowed()); post.releaseConnection(); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); String newParagraphId = (String) resp.get("body"); LOG.info("newParagraphId:=" + newParagraphId); @@ -656,10 +663,11 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { assertEquals("title2", paragraphAtIdx0.getTitle()); assertEquals("text2", paragraphAtIdx0.getText()); - //append paragraph providing graph - String jsonRequest3 = "{\"title\": \"title3\", \"text\": \"text3\", " + - "\"config\": {\"colWidth\": 9.0, \"title\": true, " + - "\"results\": [{\"graph\": {\"mode\": \"pieChart\"}}]}}"; + // append paragraph providing graph + String jsonRequest3 = + "{\"title\": \"title3\", \"text\": \"text3\", " + + "\"config\": {\"colWidth\": 9.0, \"title\": true, " + + "\"results\": [{\"graph\": {\"mode\": \"pieChart\"}}]}}"; PostMethod post3 = httpPost("/notebook/" + note.getId() + "/paragraph", jsonRequest3); LOG.info("testInsertParagraph response4\n" + post3.getResponseBodyAsString()); assertThat("Test insert method:", post3, isAllowed()); @@ -683,36 +691,37 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { String jsonRequest = "{\"title\": \"title1\", \"text\": \"text1\"}"; PostMethod post = httpPost("/notebook/" + note.getId() + "/paragraph", jsonRequest); - Map<String, Object> resp = gson.fromJson(post.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + post.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); post.releaseConnection(); String newParagraphId = (String) resp.get("body"); - Paragraph newParagraph = ZeppelinServer.notebook.getNote(note.getId()) - .getParagraph(newParagraphId); + Paragraph newParagraph = + ZeppelinServer.notebook.getNote(note.getId()).getParagraph(newParagraphId); assertEquals("title1", newParagraph.getTitle()); assertEquals("text1", newParagraph.getText()); String updateRequest = "{\"text\": \"updated text\"}"; - PutMethod put = httpPut("/notebook/" + note.getId() + "/paragraph/" + newParagraphId, - updateRequest); + PutMethod put = + httpPut("/notebook/" + note.getId() + "/paragraph/" + newParagraphId, updateRequest); assertThat("Test update method:", put, isAllowed()); put.releaseConnection(); - Paragraph updatedParagraph = ZeppelinServer.notebook.getNote(note.getId()) - .getParagraph(newParagraphId); + Paragraph updatedParagraph = + ZeppelinServer.notebook.getNote(note.getId()).getParagraph(newParagraphId); assertEquals("title1", updatedParagraph.getTitle()); assertEquals("updated text", updatedParagraph.getText()); String updateBothRequest = "{\"title\": \"updated title\", \"text\" : \"updated text 2\" }"; - PutMethod updatePut = httpPut("/notebook/" + note.getId() + "/paragraph/" + newParagraphId, - updateBothRequest); + PutMethod updatePut = + httpPut("/notebook/" + note.getId() + "/paragraph/" + newParagraphId, updateBothRequest); updatePut.releaseConnection(); - Paragraph updatedBothParagraph = ZeppelinServer.notebook.getNote(note.getId()) - .getParagraph(newParagraphId); + Paragraph updatedBothParagraph = + ZeppelinServer.notebook.getNote(note.getId()).getParagraph(newParagraphId); assertEquals("updated title", updatedBothParagraph.getTitle()); assertEquals("updated text 2", updatedBothParagraph.getText()); @@ -734,8 +743,9 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { assertThat("Test get method: ", get, isAllowed()); get.releaseConnection(); - Map<String, Object> resp = gson.fromJson(get.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() {}.getType()); + Map<String, Object> resp = + gson.fromJson( + get.getResponseBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType()); assertNotNull(resp); assertEquals("OK", resp.get("status")); @@ -763,8 +773,8 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { note.persist(anonymous); - PostMethod post = httpPost("/notebook/" + note.getId() + "/paragraph/" + p2.getId() + - "/move/" + 0, ""); + PostMethod post = + httpPost("/notebook/" + note.getId() + "/paragraph/" + p2.getId() + "/move/" + 0, ""); assertThat("Test post method: ", post, isAllowed()); post.releaseConnection(); @@ -775,8 +785,8 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { assertEquals(p2.getTitle(), paragraphAtIdx0.getTitle()); assertEquals(p2.getText(), paragraphAtIdx0.getText()); - PostMethod post2 = httpPost("/notebook/" + note.getId() + "/paragraph/" + p2.getId() + - "/move/" + 10, ""); + PostMethod post2 = + httpPost("/notebook/" + note.getId() + "/paragraph/" + p2.getId() + "/move/" + 10, ""); assertThat("Test post method: ", post2, isBadRequest()); post.releaseConnection(); @@ -807,16 +817,18 @@ public class ZeppelinRestApiTest extends AbstractTestRestApi { @Test public void testTitleSearch() throws IOException { Note note = ZeppelinServer.notebook.createNote(anonymous); - String jsonRequest = "{\"title\": \"testTitleSearchOfParagraph\", " + - "\"text\": \"ThisIsToTestSearchMethodWithTitle \"}"; + String jsonRequest = + "{\"title\": \"testTitleSearchOfParagraph\", " + + "\"text\": \"ThisIsToTestSearchMethodWithTitle \"}"; PostMethod postNoteText = httpPost("/notebook/" + note.getId() + "/paragraph", jsonRequest); postNoteText.releaseConnection(); GetMethod searchNote = httpGet("/notebook/search?q='testTitleSearchOfParagraph'"); searchNote.addRequestHeader("Origin", "http://localhost"); - Map<String, Object> respSearchResult = gson.fromJson(searchNote.getResponseBodyAsString(), - new TypeToken<Map<String, Object>>() { - }.getType()); + Map<String, Object> respSearchResult = + gson.fromJson( + searchNote.getResponseBodyAsString(), + new TypeToken<Map<String, Object>>() {}.getType()); ArrayList searchBody = (ArrayList) respSearchResult.get("body"); int numberOfTitleHits = 0; http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinServerTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinServerTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinServerTest.java index 76a0758..47e0897 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinServerTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinServerTest.java @@ -17,7 +17,4 @@ package org.apache.zeppelin.rest; -public class ZeppelinServerTest extends AbstractTestRestApi { - - -} +public class ZeppelinServerTest extends AbstractTestRestApi {} http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java index ec370d4..530bc0d 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/rest/ZeppelinSparkClusterTest.java @@ -19,15 +19,6 @@ package org.apache.zeppelin.rest; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import org.apache.commons.io.FileUtils; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.File; import java.io.IOException; import java.util.Arrays; @@ -36,7 +27,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; - +import org.apache.commons.io.FileUtils; import org.apache.zeppelin.conf.ZeppelinConfiguration; import org.apache.zeppelin.display.AngularObject; import org.apache.zeppelin.interpreter.InterpreterException; @@ -50,21 +41,26 @@ import org.apache.zeppelin.notebook.Paragraph; import org.apache.zeppelin.scheduler.Job.Status; import org.apache.zeppelin.server.ZeppelinServer; import org.apache.zeppelin.user.AuthenticationInfo; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -/** - * Test against spark cluster. - */ +/** Test against spark cluster. */ @RunWith(value = Parameterized.class) public class ZeppelinSparkClusterTest extends AbstractTestRestApi { private static final Logger LOGGER = LoggerFactory.getLogger(ZeppelinSparkClusterTest.class); - //This is for only run setupSparkInterpreter one time for each spark version, otherwise - //each test method will run setupSparkInterpreter which will cost a long time and may cause travis - //ci timeout. - //TODO(zjffdu) remove this after we upgrade it to junit 4.13 (ZEPPELIN-3341) + // This is for only run setupSparkInterpreter one time for each spark version, otherwise + // each test method will run setupSparkInterpreter which will cost a long time and may cause + // travis + // ci timeout. + // TODO(zjffdu) remove this after we upgrade it to junit 4.13 (ZEPPELIN-3341) private static Set<String> verifiedSparkVersions = new HashSet<>(); - private String sparkVersion; private AuthenticationInfo anonymous = new AuthenticationInfo("anonymous"); @@ -82,47 +78,43 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { @Parameterized.Parameters public static List<Object[]> data() { - return Arrays.asList(new Object[][]{ - {"2.2.1"}, - {"2.1.2"}, - {"2.0.2"}, - {"1.6.3"} - }); + return Arrays.asList(new Object[][] {{"2.2.1"}, {"2.1.2"}, {"2.0.2"}, {"1.6.3"}}); } public void setupSparkInterpreter(String sparkHome) throws InterpreterException { - InterpreterSetting sparkIntpSetting = ZeppelinServer.notebook.getInterpreterSettingManager() - .getInterpreterSettingByName("spark"); + InterpreterSetting sparkIntpSetting = + ZeppelinServer.notebook.getInterpreterSettingManager().getInterpreterSettingByName("spark"); Map<String, InterpreterProperty> sparkProperties = (Map<String, InterpreterProperty>) sparkIntpSetting.getProperties(); LOG.info("SPARK HOME detected " + sparkHome); if (System.getenv("SPARK_MASTER") != null) { - sparkProperties.put("master", - new InterpreterProperty("master", System.getenv("SPARK_MASTER"))); + sparkProperties.put( + "master", new InterpreterProperty("master", System.getenv("SPARK_MASTER"))); } else { sparkProperties.put("master", new InterpreterProperty("master", "local[2]")); } sparkProperties.put("SPARK_HOME", new InterpreterProperty("SPARK_HOME", sparkHome)); sparkProperties.put("spark.master", new InterpreterProperty("spark.master", "local[2]")); - sparkProperties.put("spark.cores.max", - new InterpreterProperty("spark.cores.max", "2")); - sparkProperties.put("zeppelin.spark.useHiveContext", + sparkProperties.put("spark.cores.max", new InterpreterProperty("spark.cores.max", "2")); + sparkProperties.put( + "zeppelin.spark.useHiveContext", new InterpreterProperty("zeppelin.spark.useHiveContext", "false")); - sparkProperties.put("zeppelin.pyspark.useIPython", - new InterpreterProperty("zeppelin.pyspark.useIPython", "false")); - sparkProperties.put("zeppelin.spark.useNew", - new InterpreterProperty("zeppelin.spark.useNew", "true")); - sparkProperties.put("zeppelin.spark.test", - new InterpreterProperty("zeppelin.spark.test", "true")); + sparkProperties.put( + "zeppelin.pyspark.useIPython", + new InterpreterProperty("zeppelin.pyspark.useIPython", "false")); + sparkProperties.put( + "zeppelin.spark.useNew", new InterpreterProperty("zeppelin.spark.useNew", "true")); + sparkProperties.put( + "zeppelin.spark.test", new InterpreterProperty("zeppelin.spark.test", "true")); ZeppelinServer.notebook.getInterpreterSettingManager().restart(sparkIntpSetting.getId()); } @BeforeClass public static void setUp() throws Exception { - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_HELIUM_REGISTRY.getVarName(), - "helium"); + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_HELIUM_REGISTRY.getVarName(), "helium"); AbstractTestRestApi.startUp(ZeppelinSparkClusterTest.class.getSimpleName()); } @@ -148,15 +140,11 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { // create new note Note note = ZeppelinServer.notebook.createNote(anonymous); Paragraph p = note.addNewParagraph(anonymous); - p.setText("%spark import java.util.Date\n" + - "import java.net.URL\n" + - "println(\"hello\")\n" - ); + p.setText("%spark import java.util.Date\n" + "import java.net.URL\n" + "println(\"hello\")\n"); note.run(p.getId(), true); assertEquals(Status.FINISHED, p.getStatus()); - assertEquals("hello\n" + - "import java.util.Date\n" + - "import java.net.URL\n", + assertEquals( + "hello\n" + "import java.util.Date\n" + "import java.net.URL\n", p.getReturn().message().get(0).getData()); p.setText("%spark invalid_code"); @@ -186,17 +174,19 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { Note note = ZeppelinServer.notebook.createNote(anonymous); // test basic dataframe api Paragraph p = note.addNewParagraph(anonymous); - p.setText("%spark val df=sqlContext.createDataFrame(Seq((\"hello\",20)))\n" + - "df.collect()"); + p.setText("%spark val df=sqlContext.createDataFrame(Seq((\"hello\",20)))\n" + "df.collect()"); note.run(p.getId(), true); assertEquals(Status.FINISHED, p.getStatus()); - assertTrue(p.getReturn().message().get(0).getData().contains( - "Array[org.apache.spark.sql.Row] = Array([hello,20])")); + assertTrue( + p.getReturn() + .message() + .get(0) + .getData() + .contains("Array[org.apache.spark.sql.Row] = Array([hello,20])")); // test display DataFrame p = note.addNewParagraph(anonymous); - p.setText("%spark val df=sqlContext.createDataFrame(Seq((\"hello\",20)))\n" + - "z.show(df)"); + p.setText("%spark val df=sqlContext.createDataFrame(Seq((\"hello\",20)))\n" + "z.show(df)"); note.run(p.getId(), true); assertEquals(Status.FINISHED, p.getStatus()); assertEquals(InterpreterResult.Type.TABLE, p.getReturn().message().get(0).getType()); @@ -205,8 +195,7 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { // test display DataSet if (isSpark2()) { p = note.addNewParagraph(anonymous); - p.setText("%spark val ds=spark.createDataset(Seq((\"hello\",20)))\n" + - "z.show(ds)"); + p.setText("%spark val ds=spark.createDataset(Seq((\"hello\",20)))\n" + "z.show(ds)"); note.run(p.getId(), true); assertEquals(Status.FINISHED, p.getStatus()); assertEquals(InterpreterResult.Type.TABLE, p.getReturn().message().get(0).getType()); @@ -223,10 +212,12 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { sqlContextName = "spark"; } Paragraph p = note.addNewParagraph(anonymous); - p.setText("%spark.r localDF <- data.frame(name=c(\"a\", \"b\", \"c\"), age=c(19, 23, 18))\n" + - "df <- createDataFrame(" + sqlContextName + ", localDF)\n" + - "count(df)" - ); + p.setText( + "%spark.r localDF <- data.frame(name=c(\"a\", \"b\", \"c\"), age=c(19, 23, 18))\n" + + "df <- createDataFrame(" + + sqlContextName + + ", localDF)\n" + + "count(df)"); note.run(p.getId(), true); assertEquals(Status.FINISHED, p.getStatus()); assertEquals("[1] 3", p.getReturn().message().get(0).getData().trim()); @@ -246,18 +237,20 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { if (!isSpark2()) { // run sqlContext test p = note.addNewParagraph(anonymous); - p.setText("%pyspark from pyspark.sql import Row\n" + - "df=sqlContext.createDataFrame([Row(id=1, age=20)])\n" + - "df.collect()"); + p.setText( + "%pyspark from pyspark.sql import Row\n" + + "df=sqlContext.createDataFrame([Row(id=1, age=20)])\n" + + "df.collect()"); note.run(p.getId(), true); assertEquals(Status.FINISHED, p.getStatus()); assertEquals("[Row(age=20, id=1)]\n", p.getReturn().message().get(0).getData()); // test display Dataframe p = note.addNewParagraph(anonymous); - p.setText("%pyspark from pyspark.sql import Row\n" + - "df=sqlContext.createDataFrame([Row(id=1, age=20)])\n" + - "z.show(df)"); + p.setText( + "%pyspark from pyspark.sql import Row\n" + + "df=sqlContext.createDataFrame([Row(id=1, age=20)])\n" + + "z.show(df)"); note.run(p.getId(), true); waitForFinish(p); assertEquals(Status.FINISHED, p.getStatus()); @@ -267,34 +260,36 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { // test udf p = note.addNewParagraph(anonymous); - p.setText("%pyspark sqlContext.udf.register(\"f1\", lambda x: len(x))\n" + - "sqlContext.sql(\"select f1(\\\"abc\\\") as len\").collect()"); + p.setText( + "%pyspark sqlContext.udf.register(\"f1\", lambda x: len(x))\n" + + "sqlContext.sql(\"select f1(\\\"abc\\\") as len\").collect()"); note.run(p.getId(), true); assertEquals(Status.FINISHED, p.getStatus()); - assertTrue("[Row(len=u'3')]\n".equals(p.getReturn().message().get(0).getData()) || - "[Row(len='3')]\n".equals(p.getReturn().message().get(0).getData())); + assertTrue( + "[Row(len=u'3')]\n".equals(p.getReturn().message().get(0).getData()) + || "[Row(len='3')]\n".equals(p.getReturn().message().get(0).getData())); // test exception p = note.addNewParagraph(anonymous); /* - %pyspark - a=1 + %pyspark + a=1 - print(a2) - */ + print(a2) + */ p.setText("%pyspark a=1\n\nprint(a2)"); note.run(p.getId(), true); assertEquals(Status.ERROR, p.getStatus()); - assertTrue(p.getReturn().message().get(0).getData() - .contains("Fail to execute line 3: print(a2)")); - assertTrue(p.getReturn().message().get(0).getData() - .contains("name 'a2' is not defined")); + assertTrue( + p.getReturn().message().get(0).getData().contains("Fail to execute line 3: print(a2)")); + assertTrue(p.getReturn().message().get(0).getData().contains("name 'a2' is not defined")); } else { // run SparkSession test p = note.addNewParagraph(anonymous); - p.setText("%pyspark from pyspark.sql import Row\n" + - "df=sqlContext.createDataFrame([Row(id=1, age=20)])\n" + - "df.collect()"); + p.setText( + "%pyspark from pyspark.sql import Row\n" + + "df=sqlContext.createDataFrame([Row(id=1, age=20)])\n" + + "df.collect()"); note.run(p.getId(), true); assertEquals(Status.FINISHED, p.getStatus()); assertEquals("[Row(age=20, id=1)]\n", p.getReturn().message().get(0).getData()); @@ -302,12 +297,14 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { // test udf p = note.addNewParagraph(anonymous); // use SQLContext to register UDF but use this UDF through SparkSession - p.setText("%pyspark sqlContext.udf.register(\"f1\", lambda x: len(x))\n" + - "spark.sql(\"select f1(\\\"abc\\\") as len\").collect()"); + p.setText( + "%pyspark sqlContext.udf.register(\"f1\", lambda x: len(x))\n" + + "spark.sql(\"select f1(\\\"abc\\\") as len\").collect()"); note.run(p.getId(), true); assertEquals(Status.FINISHED, p.getStatus()); - assertTrue("[Row(len=u'3')]\n".equals(p.getReturn().message().get(0).getData()) || - "[Row(len='3')]\n".equals(p.getReturn().message().get(0).getData())); + assertTrue( + "[Row(len=u'3')]\n".equals(p.getReturn().message().get(0).getData()) + || "[Row(len='3')]\n".equals(p.getReturn().message().get(0).getData())); } } @@ -417,11 +414,16 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { // register global hook & note1 hook Paragraph p1 = note.addNewParagraph(anonymous); - p1.setText("%python from __future__ import print_function\n" + - "z.registerHook('pre_exec', 'print(1)')\n" + - "z.registerHook('post_exec', 'print(2)')\n" + - "z.registerNoteHook('pre_exec', 'print(3)', '" + note.getId() + "')\n" + - "z.registerNoteHook('post_exec', 'print(4)', '" + note.getId() + "')\n"); + p1.setText( + "%python from __future__ import print_function\n" + + "z.registerHook('pre_exec', 'print(1)')\n" + + "z.registerHook('post_exec', 'print(2)')\n" + + "z.registerNoteHook('pre_exec', 'print(3)', '" + + note.getId() + + "')\n" + + "z.registerNoteHook('post_exec', 'print(4)', '" + + note.getId() + + "')\n"); Paragraph p2 = note.addNewParagraph(anonymous); p2.setText("%python print(5)"); @@ -464,10 +466,15 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { if (isSpark2()) { sqlContextName = "spark"; } - p1.setText("%pyspark\n" + - "from pyspark.sql import SQLContext\n" + - "print(" + sqlContextName + ".read.format('com.databricks.spark.csv')" + - ".load('file://" + tmpFile.getAbsolutePath() + "').count())"); + p1.setText( + "%pyspark\n" + + "from pyspark.sql import SQLContext\n" + + "print(" + + sqlContextName + + ".read.format('com.databricks.spark.csv')" + + ".load('file://" + + tmpFile.getAbsolutePath() + + "').count())"); note.run(p1.getId(), true); assertEquals(Status.FINISHED, p1.getStatus()); @@ -499,13 +506,14 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { public void testSparkZeppelinContextDynamicForms() throws IOException { Note note = ZeppelinServer.notebook.createNote(anonymous); Paragraph p = note.addNewParagraph(anonymous); - String code = "%spark.spark println(z.textbox(\"my_input\", \"default_name\"))\n" + - "println(z.password(\"my_pwd\"))\n" + - "println(z.select(\"my_select\", \"1\"," + - "Seq((\"1\", \"select_1\"), (\"2\", \"select_2\"))))\n" + - "val items=z.checkbox(\"my_checkbox\", Seq(\"2\"), " + - "Seq((\"1\", \"check_1\"), (\"2\", \"check_2\")))\n" + - "println(items(0))"; + String code = + "%spark.spark println(z.textbox(\"my_input\", \"default_name\"))\n" + + "println(z.password(\"my_pwd\"))\n" + + "println(z.select(\"my_select\", \"1\"," + + "Seq((\"1\", \"select_1\"), (\"2\", \"select_2\"))))\n" + + "val items=z.checkbox(\"my_checkbox\", Seq(\"2\"), " + + "Seq((\"1\", \"check_1\"), (\"2\", \"check_2\")))\n" + + "println(items(0))"; p.setText(code); note.run(p.getId()); waitForFinish(p); @@ -531,13 +539,14 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { public void testPySparkZeppelinContextDynamicForms() throws IOException { Note note = ZeppelinServer.notebook.createNote(anonymous); Paragraph p = note.addNewParagraph(anonymous); - String code = "%spark.pyspark print(z.input('my_input', 'default_name'))\n" + - "print(z.password('my_pwd'))\n" + - "print(z.select('my_select', " + - "[('1', 'select_1'), ('2', 'select_2')], defaultValue='1'))\n" + - "items=z.checkbox('my_checkbox', " + - "[('1', 'check_1'), ('2', 'check_2')], defaultChecked=['2'])\n" + - "print(items[0])"; + String code = + "%spark.pyspark print(z.input('my_input', 'default_name'))\n" + + "print(z.password('my_pwd'))\n" + + "print(z.select('my_select', " + + "[('1', 'select_1'), ('2', 'select_2')], defaultValue='1'))\n" + + "items=z.checkbox('my_checkbox', " + + "[('1', 'check_1'), ('2', 'check_2')], defaultChecked=['2'])\n" + + "print(items[0])"; p.setText(code); note.run(p.getId(), true); @@ -566,8 +575,11 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { p1.setText("%spark z.angularBind(\"name\", \"world\")"); note.run(p1.getId(), true); assertEquals(Status.FINISHED, p1.getStatus()); - List<AngularObject> angularObjects = p1.getBindedInterpreter().getInterpreterGroup() - .getAngularObjectRegistry().getAll(note.getId(), null); + List<AngularObject> angularObjects = + p1.getBindedInterpreter() + .getInterpreterGroup() + .getAngularObjectRegistry() + .getAll(note.getId(), null); assertEquals(1, angularObjects.size()); assertEquals("name", angularObjects.get(0).getName()); assertEquals("world", angularObjects.get(0).get()); @@ -577,7 +589,10 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { p2.setText("%spark z.angularUnbind(\"name\")"); note.run(p2.getId(), true); assertEquals(Status.FINISHED, p2.getStatus()); - angularObjects = p1.getBindedInterpreter().getInterpreterGroup().getAngularObjectRegistry() + angularObjects = + p1.getBindedInterpreter() + .getInterpreterGroup() + .getAngularObjectRegistry() .getAll(note.getId(), null); assertEquals(0, angularObjects.size()); @@ -586,8 +601,11 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { p3.setText("%spark z.angularBindGlobal(\"name2\", \"world2\")"); note.run(p3.getId(), true); assertEquals(Status.FINISHED, p3.getStatus()); - List<AngularObject> globalAngularObjects = p3.getBindedInterpreter().getInterpreterGroup() - .getAngularObjectRegistry().getAll(null, null); + List<AngularObject> globalAngularObjects = + p3.getBindedInterpreter() + .getInterpreterGroup() + .getAngularObjectRegistry() + .getAll(null, null); assertEquals(1, globalAngularObjects.size()); assertEquals("name2", globalAngularObjects.get(0).getName()); assertEquals("world2", globalAngularObjects.get(0).get()); @@ -597,8 +615,11 @@ public class ZeppelinSparkClusterTest extends AbstractTestRestApi { p4.setText("%spark z.angularUnbindGlobal(\"name2\")"); note.run(p4.getId(), true); assertEquals(Status.FINISHED, p4.getStatus()); - globalAngularObjects = p4.getBindedInterpreter().getInterpreterGroup() - .getAngularObjectRegistry().getAll(note.getId(), null); + globalAngularObjects = + p4.getBindedInterpreter() + .getInterpreterGroup() + .getAngularObjectRegistry() + .getAll(note.getId(), null); assertEquals(0, globalAngularObjects.size()); } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java index dc281bc..471b3e9 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/security/DirAccessTest.java @@ -19,17 +19,16 @@ package org.apache.zeppelin.security; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; -import org.junit.Test; - import org.apache.zeppelin.conf.ZeppelinConfiguration; import org.apache.zeppelin.rest.AbstractTestRestApi; +import org.junit.Test; public class DirAccessTest extends AbstractTestRestApi { @Test public void testDirAccessForbidden() throws Exception { synchronized (this) { - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_SERVER_DEFAULT_DIR_ALLOWED - .getVarName(), "false"); + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_SERVER_DEFAULT_DIR_ALLOWED.getVarName(), "false"); AbstractTestRestApi.startUp(DirAccessTest.class.getSimpleName()); HttpClient httpClient = new HttpClient(); GetMethod getMethod = new GetMethod(getUrlToTest() + "/app/"); @@ -42,8 +41,8 @@ public class DirAccessTest extends AbstractTestRestApi { @Test public void testDirAccessOk() throws Exception { synchronized (this) { - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_SERVER_DEFAULT_DIR_ALLOWED - .getVarName(), "true"); + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_SERVER_DEFAULT_DIR_ALLOWED.getVarName(), "true"); AbstractTestRestApi.startUp(DirAccessTest.class.getSimpleName()); HttpClient httpClient = new HttpClient(); GetMethod getMethod = new GetMethod(getUrlToTest() + "/app/"); @@ -61,4 +60,3 @@ public class DirAccessTest extends AbstractTestRestApi { return url; } } - http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/security/SecurityUtilsTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/security/SecurityUtilsTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/security/SecurityUtilsTest.java index 0c535b9..e005d4c 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/security/SecurityUtilsTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/security/SecurityUtilsTest.java @@ -44,8 +44,7 @@ import sun.security.acl.PrincipalImpl; @RunWith(PowerMockRunner.class) @PrepareForTest(org.apache.shiro.SecurityUtils.class) public class SecurityUtilsTest { - @Mock - org.apache.shiro.subject.Subject subject; + @Mock org.apache.shiro.subject.Subject subject; @Test public void isInvalid() throws URISyntaxException, UnknownHostException { @@ -54,9 +53,11 @@ public class SecurityUtilsTest { @Test public void isInvalidFromConfig() - throws URISyntaxException, UnknownHostException, ConfigurationException { - assertFalse(SecurityUtils.isValidOrigin("http://otherinvalidhost.com", - new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); + throws URISyntaxException, UnknownHostException, ConfigurationException { + assertFalse( + SecurityUtils.isValidOrigin( + "http://otherinvalidhost.com", + new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); } @Test @@ -67,54 +68,64 @@ public class SecurityUtilsTest { @Test public void isLocalMachine() throws URISyntaxException, UnknownHostException { String origin = "http://" + InetAddress.getLocalHost().getHostName(); - assertTrue("Origin " + origin + " is not allowed. Please check your hostname.", - SecurityUtils.isValidOrigin(origin, ZeppelinConfiguration.create())); + assertTrue( + "Origin " + origin + " is not allowed. Please check your hostname.", + SecurityUtils.isValidOrigin(origin, ZeppelinConfiguration.create())); } @Test public void isValidFromConfig() - throws URISyntaxException, UnknownHostException, ConfigurationException { - assertTrue(SecurityUtils.isValidOrigin("http://otherhost.com", - new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); + throws URISyntaxException, UnknownHostException, ConfigurationException { + assertTrue( + SecurityUtils.isValidOrigin( + "http://otherhost.com", + new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); } @Test public void isValidFromStar() - throws URISyntaxException, UnknownHostException, ConfigurationException { - assertTrue(SecurityUtils.isValidOrigin("http://anyhost.com", - new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site-star.xml")))); + throws URISyntaxException, UnknownHostException, ConfigurationException { + assertTrue( + SecurityUtils.isValidOrigin( + "http://anyhost.com", + new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site-star.xml")))); } @Test - public void nullOrigin() - throws URISyntaxException, UnknownHostException, ConfigurationException { - assertFalse(SecurityUtils.isValidOrigin(null, - new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); + public void nullOrigin() throws URISyntaxException, UnknownHostException, ConfigurationException { + assertFalse( + SecurityUtils.isValidOrigin( + null, new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); } @Test public void nullOriginWithStar() - throws URISyntaxException, UnknownHostException, ConfigurationException { - assertTrue(SecurityUtils.isValidOrigin(null, - new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site-star.xml")))); + throws URISyntaxException, UnknownHostException, ConfigurationException { + assertTrue( + SecurityUtils.isValidOrigin( + null, + new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site-star.xml")))); } @Test public void emptyOrigin() - throws URISyntaxException, UnknownHostException, ConfigurationException { - assertFalse(SecurityUtils.isValidOrigin("", - new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); + throws URISyntaxException, UnknownHostException, ConfigurationException { + assertFalse( + SecurityUtils.isValidOrigin( + "", new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); } @Test public void notAURIOrigin() - throws URISyntaxException, UnknownHostException, ConfigurationException { - assertFalse(SecurityUtils.isValidOrigin("test123", - new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); + throws URISyntaxException, UnknownHostException, ConfigurationException { + assertFalse( + SecurityUtils.isValidOrigin( + "test123", + new ZeppelinConfiguration(this.getClass().getResource("/zeppelin-site.xml")))); } @Test - public void canGetPrincipalName() { + public void canGetPrincipalName() { String expectedName = "java.security.Principal.getName()"; setupPrincipalName(expectedName); assertEquals(expectedName, SecurityUtils.getPrincipal()); @@ -123,11 +134,11 @@ public class SecurityUtilsTest { @Test public void testUsernameForceLowerCase() throws IOException, InterruptedException { String expectedName = "java.security.Principal.getName()"; - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_USERNAME_FORCE_LOWERCASE - .getVarName(), String.valueOf(true)); + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_USERNAME_FORCE_LOWERCASE.getVarName(), + String.valueOf(true)); setupPrincipalName(expectedName); assertEquals(expectedName.toLowerCase(), SecurityUtils.getPrincipal()); - } private void setupPrincipalName(String expectedName) { @@ -159,6 +170,4 @@ public class SecurityUtilsTest { modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); field.set(null, newValue); } - - } http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/server/CorsFilterTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/server/CorsFilterTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/server/CorsFilterTest.java index ff713ea..da9decd 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/server/CorsFilterTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/server/CorsFilterTest.java @@ -21,21 +21,17 @@ import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import org.junit.Assert; -import org.junit.Test; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; - import java.io.IOException; - import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.junit.Assert; +import org.junit.Test; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; -/** - * Basic CORS REST API tests. - */ +/** Basic CORS REST API tests. */ public class CorsFilterTest { public static String[] headers = new String[8]; public static Integer count = 0; @@ -52,14 +48,17 @@ public class CorsFilterTest { when(mockRequest.getServerName()).thenReturn("localhost"); count = 0; - doAnswer(new Answer() { - @Override - public Object answer(InvocationOnMock invocationOnMock) throws Throwable { - headers[count] = invocationOnMock.getArguments()[1].toString(); - count++; - return null; - } - }).when(mockResponse).setHeader(anyString(), anyString()); + doAnswer( + new Answer() { + @Override + public Object answer(InvocationOnMock invocationOnMock) throws Throwable { + headers[count] = invocationOnMock.getArguments()[1].toString(); + count++; + return null; + } + }) + .when(mockResponse) + .setHeader(anyString(), anyString()); filter.doFilter(mockRequest, mockResponse, mockedFilterChain); Assert.assertTrue(headers[0].equals("http://localhost:8080")); @@ -76,14 +75,17 @@ public class CorsFilterTest { when(mockRequest.getMethod()).thenReturn("Empty"); when(mockRequest.getServerName()).thenReturn("evillocalhost"); - doAnswer(new Answer() { - @Override - public Object answer(InvocationOnMock invocationOnMock) throws Throwable { - headers[count] = invocationOnMock.getArguments()[1].toString(); - count++; - return null; - } - }).when(mockResponse).setHeader(anyString(), anyString()); + doAnswer( + new Answer() { + @Override + public Object answer(InvocationOnMock invocationOnMock) throws Throwable { + headers[count] = invocationOnMock.getArguments()[1].toString(); + count++; + return null; + } + }) + .when(mockResponse) + .setHeader(anyString(), anyString()); filter.doFilter(mockRequest, mockResponse, mockedFilterChain); Assert.assertTrue(headers[0].equals("")); http://git-wip-us.apache.org/repos/asf/zeppelin/blob/55f6c91c/zeppelin-server/src/test/java/org/apache/zeppelin/service/ConfigurationServiceTest.java ---------------------------------------------------------------------- diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/service/ConfigurationServiceTest.java b/zeppelin-server/src/test/java/org/apache/zeppelin/service/ConfigurationServiceTest.java index ee4f4fc..f94c573 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/service/ConfigurationServiceTest.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/service/ConfigurationServiceTest.java @@ -15,9 +15,17 @@ * limitations under the License. */ - package org.apache.zeppelin.service; +import static junit.framework.TestCase.assertTrue; +import static org.junit.Assert.assertFalse; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.verify; + +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import org.apache.zeppelin.conf.ZeppelinConfiguration; import org.apache.zeppelin.rest.AbstractTestRestApi; import org.apache.zeppelin.server.ZeppelinServer; @@ -26,16 +34,6 @@ import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import java.io.IOException; -import java.util.HashSet; -import java.util.Map; - -import static junit.framework.TestCase.assertTrue; -import static org.junit.Assert.assertFalse; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.verify; - public class ConfigurationServiceTest extends AbstractTestRestApi { private static ConfigurationService configurationService; @@ -47,8 +45,8 @@ public class ConfigurationServiceTest extends AbstractTestRestApi { @BeforeClass public static void setUp() throws Exception { - System.setProperty(ZeppelinConfiguration.ConfVars.ZEPPELIN_HELIUM_REGISTRY.getVarName(), - "helium"); + System.setProperty( + ZeppelinConfiguration.ConfVars.ZEPPELIN_HELIUM_REGISTRY.getVarName(), "helium"); AbstractTestRestApi.startUp(ConfigurationServiceTest.class.getSimpleName()); configurationService = ZeppelinServer.notebookWsServer.getConfigurationService(); }
