ASF Bugzilla – Attachment 19732 Details for
Bug 41880
Add content-type filtering to HTTP Proxy Server
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Suggested patch with unit test
patch_for_41880_2.patch (text/plain), 4.95 KB, created by
Alf Hogemark
on 2007-03-18 03:15:52 UTC
(
hide
)
Description:
Suggested patch with unit test
Filename:
MIME Type:
Creator:
Alf Hogemark
Created:
2007-03-18 03:15:52 UTC
Size:
4.95 KB
patch
obsolete
>Index: C:/Documents and Settings/alf/workspace/Jmeter/test/src/org/apache/jmeter/protocol/http/proxy/TestProxyControl.java >=================================================================== >--- C:/Documents and Settings/alf/workspace/Jmeter/test/src/org/apache/jmeter/protocol/http/proxy/TestProxyControl.java (revision 519566) >+++ C:/Documents and Settings/alf/workspace/Jmeter/test/src/org/apache/jmeter/protocol/http/proxy/TestProxyControl.java (working copy) >@@ -20,6 +20,7 @@ > > import junit.framework.TestCase; > >+import org.apache.jmeter.samplers.SampleResult; > import org.apache.jmeter.protocol.http.sampler.HTTPNullSampler; > import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase; > >@@ -56,4 +57,93 @@ > sampler.setDomain("jakarta.org"); > assertFalse("Should not match header.gif", control.filterUrl(sampler)); > } >+ >+ public void testContentTypeNoFilters() throws Exception { >+ SampleResult result = new SampleResult(); >+ // No filters >+ control.setContentTypeInclude(null); >+ control.setContentTypeExclude(null); >+ >+ result.setContentType(null); >+ assertTrue("Should allow if no content-type present", control.filterContentType(result)); >+ result.setContentType("text/html; charset=utf-8"); >+ assertTrue("Should allow text/html", control.filterContentType(result)); >+ result.setContentType("image/png"); >+ assertTrue("Should allow image/png", control.filterContentType(result)); >+ >+ // Empty filters >+ control.setContentTypeInclude(""); >+ control.setContentTypeExclude(""); >+ >+ result.setContentType(null); >+ assertTrue("Should allow if no content-type present", control.filterContentType(result)); >+ result.setContentType("text/html; charset=utf-8"); >+ assertTrue("Should allow text/html", control.filterContentType(result)); >+ result.setContentType("image/png"); >+ assertTrue("Should allow image/png", control.filterContentType(result)); >+ >+ // Non empty filters >+ control.setContentTypeInclude(" "); >+ control.setContentTypeExclude(" "); >+ >+ result.setContentType(null); >+ assertTrue("Should allow if no content-type present", control.filterContentType(result)); >+ result.setContentType("text/html; charset=utf-8"); >+ assertFalse("Should not allow text/html", control.filterContentType(result)); >+ result.setContentType("image/png"); >+ assertFalse("Should not allow image/png", control.filterContentType(result)); >+ } >+ >+ public void testContentTypeInclude() throws Exception { >+ SampleResult result = new SampleResult(); >+ control.setContentTypeInclude("text/html|text/ascii"); >+ >+ result.setContentType(null); >+ assertTrue("Should allow if no content-type present", control.filterContentType(result)); >+ result.setContentType("text/html; charset=utf-8"); >+ assertTrue("Should allow text/html", control.filterContentType(result)); >+ result.setContentType("text/css"); >+ assertFalse("Should not allow text/css", control.filterContentType(result)); >+ } >+ >+ public void testContentTypeExclude() throws Exception { >+ SampleResult result = new SampleResult(); >+ control.setContentTypeExclude("text/css"); >+ >+ result.setContentType(null); >+ assertTrue("Should allow if no content-type present", control.filterContentType(result)); >+ result.setContentType("text/html; charset=utf-8"); >+ assertTrue("Should allow text/html", control.filterContentType(result)); >+ result.setContentType("text/css"); >+ assertFalse("Should not allow text/css", control.filterContentType(result)); >+ } >+ >+ public void testContentTypeIncludeAndExclude() throws Exception { >+ SampleResult result = new SampleResult(); >+ // Simple inclusion and exclusion filter >+ control.setContentTypeInclude("text/html|text/ascii"); >+ control.setContentTypeExclude("text/css"); >+ >+ result.setContentType(null); >+ assertTrue("Should allow if no content-type present", control.filterContentType(result)); >+ result.setContentType("text/html; charset=utf-8"); >+ assertTrue("Should allow text/html", control.filterContentType(result)); >+ result.setContentType("text/css"); >+ assertFalse("Should not allow text/css", control.filterContentType(result)); >+ result.setContentType("image/png"); >+ assertFalse("Should not allow image/png", control.filterContentType(result)); >+ >+ // Allow all but images >+ control.setContentTypeInclude(null); >+ control.setContentTypeExclude("image/.*"); >+ >+ result.setContentType(null); >+ assertTrue("Should allow if no content-type present", control.filterContentType(result)); >+ result.setContentType("text/html; charset=utf-8"); >+ assertTrue("Should allow text/html", control.filterContentType(result)); >+ result.setContentType("text/css"); >+ assertTrue("Should allow text/css", control.filterContentType(result)); >+ result.setContentType("image/png"); >+ assertFalse("Should not allow image/png", control.filterContentType(result)); >+ } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 41880
:
19731
| 19732