• Y
  • List All
  • Feedback
    • This Project
    • All Projects
Profile Account Log out
  • Favorite
  • Project
  • Recent History
Loading...
  • Log in
  • Sign up
kadrians / Testing_for_YONA star
  • Project homeH
  • CodeC
  • IssueI 1
  • Pull requestP
  • Review R
  • MilestoneM
  • BoardB 2
  • Files
  • Commit
  • Branches
Testing_for_YONAsourcetestcontrollersIssueAppTest.java
Download as .zip file
File name
Commit message
Commit date
bin
Yona 1.16.0 Upload
02-04
lib
Yona 1.16.0 Upload
02-04
share/doc/api
Yona 1.16.0 Upload
02-04
source
Source Code Upload
02-04
README.md
Yona 1.16.0 Upload
02-04
File name
Commit message
Commit date
app
Source Code Upload
02-04
conf
Source Code Upload
02-04
docs
Source Code Upload
02-04
lib
Source Code Upload
02-04
project
Source Code Upload
02-04
public
Source Code Upload
02-04
support-script
Source Code Upload
02-04
test
Source Code Upload
02-04
.gitignore
Source Code Upload
02-04
.mailmap
Source Code Upload
02-04
.travis.yml
Source Code Upload
02-04
AUTHORS
Source Code Upload
02-04
LICENSE
Source Code Upload
02-04
NOTICE
Source Code Upload
02-04
README.md
Source Code Upload
02-04
build.sbt
Source Code Upload
02-04
dev.sh
Source Code Upload
02-04
dist.sh
Source Code Upload
02-04
is-alive-bot.sh
Source Code Upload
02-04
minify-js.sh
Source Code Upload
02-04
restart.sh
Source Code Upload
02-04
File name
Commit message
Commit date
actions/support
Source Code Upload
02-04
actors
Source Code Upload
02-04
controllers
Source Code Upload
02-04
mailbox
Source Code Upload
02-04
models
Source Code Upload
02-04
playRepository
Source Code Upload
02-04
support
Source Code Upload
02-04
utils
Source Code Upload
02-04
validation
Source Code Upload
02-04
File name
Commit message
Commit date
api
Source Code Upload
02-04
ApplicationTest.java
Source Code Upload
02-04
CommentAppTest.java
Source Code Upload
02-04
EnrollProjectAppTest.java
Source Code Upload
02-04
ImportAppTest.java
Source Code Upload
02-04
IssueAppTest.java
Source Code Upload
02-04
MarkdownAppTest.java
Source Code Upload
02-04
PasswordResetAppTest.java
Source Code Upload
02-04
ProjectAppTest.java
Source Code Upload
02-04
PullRequestAppTest.java
Source Code Upload
02-04
ReviewThreadAppTest.java
Source Code Upload
02-04
SiteAppTest.java
Source Code Upload
02-04
UserAppTest.java
Source Code Upload
02-04
WatchProjectAppTest.java
Source Code Upload
02-04
Nell 02-04 2600fe6 Source Code Upload UNIX
Raw Open in browser Change history
/** * Yobi, Project Hosting SW * * Copyright 2013 NAVER Corp. * http://yobi.io * * @Author Yi EungJun * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package controllers; import models.*; import models.enumeration.ProjectScope; import models.resource.Resource; import org.junit.*; import play.mvc.Result; import play.test.FakeApplication; import play.test.Helpers; import java.util.HashMap; import java.util.Map; import static org.fest.assertions.Assertions.assertThat; import static play.test.Helpers.*; public class IssueAppTest { protected static FakeApplication app; private User admin; private User manager; private User member; private User author; private User assignee; private User nonmember; private User anonymous; private Issue issue; private String projectOwner = "yobi"; private String projectName = "projectYobi"; private Project project; @BeforeClass public static void beforeClass() { app = support.Helpers.makeTestApplication(); Helpers.start(app); } @Before public void before() { project = Project.findByOwnerAndProjectName(projectOwner, projectName); project.setProjectScope(ProjectScope.PRIVATE); admin = User.findByLoginId("admin"); manager = User.findByLoginId("yobi"); member = User.findByLoginId("laziel"); author = User.findByLoginId("nori"); assignee = User.findByLoginId("alecsiel"); nonmember = User.findByLoginId("doortts"); anonymous = new NullUser(); issue = new Issue(); issue.setProject(project); issue.setTitle("hello"); issue.setBody("world"); issue.setAuthor(author); issue.setAssignee(Assignee.add(assignee.id, project.id)); issue.save(); } @AfterClass public static void after() { Helpers.stop(app); } @Test public void testInit(){ assertThat(this.admin.isSiteManager()).describedAs("admin is Site Admin.").isTrue(); assertThat(ProjectUser.isManager(manager.id, project.id)).describedAs("manager is a manager").isTrue(); assertThat(ProjectUser.isManager(member.id, project.id)).describedAs("member is a manager").isFalse(); assertThat(ProjectUser.isMember(member.id, project.id)).describedAs("member is a member").isTrue(); assertThat(ProjectUser.isMember(author.id, project.id)).describedAs("author is a member").isFalse(); assertThat(project.isPublic()).describedAs("project is public").isFalse(); assertThat(ProjectUser.isMember(assignee.id, project.id)).describedAs("assignee is a member").isFalse(); } private Result postBy(User user) { //Given Map<String,String> data = new HashMap<>(); data.put("title", "hello"); data.put("body", "world"); //When return callAction( controllers.routes.ref.IssueApp.newIssue(projectOwner, projectName), fakeRequest(POST, routes.IssueApp.newIssue(projectOwner, projectName).url()) .withFormUrlEncodedBody(data).withSession(UserApp.SESSION_USERID, user.getId().toString())); } private Result editBy(User user) { Map<String,String> data = new HashMap<>(); data.put("title", "bye"); data.put("body", "universe"); return callAction( controllers.routes.ref.IssueApp.editIssue(projectOwner, projectName, issue.getNumber()), fakeRequest( POST, routes.IssueApp.editIssue(projectOwner, projectName, issue.getNumber()) .url()).withFormUrlEncodedBody(data).withSession( UserApp.SESSION_USERID, user.id.toString())); } private Result deleteBy(User user) { return callAction( controllers.routes.ref.IssueApp.deleteIssue(projectOwner, projectName, issue.getNumber()), fakeRequest( DELETE, routes.IssueApp.deleteIssue(projectOwner, projectName, issue.getNumber()) .url()).withSession(UserApp.SESSION_USERID, user.id.toString())); } private Result commentBy(User user) { //Given Map<String,String> data = new HashMap<>(); data.put("contents", "world"); //When return callAction( controllers.routes.ref.IssueApp.newComment(projectOwner, projectName, issue.getNumber()), fakeRequest( POST, routes.IssueApp.newComment(projectOwner, projectName, issue.getNumber()) .url()).withFormUrlEncodedBody(data).withSession( UserApp.SESSION_USERID, user.getId().toString())); } @Test public void editByNonmember() { // Given project.refresh(); project.setProjectScope(ProjectScope.PUBLIC); project.update(); // When Result result = editBy(nonmember); // Then assertThat(status(result)).describedAs("Nonmember can't edit other's issue.").isEqualTo(FORBIDDEN); } @Test public void editByAuthor() { // When Result result = editBy(author); // Then assertThat(status(result)).describedAs("Author can edit own issue.").isEqualTo(SEE_OTHER); } @Test public void editByAssignee() { // When Result result = editBy(assignee); // Then assertThat(status(result)).describedAs("Assignee can edit own issue.").isEqualTo(SEE_OTHER); } @Test public void editByAdmin() { // When Result result = editBy(admin); // Then assertThat(status(result)).describedAs("Site Admin can edit other's issue.").isEqualTo(SEE_OTHER); } @Test public void editByManager() { // When Result result = editBy(manager); // Then assertThat(status(result)).describedAs("Project Manager can edit other's issue.").isEqualTo(SEE_OTHER); } @Test public void editByMember() { // When Result result = editBy(member); // Then assertThat(status(result)).describedAs("Member can edit other's issue.").isEqualTo(SEE_OTHER); } @Test public void deleteByNonmember() { // Given project.refresh(); project.setProjectScope(ProjectScope.PUBLIC); project.update(); // When Result result = deleteBy(nonmember); // Then assertThat(status(result)).describedAs("Nonmember can't delete other's issue.").isEqualTo(FORBIDDEN); } @Test public void deleteByAuthor() { // When Result result = deleteBy(author); // Then assertThat(status(result)).describedAs("Author can delete own issue.").isEqualTo(SEE_OTHER); } @Test public void deleteByAssignee() { // When Result result = deleteBy(assignee); // Then assertThat(status(result)).describedAs("Assignee can delete own issue.").isEqualTo(SEE_OTHER); } @Test public void deleteByAdmin() { // When Result result = deleteBy(admin); // Then assertThat(status(result)).describedAs("Site Admin can delete other's issue.").isEqualTo(SEE_OTHER); } @Test public void deleteByManager() { // When Result result = deleteBy(manager); // Then assertThat(status(result)).describedAs("Project Manager can delete other's issue.").isEqualTo(SEE_OTHER); } @Test public void deleteByMember() { // When Result result = deleteBy(member); // Then assertThat(status(result)).describedAs("Member can delete other's issue.").isEqualTo(SEE_OTHER); } @Test public void postByAnonymous() { // Given project.refresh(); project.setProjectScope(ProjectScope.PUBLIC); project.update(); // When Result result = postBy(anonymous); // Then assertThat(status(result)).describedAs("Anonymous can't post an issue.").isEqualTo(FORBIDDEN); } @Test public void postByNonmember() { // Given project.refresh(); project.setProjectScope(ProjectScope.PUBLIC); project.update(); // When Result result = postBy(nonmember); // Then assertThat(status(result)).describedAs("Nonmember can post an issue to public project.").isEqualTo(SEE_OTHER); } @Test public void postByAdmin() { // When Result result = postBy(admin); // Then assertThat(status(result)).describedAs("Site Admin can post an issue.").isEqualTo(SEE_OTHER); } @Test public void postByManager() { // When Result result = postBy(manager); // Then assertThat(status(result)).describedAs("Project Manager can post an issue.").isEqualTo(SEE_OTHER); } @Test public void postByMember() { // When Result result = postBy(member); // Then assertThat(status(result)).describedAs("Member can post an issue.").isEqualTo(SEE_OTHER); } @Test public void commentByAnonymous() { // Given project.refresh(); project.setProjectScope(ProjectScope.PUBLIC); project.update(); // When Result result = commentBy(anonymous); // Then assertThat(status(result)).describedAs("Anonymous can't comment for an issue.").isEqualTo(FORBIDDEN); } @Test public void commentByNonmember() { // Given project.refresh(); project.setProjectScope(ProjectScope.PUBLIC); project.update(); // When Result result = commentBy(nonmember); // Then assertThat(status(result)).describedAs("Nonmember can comment for an issue of public project.").isEqualTo(SEE_OTHER); } @Test public void commentByAdmin() { // When Result result = commentBy(admin); // Then assertThat(status(result)).describedAs("Site Admin can comment for an issue.").isEqualTo(SEE_OTHER); } @Test public void commentByManager() { // When Result result = commentBy(manager); // Then assertThat(status(result)).describedAs("Project Manager can comment for an issue.").isEqualTo(SEE_OTHER); } @Test public void commentByMember() { // When Result result = commentBy(member); // Then assertThat(status(result)).describedAs("Member can comment for an issue.").isEqualTo(SEE_OTHER); } @Test public void watchDefault() { issue.refresh(); assertThat(issue.getWatchers().contains(author)) .describedAs("The author watches the issue by default.").isTrue(); } @Test public void watch() { // Given Resource resource = issue.asResource(); project.refresh(); project.setProjectScope(ProjectScope.PUBLIC); project.update(); // When Result result = callAction( controllers.routes.ref.WatchApp.watch(resource.asParameter()), fakeRequest() .withSession(UserApp.SESSION_USERID, nonmember.id.toString()) ); // Then issue.refresh(); assertThat(status(result)).isEqualTo(OK); assertThat(issue.getWatchers().contains(nonmember)) .describedAs("A user becomes a watcher if the user explictly choose to watch the issue.").isTrue(); } @Test public void watchByAuthor() { // Given Resource resource = issue.asResource(); // When Result result = callAction( controllers.routes.ref.WatchApp.watch(resource.asParameter()), fakeRequest() .withSession(UserApp.SESSION_USERID, author.id.toString()) ); // Then issue.refresh(); assertThat(status(result)).isEqualTo(OK); } @Test public void watchByAssignee() { // Given Resource resource = issue.asResource(); // When Result result = callAction( controllers.routes.ref.WatchApp.watch(resource.asParameter()), fakeRequest() .withSession(UserApp.SESSION_USERID, assignee.id.toString()) ); // Then issue.refresh(); assertThat(status(result)).isEqualTo(OK); } @Test public void unwatch() { // Given Resource resource = issue.asResource(); project.refresh(); project.setProjectScope(ProjectScope.PUBLIC); project.update(); // When Result result = callAction( controllers.routes.ref.WatchApp.unwatch(resource.asParameter()), fakeRequest() .withSession(UserApp.SESSION_USERID, nonmember.id.toString()) ); // Then issue.refresh(); assertThat(status(result)).isEqualTo(SEE_OTHER); assertThat(issue.getWatchers().contains(nonmember)) .describedAs("A user becomes a unwatcher if the user explictly choose not to watch the issue.").isFalse(); } @Test public void unwatchByAuthor() { // Given Resource resource = issue.asResource(); // When Result result = callAction( controllers.routes.ref.WatchApp.unwatch(resource.asParameter()), fakeRequest() .withSession(UserApp.SESSION_USERID, author.id.toString()) ); // Then issue.refresh(); assertThat(status(result)).isEqualTo(SEE_OTHER); } @Test public void unwatchByAssignee() { // Given Resource resource = issue.asResource(); // When Result result = callAction( controllers.routes.ref.WatchApp.unwatch(resource.asParameter()), fakeRequest() .withSession(UserApp.SESSION_USERID, assignee.id.toString()) ); // Then issue.refresh(); assertThat(status(result)).isEqualTo(SEE_OTHER); } }

          
        
    
    
Copyright Yona authors & © NAVER Corp. & NAVER LABS Supported by NAVER CLOUD PLATFORM

or
login with Google Sign in with Google
Reset password | Sign up