001: // Copyright 2007 The Apache Software Foundation
002: //
003: // Licensed under the Apache License, Version 2.0 (the "License");
004: // you may not use this file except in compliance with the License.
005: // You may obtain a copy of the License at
006: //
007: // http://www.apache.org/licenses/LICENSE-2.0
008: //
009: // Unless required by applicable law or agreed to in writing, software
010: // distributed under the License is distributed on an "AS IS" BASIS,
011: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012: // See the License for the specific language governing permissions and
013: // limitations under the License.
014:
015: package org.apache.tapestry.internal.services;
016:
017: import java.io.IOException;
018: import java.net.URL;
019:
020: import org.apache.tapestry.internal.test.InternalBaseTestCase;
021: import org.apache.tapestry.services.Context;
022: import org.apache.tapestry.services.Request;
023: import org.apache.tapestry.services.RequestFilter;
024: import org.apache.tapestry.services.RequestHandler;
025: import org.apache.tapestry.services.Response;
026: import org.testng.annotations.Test;
027:
028: public class StaticFilesFilterTest extends InternalBaseTestCase {
029: @Test
030: public void request_for_favicon() throws IOException {
031: Request request = newRequest("/favicon.ico");
032: Response response = mockResponse();
033: RequestHandler handler = mockRequestHandler();
034: Context context = mockContext();
035:
036: replay();
037:
038: RequestFilter filter = new StaticFilesFilter(context);
039:
040: assertFalse(filter.service(request, response, handler));
041:
042: verify();
043: }
044:
045: @Test
046: public void path_does_not_contain_a_period() throws Exception {
047: Request request = newRequest("/start");
048: Response response = mockResponse();
049: RequestHandler handler = mockRequestHandler();
050: Context context = mockContext();
051:
052: train_service(handler, request, response, true);
053:
054: replay();
055:
056: RequestFilter filter = new StaticFilesFilter(context);
057:
058: assertTrue(filter.service(request, response, handler));
059:
060: verify();
061: }
062:
063: @Test
064: public void existing_file() throws Exception {
065: URL url = new URL("file://.");
066: String path = "/cell.gif";
067:
068: Request request = newRequest(path);
069: Response response = mockResponse();
070: RequestHandler handler = mockRequestHandler();
071: Context context = mockContext();
072:
073: train_getResource(context, path, url);
074:
075: replay();
076:
077: RequestFilter filter = new StaticFilesFilter(context);
078:
079: assertFalse(filter.service(request, response, handler));
080:
081: verify();
082: }
083:
084: @Test
085: public void not_a_static_file_request() throws Exception {
086: String path = "/start.update";
087:
088: Request request = newRequest(path);
089: Response response = mockResponse();
090: RequestHandler handler = mockRequestHandler();
091: Context context = mockContext();
092:
093: train_getResource(context, path, null);
094: train_service(handler, request, response, true);
095:
096: replay();
097:
098: RequestFilter filter = new StaticFilesFilter(context);
099:
100: assertTrue(filter.service(request, response, handler));
101:
102: verify();
103: }
104:
105: protected final void train_getResource(Context context,
106: String path, URL url) {
107: expect(context.getResource(path)).andReturn(url);
108: }
109:
110: protected final Request newRequest(String path) {
111: Request request = mockRequest();
112:
113: train_getPath(request, path);
114:
115: return request;
116: }
117:
118: }
|