• 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_YONAsourcetestcontrollersWatchProjectAppTest.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 Jungkook Kim * * 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 static org.fest.assertions.Assertions.*; import static play.test.Helpers.*; import models.Project; import models.User; import models.UserProjectNotification; import models.Watch; import models.enumeration.EventType; import models.enumeration.ProjectScope; import org.junit.*; import play.mvc.Http; import play.mvc.Result; import play.test.FakeApplication; import play.test.FakeRequest; import play.test.Helpers; import java.util.Map; public class WatchProjectAppTest { protected static FakeApplication app; @BeforeClass public static void beforeClass() { app = support.Helpers.makeTestApplication(); Helpers.start(app); } @AfterClass public static void afterClass() { Helpers.stop(app); } @Test public void testWatch_NoProject() { // given String ownerName = "111"; String projectName = "222"; // when Result result = callAction( routes.ref.WatchProjectApp.watch(ownerName, projectName), fakeRequest("POST", "/" + ownerName + "/" + projectName + "/watch") ); //then assertThat(status(result)).isEqualTo(Http.Status.FORBIDDEN); } @Test public void testWatch_AnonymousUser() { // given String ownerName = "yobi"; String projectName = "projectYobi"; String url = "/" + ownerName + "/" + projectName + "/watch"; FakeRequest request = fakeRequest("POST", url); // when Result result = callAction(routes.ref.WatchProjectApp.watch(ownerName, projectName), request); // then assertThat(status(result)).isEqualTo(Http.Status.SEE_OTHER); assertThat(redirectLocation(result)).isEqualTo(routes.UserApp.loginForm().url() + "?redirectUrl=" + url); } @Test public void testWatch() { // given String ownerName = "yobi"; String projectName = "projectYobi"; Long userId = 3L; FakeRequest request = fakeRequest("POST", "/" + ownerName + "/" + projectName + "/watch"). withSession(UserApp.SESSION_USERID, String.valueOf(userId)); // when Result result = callAction(routes.ref.WatchProjectApp.watch(ownerName, projectName), request); // then assertThat(status(result)).isEqualTo(Http.Status.OK); assertProjectIsInUserWatchingProjects(ownerName, projectName, userId); } @Test public void testUnwatch_NoProject() { // given String ownerName = "111"; String projectName = "222"; // when Result result = callAction(routes.ref.WatchProjectApp.unwatch(ownerName, projectName), fakeRequest("POST", "/" + ownerName + "/" + projectName + "/unwatch") ); //then assertThat(status(result)).isEqualTo(Http.Status.FORBIDDEN); } @Test public void testUnwatch_AnonymousUser() { // given String ownerName = "yobi"; String projectName = "projectYobi"; String url = "/" + ownerName + "/" + projectName + "/unwatch"; FakeRequest request = fakeRequest("POST", url); // when Result result = callAction(routes.ref.WatchProjectApp.unwatch(ownerName, projectName), request); // then assertThat(status(result)).isEqualTo(Http.Status.SEE_OTHER); assertThat(redirectLocation(result)).isEqualTo(routes.UserApp.loginForm().url() + "?redirectUrl=" + url); } @Test public void testUnwatch() { // given String ownerName = "yobi"; String projectName = "projectYobi"; Long userId = 3L; FakeRequest request = fakeRequest("POST", "/" + ownerName + "/" + projectName + "/unwatch"). withSession(UserApp.SESSION_USERID, String.valueOf(userId)); // when Result result = callAction(routes.ref.WatchProjectApp.unwatch(ownerName, projectName), request); // then assertThat(status(result)).isEqualTo(Http.Status.OK); assertProjectIsNotInUserWatchingProjects(ownerName, projectName, userId); } @Test public void testToggleWatchingProject() { // given Long userId = 1l; Long projectId = 1l; String eventTypeValue = "NEW_ISSUE"; User user = User.find.byId(userId); Project project = Project.find.byId(projectId); EventType eventType = EventType.valueOf(eventTypeValue); Watch.watch(user, project.asResource()); assertThat(user.getWatchingProjects().contains(project)).isTrue(); assertThat(UserProjectNotification.isEnabledNotiType(user, project, eventType)).isTrue(); FakeRequest request = fakeRequest("POST", "/noti/toggle/" + projectId + "/" + eventTypeValue) .withSession(UserApp.SESSION_USERID, String.valueOf(userId)); // when Result result = callAction(routes.ref.WatchProjectApp.toggle(projectId, eventTypeValue), request); // then assertThat(status(result)).isEqualTo(Http.Status.OK); assertThat(UserProjectNotification.isEnabledNotiType(user, project, eventType)).isFalse(); } @Test public void testToggleUnwatchingProject() { // given Long userId = 1l; Long projectId = 2l; String eventTypeValue = "NEW_ISSUE"; User user = User.find.byId(userId); Project project = Project.find.byId(projectId); assertThat(user.getWatchingProjects().contains(project)).isFalse(); FakeRequest request = fakeRequest("POST", "/noti/toggle/" + projectId + "/" + eventTypeValue) .withSession(UserApp.SESSION_USERID, String.valueOf(userId)); // when Result result = callAction(routes.ref.WatchProjectApp.toggle(projectId, eventTypeValue), request); // then assertThat(status(result)).isEqualTo(Http.Status.BAD_REQUEST); } @Test public void testToggleNoProject() { // given Long userId = 1l; Long projectId = 100l; // The project which has this id, should not exist. String eventTypeValue = "NEW_ISSUE"; FakeRequest request = fakeRequest("POST", "/noti/toggle/" + projectId + "/" + eventTypeValue) .withSession(UserApp.SESSION_USERID, String.valueOf(userId)); // when Result result = callAction(routes.ref.WatchProjectApp.toggle(projectId, eventTypeValue), request); // then assertThat(status(result)).isEqualTo(Http.Status.NOT_FOUND); } @Test public void testTogglePrivateProject() { // given Long userId = 2l; Long projectId = 3l; // The project should be private. String eventTypeValue = "NEW_ISSUE"; Project project = Project.find.byId(projectId); assertThat(project.projectScope).isEqualTo(ProjectScope.PRIVATE); FakeRequest request = fakeRequest("POST", "/noti/toggle/" + projectId + "/" + eventTypeValue) .withSession(UserApp.SESSION_USERID, String.valueOf(userId)); // when Result result = callAction(routes.ref.WatchProjectApp.toggle(projectId, eventTypeValue), request); // then assertThat(status(result)).isEqualTo(Http.Status.FORBIDDEN); } private void assertProjectIsInUserWatchingProjects(String ownerName, String projectName, Long userId) { assertThat(Project.findByOwnerAndProjectName(ownerName, projectName)). isIn(User.find.byId(userId).getWatchingProjects()); } private void assertProjectIsNotInUserWatchingProjects(String ownerName, String projectName, Long userId) { assertThat(Project.findByOwnerAndProjectName(ownerName, projectName)). isNotIn(User.find.byId(userId).getWatchingProjects()); } }

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

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