Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
9dec670b
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9dec670b
编写于
1月 20, 2009
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
consistent copies of mocks
上级
8dbbb533
变更
18
展开全部
隐藏空白更改
内联
并排
Showing
18 changed file
with
3476 addition
and
3210 deletion
+3476
-3210
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/DelegatingServletInputStream.java
...pringframework/mock/web/DelegatingServletInputStream.java
+66
-67
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/DelegatingServletOutputStream.java
...ringframework/mock/web/DelegatingServletOutputStream.java
+71
-72
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/HeaderValueHolder.java
.../java/org/springframework/mock/web/HeaderValueHolder.java
+92
-85
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockBodyContent.java
...st/java/org/springframework/mock/web/MockBodyContent.java
+197
-198
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockExpressionEvaluator.java
...org/springframework/mock/web/MockExpressionEvaluator.java
+92
-92
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockFilterChain.java
...st/java/org/springframework/mock/web/MockFilterChain.java
+70
-0
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockFilterConfig.java
...t/java/org/springframework/mock/web/MockFilterConfig.java
+3
-5
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockHttpServletRequest.java
.../org/springframework/mock/web/MockHttpServletRequest.java
+847
-849
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockHttpServletResponse.java
...org/springframework/mock/web/MockHttpServletResponse.java
+514
-517
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockHttpSession.java
...st/java/org/springframework/mock/web/MockHttpSession.java
+246
-245
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockJspWriter.java
...test/java/org/springframework/mock/web/MockJspWriter.java
+191
-192
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockMultipartFile.java
.../java/org/springframework/mock/web/MockMultipartFile.java
+132
-0
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java
...ngframework/mock/web/MockMultipartHttpServletRequest.java
+68
-0
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockPageContext.java
...st/java/org/springframework/mock/web/MockPageContext.java
+337
-337
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockRequestDispatcher.java
...a/org/springframework/mock/web/MockRequestDispatcher.java
+91
-91
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockServletConfig.java
.../java/org/springframework/mock/web/MockServletConfig.java
+103
-102
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockServletContext.java
...java/org/springframework/mock/web/MockServletContext.java
+355
-356
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/PassThroughFilterChain.java
.../org/springframework/mock/web/PassThroughFilterChain.java
+1
-2
未找到文件。
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/DelegatingServletInputStream.java
浏览文件 @
9dec670b
/*
/*
* Copyright 2002-2007 the original author or authors.
* Copyright 2002-2009 the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
org.springframework.mock.web
;
package
org.springframework.mock.web
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
javax.servlet.ServletInputStream
;
import
javax.servlet.ServletInputStream
;
import
org.springframework.util.Assert
;
import
org.springframework.util.Assert
;
/**
/**
* Delegating implementation of {@link javax.servlet.ServletInputStream}.
* Delegating implementation of {@link javax.servlet.ServletInputStream}.
*
*
* <p>Used by {@link MockHttpServletRequest}; typically not directly
* <p>Used by {@link org.springframework.mock.web.MockHttpServletRequest}; typically not directly
* used for testing application controllers.
* used for testing application controllers.
*
*
* @author Juergen Hoeller
* @author Juergen Hoeller
* @since 1.0.2
* @since 1.0.2
* @see MockHttpServletRequest
* @see org.springframework.mock.web.MockHttpServletRequest
*/
*/
public
class
DelegatingServletInputStream
extends
ServletInputStream
{
public
class
DelegatingServletInputStream
extends
ServletInputStream
{
private
final
InputStream
sourceStream
;
private
final
InputStream
sourceStream
;
/**
/**
* Create a DelegatingServletInputStream for the given source stream.
* Create a DelegatingServletInputStream for the given source stream.
* @param sourceStream the source stream (never <code>null</code>)
* @param sourceStream the source stream (never <code>null</code>)
*/
*/
public
DelegatingServletInputStream
(
InputStream
sourceStream
)
{
public
DelegatingServletInputStream
(
InputStream
sourceStream
)
{
Assert
.
notNull
(
sourceStream
,
"Source InputStream must not be null"
);
Assert
.
notNull
(
sourceStream
,
"Source InputStream must not be null"
);
this
.
sourceStream
=
sourceStream
;
this
.
sourceStream
=
sourceStream
;
}
}
/**
/**
* Return the underlying source stream (never <code>null</code>).
* Return the underlying source stream (never <code>null</code>).
*/
*/
public
final
InputStream
getSourceStream
()
{
public
final
InputStream
getSourceStream
()
{
return
this
.
sourceStream
;
return
this
.
sourceStream
;
}
}
public
int
read
()
throws
IOException
{
public
int
read
()
throws
IOException
{
return
this
.
sourceStream
.
read
();
return
this
.
sourceStream
.
read
();
}
}
public
void
close
()
throws
IOException
{
public
void
close
()
throws
IOException
{
super
.
close
();
super
.
close
();
this
.
sourceStream
.
close
();
this
.
sourceStream
.
close
();
}
}
}
}
\ No newline at end of file
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/DelegatingServletOutputStream.java
浏览文件 @
9dec670b
/*
/*
* Copyright 2002-2007 the original author or authors.
* Copyright 2002-2009 the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
org.springframework.mock.web
;
package
org.springframework.mock.web
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.io.OutputStream
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.ServletOutputStream
;
import
org.springframework.util.Assert
;
import
org.springframework.util.Assert
;
/**
/**
* Delegating implementation of {@link javax.servlet.ServletOutputStream}.
* Delegating implementation of {@link javax.servlet.ServletOutputStream}.
*
*
* <p>Used by {@link MockHttpServletResponse}; typically not directly
* <p>Used by {@link org.springframework.mock.web.MockHttpServletResponse}; typically not directly
* used for testing application controllers.
* used for testing application controllers.
*
*
* @author Juergen Hoeller
* @author Juergen Hoeller
* @since 1.0.2
* @since 1.0.2
* @see MockHttpServletResponse
* @see org.springframework.mock.web.MockHttpServletResponse
*/
*/
public
class
DelegatingServletOutputStream
extends
ServletOutputStream
{
public
class
DelegatingServletOutputStream
extends
ServletOutputStream
{
private
final
OutputStream
targetStream
;
private
final
OutputStream
targetStream
;
/**
/**
* Create a DelegatingServletOutputStream for the given target stream.
* Create a DelegatingServletOutputStream for the given target stream.
* @param targetStream the target stream (never <code>null</code>)
* @param targetStream the target stream (never <code>null</code>)
*/
*/
public
DelegatingServletOutputStream
(
OutputStream
targetStream
)
{
public
DelegatingServletOutputStream
(
OutputStream
targetStream
)
{
Assert
.
notNull
(
targetStream
,
"Target OutputStream must not be null"
);
Assert
.
notNull
(
targetStream
,
"Target OutputStream must not be null"
);
this
.
targetStream
=
targetStream
;
this
.
targetStream
=
targetStream
;
}
}
/**
/**
* Return the underlying target stream (never <code>null</code>).
* Return the underlying target stream (never <code>null</code>).
*/
*/
public
final
OutputStream
getTargetStream
()
{
public
final
OutputStream
getTargetStream
()
{
return
this
.
targetStream
;
return
this
.
targetStream
;
}
}
public
void
write
(
int
b
)
throws
IOException
{
public
void
write
(
int
b
)
throws
IOException
{
this
.
targetStream
.
write
(
b
);
this
.
targetStream
.
write
(
b
);
}
}
public
void
flush
()
throws
IOException
{
public
void
flush
()
throws
IOException
{
super
.
flush
();
super
.
flush
();
this
.
targetStream
.
flush
();
this
.
targetStream
.
flush
();
}
}
public
void
close
()
throws
IOException
{
public
void
close
()
throws
IOException
{
super
.
close
();
super
.
close
();
this
.
targetStream
.
close
();
this
.
targetStream
.
close
();
}
}
}
}
\ No newline at end of file
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/HeaderValueHolder.java
浏览文件 @
9dec670b
/*
/*
* Copyright 2002-2007 the original author or authors.
* Copyright 2002-2009 the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
org.springframework.mock.web
;
package
org.springframework.mock.web
;
import
java.util.Collection
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collection
;
import
java.util.Iterator
;
import
java.util.Collections
;
import
java.util.LinkedList
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
org.springframework.util.Assert
;
import
org.springframework.util.Assert
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
/**
/**
* Internal helper class that serves as value holder for request headers.
* Internal helper class that serves as value holder for request headers.
*
*
* @author Juergen Hoeller
* @author Juergen Hoeller
* @author Rick Evans
* @author Rick Evans
* @since 2.0.1
* @since 2.0.1
*/
*/
class
HeaderValueHolder
{
class
HeaderValueHolder
{
private
final
List
values
=
new
LinkedList
();
private
final
List
<
Object
>
values
=
new
LinkedList
<
Object
>();
public
void
setValue
(
Object
value
)
{
public
void
setValue
(
Object
value
)
{
this
.
values
.
clear
();
this
.
values
.
clear
();
this
.
values
.
add
(
value
);
this
.
values
.
add
(
value
);
}
}
public
void
addValue
(
Object
value
)
{
public
void
addValue
(
Object
value
)
{
this
.
values
.
add
(
value
);
this
.
values
.
add
(
value
);
}
}
public
void
addValues
(
Collection
values
)
{
public
void
addValues
(
Collection
<?>
values
)
{
this
.
values
.
addAll
(
values
);
this
.
values
.
addAll
(
values
);
}
}
public
void
addValueArray
(
Object
values
)
{
public
void
addValueArray
(
Object
values
)
{
CollectionUtils
.
mergeArrayIntoCollection
(
values
,
this
.
values
);
CollectionUtils
.
mergeArrayIntoCollection
(
values
,
this
.
values
);
}
}
public
List
getValues
()
{
public
List
<
Object
>
getValues
()
{
return
Collections
.
unmodifiableList
(
this
.
values
);
return
Collections
.
unmodifiableList
(
this
.
values
);
}
}
public
Object
getValue
()
{
public
List
<
String
>
getStringValues
()
{
return
(!
this
.
values
.
isEmpty
()
?
this
.
values
.
get
(
0
)
:
null
);
List
<
String
>
stringList
=
new
ArrayList
<
String
>(
this
.
values
.
size
());
}
for
(
Object
value
:
this
.
values
)
{
stringList
.
add
(
value
.
toString
());
}
/**
return
Collections
.
unmodifiableList
(
stringList
);
* Find a HeaderValueHolder by name, ignoring casing.
}
* @param headers the Map of header names to HeaderValueHolders
* @param name the name of the desired header
public
Object
getValue
()
{
* @return the corresponding HeaderValueHolder,
return
(!
this
.
values
.
isEmpty
()
?
this
.
values
.
get
(
0
)
:
null
);
* or <code>null</code> if none found
}
*/
public
static
HeaderValueHolder
getByName
(
Map
headers
,
String
name
)
{
Assert
.
notNull
(
name
,
"Header name must not be null"
);
/**
for
(
Iterator
it
=
headers
.
keySet
().
iterator
();
it
.
hasNext
();)
{
* Find a HeaderValueHolder by name, ignoring casing.
String
headerName
=
(
String
)
it
.
next
();
* @param headers the Map of header names to HeaderValueHolders
if
(
headerName
.
equalsIgnoreCase
(
name
))
{
* @param name the name of the desired header
return
(
HeaderValueHolder
)
headers
.
get
(
headerName
);
* @return the corresponding HeaderValueHolder,
}
* or <code>null</code> if none found
}
*/
return
null
;
public
static
HeaderValueHolder
getByName
(
Map
<
String
,
HeaderValueHolder
>
headers
,
String
name
)
{
}
Assert
.
notNull
(
name
,
"Header name must not be null"
);
for
(
String
headerName
:
headers
.
keySet
())
{
}
if
(
headerName
.
equalsIgnoreCase
(
name
))
{
\ No newline at end of file
return
headers
.
get
(
headerName
);
}
}
return
null
;
}
}
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockBodyContent.java
浏览文件 @
9dec670b
/*
/*
* Copyright 2002-2007 the original author or authors.
* Copyright 2002-2009 the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
org.springframework.mock.web
;
package
org.springframework.mock.web
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.Reader
;
import
java.io.Reader
;
import
java.io.StringReader
;
import
java.io.StringReader
;
import
java.io.Writer
;
import
java.io.Writer
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.jsp.JspWriter
;
import
javax.servlet.jsp.JspWriter
;
import
javax.servlet.jsp.tagext.BodyContent
;
import
javax.servlet.jsp.tagext.BodyContent
;
/**
/**
* Mock implementation of the {@link javax.servlet.jsp.tagext.BodyContent} class.
* Mock implementation of the {@link javax.servlet.jsp.tagext.BodyContent} class.
*
*
* <p>Used for testing the web framework; only necessary for testing
* <p>Used for testing the web framework; only necessary for testing
* applications when testing custom JSP tags.
* applications when testing custom JSP tags.
*
*
* @author Juergen Hoeller
* @author Juergen Hoeller
* @since 2.5
* @since 2.5
*/
*/
public
class
MockBodyContent
extends
BodyContent
{
public
class
MockBodyContent
extends
BodyContent
{
private
final
String
content
;
private
final
String
content
;
/**
/**
* Create a MockBodyContent for the given response.
* Create a MockBodyContent for the given response.
* @param content the body content to expose
* @param content the body content to expose
* @param response the servlet response to wrap
* @param response the servlet response to wrap
*/
*/
public
MockBodyContent
(
String
content
,
HttpServletResponse
response
)
{
public
MockBodyContent
(
String
content
,
HttpServletResponse
response
)
{
this
(
content
,
response
,
null
);
this
(
content
,
response
,
null
);
}
}
/**
/**
* Create a MockBodyContent for the given response.
* Create a MockBodyContent for the given response.
* @param content the body content to expose
* @param content the body content to expose
* @param targetWriter the target Writer to wrap
* @param targetWriter the target Writer to wrap
*/
*/
public
MockBodyContent
(
String
content
,
Writer
targetWriter
)
{
public
MockBodyContent
(
String
content
,
Writer
targetWriter
)
{
this
(
content
,
null
,
targetWriter
);
this
(
content
,
null
,
targetWriter
);
}
}
/**
/**
* Create a MockBodyContent for the given response.
* Create a MockBodyContent for the given response.
* @param content the body content to expose
* @param content the body content to expose
* @param response the servlet response to wrap
* @param response the servlet response to wrap
* @param targetWriter the target Writer to wrap
* @param targetWriter the target Writer to wrap
*/
*/
public
MockBodyContent
(
String
content
,
HttpServletResponse
response
,
Writer
targetWriter
)
{
public
MockBodyContent
(
String
content
,
HttpServletResponse
response
,
Writer
targetWriter
)
{
super
(
adaptJspWriter
(
targetWriter
,
response
));
super
(
adaptJspWriter
(
targetWriter
,
response
));
this
.
content
=
content
;
this
.
content
=
content
;
}
}
private
static
JspWriter
adaptJspWriter
(
Writer
targetWriter
,
HttpServletResponse
response
)
{
private
static
JspWriter
adaptJspWriter
(
Writer
targetWriter
,
HttpServletResponse
response
)
{
if
(
targetWriter
instanceof
JspWriter
)
{
if
(
targetWriter
instanceof
JspWriter
)
{
return
(
JspWriter
)
targetWriter
;
return
(
JspWriter
)
targetWriter
;
}
}
else
{
else
{
return
new
MockJspWriter
(
response
,
targetWriter
);
return
new
MockJspWriter
(
response
,
targetWriter
);
}
}
}
}
public
Reader
getReader
()
{
public
Reader
getReader
()
{
return
new
StringReader
(
this
.
content
);
return
new
StringReader
(
this
.
content
);
}
}
public
String
getString
()
{
public
String
getString
()
{
return
this
.
content
;
return
this
.
content
;
}
}
public
void
writeOut
(
Writer
writer
)
throws
IOException
{
public
void
writeOut
(
Writer
writer
)
throws
IOException
{
writer
.
write
(
this
.
content
);
writer
.
write
(
this
.
content
);
}
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
// Delegating implementations of JspWriter's abstract methods
// Delegating implementations of JspWriter's abstract methods
//---------------------------------------------------------------------
//---------------------------------------------------------------------
public
void
clear
()
throws
IOException
{
public
void
clear
()
throws
IOException
{
getEnclosingWriter
().
clear
();
getEnclosingWriter
().
clear
();
}
}
public
void
clearBuffer
()
throws
IOException
{
public
void
clearBuffer
()
throws
IOException
{
getEnclosingWriter
().
clearBuffer
();
getEnclosingWriter
().
clearBuffer
();
}
}
public
void
close
()
throws
IOException
{
public
void
close
()
throws
IOException
{
getEnclosingWriter
().
close
();
getEnclosingWriter
().
close
();
}
}
public
int
getRemaining
()
{
public
int
getRemaining
()
{
return
getEnclosingWriter
().
getRemaining
();
return
getEnclosingWriter
().
getRemaining
();
}
}
public
void
newLine
()
throws
IOException
{
public
void
newLine
()
throws
IOException
{
getEnclosingWriter
().
println
();
getEnclosingWriter
().
println
();
}
}
public
void
write
(
char
value
[],
int
offset
,
int
length
)
throws
IOException
{
public
void
write
(
char
value
[],
int
offset
,
int
length
)
throws
IOException
{
getEnclosingWriter
().
write
(
value
,
offset
,
length
);
getEnclosingWriter
().
write
(
value
,
offset
,
length
);
}
}
public
void
print
(
boolean
value
)
throws
IOException
{
public
void
print
(
boolean
value
)
throws
IOException
{
getEnclosingWriter
().
print
(
value
);
getEnclosingWriter
().
print
(
value
);
}
}
public
void
print
(
char
value
)
throws
IOException
{
public
void
print
(
char
value
)
throws
IOException
{
getEnclosingWriter
().
print
(
value
);
getEnclosingWriter
().
print
(
value
);
}
}
public
void
print
(
char
[]
value
)
throws
IOException
{
public
void
print
(
char
[]
value
)
throws
IOException
{
getEnclosingWriter
().
print
(
value
);
getEnclosingWriter
().
print
(
value
);
}
}
public
void
print
(
double
value
)
throws
IOException
{
public
void
print
(
double
value
)
throws
IOException
{
getEnclosingWriter
().
print
(
value
);
getEnclosingWriter
().
print
(
value
);
}
}
public
void
print
(
float
value
)
throws
IOException
{
public
void
print
(
float
value
)
throws
IOException
{
getEnclosingWriter
().
print
(
value
);
getEnclosingWriter
().
print
(
value
);
}
}
public
void
print
(
int
value
)
throws
IOException
{
public
void
print
(
int
value
)
throws
IOException
{
getEnclosingWriter
().
print
(
value
);
getEnclosingWriter
().
print
(
value
);
}
}
public
void
print
(
long
value
)
throws
IOException
{
public
void
print
(
long
value
)
throws
IOException
{
getEnclosingWriter
().
print
(
value
);
getEnclosingWriter
().
print
(
value
);
}
}
public
void
print
(
Object
value
)
throws
IOException
{
public
void
print
(
Object
value
)
throws
IOException
{
getEnclosingWriter
().
print
(
value
);
getEnclosingWriter
().
print
(
value
);
}
}
public
void
print
(
String
value
)
throws
IOException
{
public
void
print
(
String
value
)
throws
IOException
{
getEnclosingWriter
().
print
(
value
);
getEnclosingWriter
().
print
(
value
);
}
}
public
void
println
()
throws
IOException
{
public
void
println
()
throws
IOException
{
getEnclosingWriter
().
println
();
getEnclosingWriter
().
println
();
}
}
public
void
println
(
boolean
value
)
throws
IOException
{
public
void
println
(
boolean
value
)
throws
IOException
{
getEnclosingWriter
().
println
(
value
);
getEnclosingWriter
().
println
(
value
);
}
}
public
void
println
(
char
value
)
throws
IOException
{
public
void
println
(
char
value
)
throws
IOException
{
getEnclosingWriter
().
println
(
value
);
getEnclosingWriter
().
println
(
value
);
}
}
public
void
println
(
char
[]
value
)
throws
IOException
{
public
void
println
(
char
[]
value
)
throws
IOException
{
getEnclosingWriter
().
println
(
value
);
getEnclosingWriter
().
println
(
value
);
}
}
public
void
println
(
double
value
)
throws
IOException
{
public
void
println
(
double
value
)
throws
IOException
{
getEnclosingWriter
().
println
(
value
);
getEnclosingWriter
().
println
(
value
);
}
}
public
void
println
(
float
value
)
throws
IOException
{
public
void
println
(
float
value
)
throws
IOException
{
getEnclosingWriter
().
println
(
value
);
getEnclosingWriter
().
println
(
value
);
}
}
public
void
println
(
int
value
)
throws
IOException
{
public
void
println
(
int
value
)
throws
IOException
{
getEnclosingWriter
().
println
(
value
);
getEnclosingWriter
().
println
(
value
);
}
}
public
void
println
(
long
value
)
throws
IOException
{
public
void
println
(
long
value
)
throws
IOException
{
getEnclosingWriter
().
println
(
value
);
getEnclosingWriter
().
println
(
value
);
}
}
public
void
println
(
Object
value
)
throws
IOException
{
public
void
println
(
Object
value
)
throws
IOException
{
getEnclosingWriter
().
println
(
value
);
getEnclosingWriter
().
println
(
value
);
}
}
public
void
println
(
String
value
)
throws
IOException
{
public
void
println
(
String
value
)
throws
IOException
{
getEnclosingWriter
().
println
(
value
);
getEnclosingWriter
().
println
(
value
);
}
}
}
}
\ No newline at end of file
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockExpressionEvaluator.java
浏览文件 @
9dec670b
/*
/*
* Copyright 2002-2006 the original author or authors.
* Copyright 2002-2009 the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
org.springframework.mock.web
;
package
org.springframework.mock.web
;
import
javax.servlet.jsp.JspException
;
import
javax.servlet.jsp.JspException
;
import
javax.servlet.jsp.PageContext
;
import
javax.servlet.jsp.PageContext
;
import
javax.servlet.jsp.el.ELException
;
import
javax.servlet.jsp.el.ELException
;
import
javax.servlet.jsp.el.Expression
;
import
javax.servlet.jsp.el.Expression
;
import
javax.servlet.jsp.el.ExpressionEvaluator
;
import
javax.servlet.jsp.el.ExpressionEvaluator
;
import
javax.servlet.jsp.el.FunctionMapper
;
import
javax.servlet.jsp.el.FunctionMapper
;
import
javax.servlet.jsp.el.VariableResolver
;
import
javax.servlet.jsp.el.VariableResolver
;
import
org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager
;
import
org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager
;
/**
/**
* Mock implementation of the JSP 2.0 {@link javax.servlet.jsp.el.ExpressionEvaluator}
* Mock implementation of the JSP 2.0 {@link javax.servlet.jsp.el.ExpressionEvaluator}
* interface, delegating to the Jakarta JSTL ExpressionEvaluatorManager.
* interface, delegating to the Jakarta JSTL ExpressionEvaluatorManager.
*
*
* <p>Used for testing the web framework; only necessary for testing
* <p>Used for testing the web framework; only necessary for testing
* applications when testing custom JSP tags.
* applications when testing custom JSP tags.
*
*
* <p>Note that the Jakarta JSTL implementation (jstl.jar, standard.jar)
* <p>Note that the Jakarta JSTL implementation (jstl.jar, standard.jar)
* has to be available on the class path to use this expression evaluator.
* has to be available on the class path to use this expression evaluator.
*
*
* @author Juergen Hoeller
* @author Juergen Hoeller
* @since 1.1.5
* @since 1.1.5
* @see org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager
* @see org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager
*/
*/
public
class
MockExpressionEvaluator
extends
ExpressionEvaluator
{
public
class
MockExpressionEvaluator
extends
ExpressionEvaluator
{
private
final
PageContext
pageContext
;
private
final
PageContext
pageContext
;
/**
/**
* Create a new MockExpressionEvaluator for the given PageContext.
* Create a new MockExpressionEvaluator for the given PageContext.
* @param pageContext the JSP PageContext to run in
* @param pageContext the JSP PageContext to run in
*/
*/
public
MockExpressionEvaluator
(
PageContext
pageContext
)
{
public
MockExpressionEvaluator
(
PageContext
pageContext
)
{
this
.
pageContext
=
pageContext
;
this
.
pageContext
=
pageContext
;
}
}
public
Expression
parseExpression
(
public
Expression
parseExpression
(
final
String
expression
,
final
Class
expectedType
,
final
FunctionMapper
functionMapper
)
final
String
expression
,
final
Class
expectedType
,
final
FunctionMapper
functionMapper
)
throws
ELException
{
throws
ELException
{
return
new
Expression
()
{
return
new
Expression
()
{
public
Object
evaluate
(
VariableResolver
variableResolver
)
throws
ELException
{
public
Object
evaluate
(
VariableResolver
variableResolver
)
throws
ELException
{
return
doEvaluate
(
expression
,
expectedType
,
functionMapper
);
return
doEvaluate
(
expression
,
expectedType
,
functionMapper
);
}
}
};
};
}
}
public
Object
evaluate
(
public
Object
evaluate
(
String
expression
,
Class
expectedType
,
VariableResolver
variableResolver
,
FunctionMapper
functionMapper
)
String
expression
,
Class
expectedType
,
VariableResolver
variableResolver
,
FunctionMapper
functionMapper
)
throws
ELException
{
throws
ELException
{
if
(
variableResolver
!=
null
)
{
if
(
variableResolver
!=
null
)
{
throw
new
IllegalArgumentException
(
"Custom VariableResolver not supported"
);
throw
new
IllegalArgumentException
(
"Custom VariableResolver not supported"
);
}
}
return
doEvaluate
(
expression
,
expectedType
,
functionMapper
);
return
doEvaluate
(
expression
,
expectedType
,
functionMapper
);
}
}
protected
Object
doEvaluate
(
protected
Object
doEvaluate
(
String
expression
,
Class
expectedType
,
FunctionMapper
functionMapper
)
String
expression
,
Class
expectedType
,
FunctionMapper
functionMapper
)
throws
ELException
{
throws
ELException
{
if
(
functionMapper
!=
null
)
{
if
(
functionMapper
!=
null
)
{
throw
new
IllegalArgumentException
(
"Custom FunctionMapper not supported"
);
throw
new
IllegalArgumentException
(
"Custom FunctionMapper not supported"
);
}
}
try
{
try
{
return
ExpressionEvaluatorManager
.
evaluate
(
"JSP EL expression"
,
expression
,
expectedType
,
this
.
pageContext
);
return
ExpressionEvaluatorManager
.
evaluate
(
"JSP EL expression"
,
expression
,
expectedType
,
this
.
pageContext
);
}
}
catch
(
JspException
ex
)
{
catch
(
JspException
ex
)
{
throw
new
ELException
(
"Parsing of JSP EL expression \""
+
expression
+
"\" failed"
,
ex
);
throw
new
ELException
(
"Parsing of JSP EL expression \""
+
expression
+
"\" failed"
,
ex
);
}
}
}
}
}
}
\ No newline at end of file
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockFilterChain.java
0 → 100644
浏览文件 @
9dec670b
/*
* Copyright 2002-2009 the original author or authors.
*
* 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
org.springframework.mock.web
;
import
javax.servlet.FilterChain
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
import
org.springframework.util.Assert
;
/**
* Mock implementation of the {@link javax.servlet.FilterConfig} interface.
*
* <p>Used for testing the web framework; also usefol for testing
* custom {@link javax.servlet.Filter} implementations.
*
* @author Juergen Hoeller
* @since 2.0.3
* @see MockFilterConfig
* @see PassThroughFilterChain
*/
public
class
MockFilterChain
implements
FilterChain
{
private
ServletRequest
request
;
private
ServletResponse
response
;
/**
* Records the request and response.
*/
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
)
{
Assert
.
notNull
(
request
,
"Request must not be null"
);
Assert
.
notNull
(
response
,
"Response must not be null"
);
if
(
this
.
request
!=
null
)
{
throw
new
IllegalStateException
(
"This FilterChain has already been called!"
);
}
this
.
request
=
request
;
this
.
response
=
response
;
}
/**
* Return the request that {@link #doFilter} has been called with.
*/
public
ServletRequest
getRequest
()
{
return
this
.
request
;
}
/**
* Return the response that {@link #doFilter} has been called with.
*/
public
ServletResponse
getResponse
()
{
return
this
.
response
;
}
}
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockFilterConfig.java
浏览文件 @
9dec670b
/*
/*
* Copyright 2002-200
8
the original author or authors.
* Copyright 2002-200
9
the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
...
@@ -16,12 +16,10 @@
...
@@ -16,12 +16,10 @@
package
org.springframework.mock.web
;
package
org.springframework.mock.web
;
import
java.util.Enumeration
;
import
java.util.Properties
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.
Map
;
import
java.util.
Enumeration
;
import
java.util.LinkedHashMap
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
javax.servlet.FilterConfig
;
import
javax.servlet.FilterConfig
;
import
javax.servlet.ServletContext
;
import
javax.servlet.ServletContext
;
...
...
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockHttpServletRequest.java
浏览文件 @
9dec670b
此差异已折叠。
点击以展开。
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockHttpServletResponse.java
浏览文件 @
9dec670b
此差异已折叠。
点击以展开。
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockHttpSession.java
浏览文件 @
9dec670b
/*
/*
* Copyright 2002-2007 the original author or authors.
* Copyright 2002-2009 the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
org.springframework.mock.web
;
package
org.springframework.mock.web
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Enumeration
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.Enumeration
;
import
java.util.Hashtable
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.Iterator
;
import
java.util.Map
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
javax.servlet.ServletContext
;
import
javax.servlet.ServletContext
;
import
javax.servlet.http.HttpSession
;
import
javax.servlet.http.HttpSession
;
import
javax.servlet.http.HttpSessionBindingEvent
;
import
javax.servlet.http.HttpSessionBindingEvent
;
import
javax.servlet.http.HttpSessionBindingListener
;
import
javax.servlet.http.HttpSessionBindingListener
;
import
javax.servlet.http.HttpSessionContext
;
import
javax.servlet.http.HttpSessionContext
;
import
org.springframework.util.Assert
;
import
org.springframework.util.Assert
;
/**
/**
* Mock implementation of the {@link javax.servlet.http.HttpSession} interface.
* Mock implementation of the {@link javax.servlet.http.HttpSession} interface.
* Supports the Servlet 2.4 API level.
* Supports the Servlet 2.4 API level.
*
*
* <p>Used for testing the web framework; also useful for testing
* <p>Used for testing the web framework; also useful for testing
* application controllers.
* application controllers.
*
*
* @author Juergen Hoeller
* @author Juergen Hoeller
* @author Rod Johnson
* @author Rod Johnson
* @author Mark Fisher
* @author Mark Fisher
* @since 1.0.2
* @since 1.0.2
*/
*/
public
class
MockHttpSession
implements
HttpSession
{
public
class
MockHttpSession
implements
HttpSession
{
public
static
final
String
SESSION_COOKIE_NAME
=
"JSESSION"
;
public
static
final
String
SESSION_COOKIE_NAME
=
"JSESSION"
;
private
static
int
nextId
=
1
;
private
static
int
nextId
=
1
;
private
final
String
id
;
private
final
String
id
;
private
final
long
creationTime
=
System
.
currentTimeMillis
();
private
final
long
creationTime
=
System
.
currentTimeMillis
();
private
int
maxInactiveInterval
;
private
int
maxInactiveInterval
;
private
long
lastAccessedTime
=
System
.
currentTimeMillis
();
private
long
lastAccessedTime
=
System
.
currentTimeMillis
();
private
final
ServletContext
servletContext
;
private
final
ServletContext
servletContext
;
private
final
Hashtable
attributes
=
new
Hashtable
();
private
final
Map
<
String
,
Object
>
attributes
=
new
LinkedHashMap
<
String
,
Object
>();
private
boolean
invalid
=
false
;
private
boolean
invalid
=
false
;
private
boolean
isNew
=
true
;
private
boolean
isNew
=
true
;
/**
/**
* Create a new MockHttpSession with a default {@link org.springframework.mock.web.MockServletContext}.
* Create a new MockHttpSession with a default {@link MockServletContext}.
* @see org.springframework.mock.web.MockServletContext
* @see MockServletContext
*/
*/
public
MockHttpSession
()
{
public
MockHttpSession
()
{
this
(
null
);
this
(
null
);
}
}
/**
/**
* Create a new MockHttpSession.
* Create a new MockHttpSession.
* @param servletContext the ServletContext that the session runs in
* @param servletContext the ServletContext that the session runs in
*/
*/
public
MockHttpSession
(
ServletContext
servletContext
)
{
public
MockHttpSession
(
ServletContext
servletContext
)
{
this
(
servletContext
,
null
);
this
(
servletContext
,
null
);
}
}
/**
/**
* Create a new MockHttpSession.
* Create a new MockHttpSession.
* @param servletContext the ServletContext that the session runs in
* @param servletContext the ServletContext that the session runs in
* @param id a unique identifier for this session
* @param id a unique identifier for this session
*/
*/
public
MockHttpSession
(
ServletContext
servletContext
,
String
id
)
{
public
MockHttpSession
(
ServletContext
servletContext
,
String
id
)
{
this
.
servletContext
=
(
servletContext
!=
null
?
servletContext
:
new
MockServletContext
());
this
.
servletContext
=
(
servletContext
!=
null
?
servletContext
:
new
MockServletContext
());
this
.
id
=
(
id
!=
null
?
id
:
Integer
.
toString
(
nextId
++));
this
.
id
=
(
id
!=
null
?
id
:
Integer
.
toString
(
nextId
++));
}
}
public
long
getCreationTime
()
{
public
long
getCreationTime
()
{
return
this
.
creationTime
;
return
this
.
creationTime
;
}
}
public
String
getId
()
{
public
String
getId
()
{
return
this
.
id
;
return
this
.
id
;
}
}
public
void
access
()
{
public
void
access
()
{
this
.
lastAccessedTime
=
System
.
currentTimeMillis
();
this
.
lastAccessedTime
=
System
.
currentTimeMillis
();
this
.
isNew
=
false
;
this
.
isNew
=
false
;
}
}
public
long
getLastAccessedTime
()
{
public
long
getLastAccessedTime
()
{
return
this
.
lastAccessedTime
;
return
this
.
lastAccessedTime
;
}
}
public
ServletContext
getServletContext
()
{
public
ServletContext
getServletContext
()
{
return
this
.
servletContext
;
return
this
.
servletContext
;
}
}
public
void
setMaxInactiveInterval
(
int
interval
)
{
public
void
setMaxInactiveInterval
(
int
interval
)
{
this
.
maxInactiveInterval
=
interval
;
this
.
maxInactiveInterval
=
interval
;
}
}
public
int
getMaxInactiveInterval
()
{
public
int
getMaxInactiveInterval
()
{
return
this
.
maxInactiveInterval
;
return
this
.
maxInactiveInterval
;
}
}
public
HttpSessionContext
getSessionContext
()
{
public
HttpSessionContext
getSessionContext
()
{
throw
new
UnsupportedOperationException
(
"getSessionContext"
);
throw
new
UnsupportedOperationException
(
"getSessionContext"
);
}
}
public
Object
getAttribute
(
String
name
)
{
public
Object
getAttribute
(
String
name
)
{
Assert
.
notNull
(
name
,
"Attribute name must not be null"
);
Assert
.
notNull
(
name
,
"Attribute name must not be null"
);
return
this
.
attributes
.
get
(
name
);
return
this
.
attributes
.
get
(
name
);
}
}
public
Object
getValue
(
String
name
)
{
public
Object
getValue
(
String
name
)
{
return
getAttribute
(
name
);
return
getAttribute
(
name
);
}
}
public
Enumeration
getAttributeNames
()
{
public
Enumeration
<
String
>
getAttributeNames
()
{
return
this
.
attributes
.
keys
();
return
Collections
.
enumeration
(
this
.
attributes
.
keySet
());
}
}
public
String
[]
getValueNames
()
{
public
String
[]
getValueNames
()
{
return
(
String
[])
this
.
attributes
.
keySet
().
toArray
(
new
String
[
this
.
attributes
.
size
()]);
return
this
.
attributes
.
keySet
().
toArray
(
new
String
[
this
.
attributes
.
size
()]);
}
}
public
void
setAttribute
(
String
name
,
Object
value
)
{
public
void
setAttribute
(
String
name
,
Object
value
)
{
Assert
.
notNull
(
name
,
"Attribute name must not be null"
);
Assert
.
notNull
(
name
,
"Attribute name must not be null"
);
if
(
value
!=
null
)
{
if
(
value
!=
null
)
{
this
.
attributes
.
put
(
name
,
value
);
this
.
attributes
.
put
(
name
,
value
);
if
(
value
instanceof
HttpSessionBindingListener
)
{
if
(
value
instanceof
HttpSessionBindingListener
)
{
((
HttpSessionBindingListener
)
value
).
valueBound
(
new
HttpSessionBindingEvent
(
this
,
name
,
value
));
((
HttpSessionBindingListener
)
value
).
valueBound
(
new
HttpSessionBindingEvent
(
this
,
name
,
value
));
}
}
}
}
else
{
else
{
removeAttribute
(
name
);
removeAttribute
(
name
);
}
}
}
}
public
void
putValue
(
String
name
,
Object
value
)
{
public
void
putValue
(
String
name
,
Object
value
)
{
setAttribute
(
name
,
value
);
setAttribute
(
name
,
value
);
}
}
public
void
removeAttribute
(
String
name
)
{
public
void
removeAttribute
(
String
name
)
{
Assert
.
notNull
(
name
,
"Attribute name must not be null"
);
Assert
.
notNull
(
name
,
"Attribute name must not be null"
);
Object
value
=
this
.
attributes
.
remove
(
name
);
Object
value
=
this
.
attributes
.
remove
(
name
);
if
(
value
instanceof
HttpSessionBindingListener
)
{
if
(
value
instanceof
HttpSessionBindingListener
)
{
((
HttpSessionBindingListener
)
value
).
valueUnbound
(
new
HttpSessionBindingEvent
(
this
,
name
,
value
));
((
HttpSessionBindingListener
)
value
).
valueUnbound
(
new
HttpSessionBindingEvent
(
this
,
name
,
value
));
}
}
}
}
public
void
removeValue
(
String
name
)
{
public
void
removeValue
(
String
name
)
{
removeAttribute
(
name
);
removeAttribute
(
name
);
}
}
/**
/**
* Clear all of this session's attributes.
* Clear all of this session's attributes.
*/
*/
public
void
clearAttributes
()
{
public
void
clearAttributes
()
{
for
(
Iterator
it
=
this
.
attributes
.
entrySet
().
iterator
();
it
.
hasNext
();)
{
for
(
Iterator
<
Map
.
Entry
<
String
,
Object
>>
it
=
this
.
attributes
.
entrySet
().
iterator
();
it
.
hasNext
();)
{
Map
.
Entry
entry
=
(
Map
.
Entry
)
it
.
next
();
Map
.
Entry
<
String
,
Object
>
entry
=
it
.
next
();
String
name
=
(
String
)
entry
.
getKey
();
String
name
=
entry
.
getKey
();
Object
value
=
entry
.
getValue
();
Object
value
=
entry
.
getValue
();
it
.
remove
();
it
.
remove
();
if
(
value
instanceof
HttpSessionBindingListener
)
{
if
(
value
instanceof
HttpSessionBindingListener
)
{
((
HttpSessionBindingListener
)
value
).
valueUnbound
(
new
HttpSessionBindingEvent
(
this
,
name
,
value
));
((
HttpSessionBindingListener
)
value
).
valueUnbound
(
new
HttpSessionBindingEvent
(
this
,
name
,
value
));
}
}
}
}
}
}
public
void
invalidate
()
{
public
void
invalidate
()
{
this
.
invalid
=
true
;
this
.
invalid
=
true
;
clearAttributes
();
clearAttributes
();
}
}
public
boolean
isInvalid
()
{
public
boolean
isInvalid
()
{
return
this
.
invalid
;
return
this
.
invalid
;
}
}
public
void
setNew
(
boolean
value
)
{
public
void
setNew
(
boolean
value
)
{
this
.
isNew
=
value
;
this
.
isNew
=
value
;
}
}
public
boolean
isNew
()
{
public
boolean
isNew
()
{
return
this
.
isNew
;
return
this
.
isNew
;
}
}
/**
/**
* Serialize the attributes of this session into an object that can
* Serialize the attributes of this session into an object that can
* be turned into a byte array with standard Java serialization.
* be turned into a byte array with standard Java serialization.
* @return a representation of this session's serialized state
* @return a representation of this session's serialized state
*/
*/
public
Serializable
serializeState
()
{
public
Serializable
serializeState
()
{
HashMap
state
=
new
HashMap
();
HashMap
<
String
,
Serializable
>
state
=
new
HashMap
<
String
,
Serializable
>();
for
(
Iterator
it
=
this
.
attributes
.
entrySet
().
iterator
();
it
.
hasNext
();)
{
for
(
Iterator
<
Map
.
Entry
<
String
,
Object
>>
it
=
this
.
attributes
.
entrySet
().
iterator
();
it
.
hasNext
();)
{
Map
.
Entry
entry
=
(
Map
.
Entry
)
it
.
next
();
Map
.
Entry
<
String
,
Object
>
entry
=
it
.
next
();
String
name
=
(
String
)
entry
.
getKey
();
String
name
=
entry
.
getKey
();
Object
value
=
entry
.
getValue
();
Object
value
=
entry
.
getValue
();
it
.
remove
();
it
.
remove
();
if
(
value
instanceof
Serializable
)
{
if
(
value
instanceof
Serializable
)
{
state
.
put
(
name
,
value
);
state
.
put
(
name
,
(
Serializable
)
value
);
}
}
else
{
else
{
// Not serializable... Servlet containers usually automatically
// Not serializable... Servlet containers usually automatically
// unbind the attribute in this case.
// unbind the attribute in this case.
if
(
value
instanceof
HttpSessionBindingListener
)
{
if
(
value
instanceof
HttpSessionBindingListener
)
{
((
HttpSessionBindingListener
)
value
).
valueUnbound
(
new
HttpSessionBindingEvent
(
this
,
name
,
value
));
((
HttpSessionBindingListener
)
value
).
valueUnbound
(
new
HttpSessionBindingEvent
(
this
,
name
,
value
));
}
}
}
}
}
}
return
state
;
return
state
;
}
}
/**
/**
* Deserialize the attributes of this session from a state object
* Deserialize the attributes of this session from a state object
* created by {@link #serializeState()}.
* created by {@link #serializeState()}.
* @param state a representation of this session's serialized state
* @param state a representation of this session's serialized state
*/
*/
public
void
deserializeState
(
Serializable
state
)
{
@SuppressWarnings
(
"unchecked"
)
Assert
.
isTrue
(
state
instanceof
Map
,
"Serialized state needs to be of type [java.util.Map]"
);
public
void
deserializeState
(
Serializable
state
)
{
this
.
attributes
.
putAll
((
Map
)
state
);
Assert
.
isTrue
(
state
instanceof
Map
,
"Serialized state needs to be of type [java.util.Map]"
);
}
this
.
attributes
.
putAll
((
Map
<
String
,
Object
>)
state
);
}
}
\ No newline at end of file
}
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockJspWriter.java
浏览文件 @
9dec670b
/*
/*
* Copyright 2002-2007 the original author or authors.
* Copyright 2002-2009 the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
org.springframework.mock.web
;
package
org.springframework.mock.web
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.io.PrintWriter
;
import
java.io.Writer
;
import
java.io.Writer
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.jsp.JspWriter
;
import
javax.servlet.jsp.JspWriter
;
/**
/**
* Mock implementation of the {@link javax.servlet.jsp.JspWriter} class.
* Mock implementation of the {@link javax.servlet.jsp.JspWriter} class.
*
*
* <p>Used for testing the web framework; only necessary for testing
* <p>Used for testing the web framework; only necessary for testing
* applications when testing custom JSP tags.
* applications when testing custom JSP tags.
*
*
* @author Juergen Hoeller
* @author Juergen Hoeller
* @since 2.5
* @since 2.5
*/
*/
public
class
MockJspWriter
extends
JspWriter
{
public
class
MockJspWriter
extends
JspWriter
{
private
final
HttpServletResponse
response
;
private
final
HttpServletResponse
response
;
private
PrintWriter
targetWriter
;
private
PrintWriter
targetWriter
;
/**
/**
* Create a MockJspWriter for the given response,
* Create a MockJspWriter for the given response,
* using the response's default Writer.
* using the response's default Writer.
* @param response the servlet response to wrap
* @param response the servlet response to wrap
*/
*/
public
MockJspWriter
(
HttpServletResponse
response
)
{
public
MockJspWriter
(
HttpServletResponse
response
)
{
this
(
response
,
null
);
this
(
response
,
null
);
}
}
/**
/**
* Create a MockJspWriter for the given plain Writer.
* Create a MockJspWriter for the given plain Writer.
* @param targetWriter the target Writer to wrap
* @param targetWriter the target Writer to wrap
*/
*/
public
MockJspWriter
(
Writer
targetWriter
)
{
public
MockJspWriter
(
Writer
targetWriter
)
{
this
(
null
,
targetWriter
);
this
(
null
,
targetWriter
);
}
}
/**
/**
* Create a MockJspWriter for the given response.
* Create a MockJspWriter for the given response.
* @param response the servlet response to wrap
* @param response the servlet response to wrap
* @param targetWriter the target Writer to wrap
* @param targetWriter the target Writer to wrap
*/
*/
public
MockJspWriter
(
HttpServletResponse
response
,
Writer
targetWriter
)
{
public
MockJspWriter
(
HttpServletResponse
response
,
Writer
targetWriter
)
{
super
(
DEFAULT_BUFFER
,
true
);
super
(
DEFAULT_BUFFER
,
true
);
this
.
response
=
(
response
!=
null
?
response
:
new
MockHttpServletResponse
());
this
.
response
=
(
response
!=
null
?
response
:
new
MockHttpServletResponse
());
if
(
targetWriter
instanceof
PrintWriter
)
{
if
(
targetWriter
instanceof
PrintWriter
)
{
this
.
targetWriter
=
(
PrintWriter
)
targetWriter
;
this
.
targetWriter
=
(
PrintWriter
)
targetWriter
;
}
}
else
if
(
targetWriter
!=
null
)
{
else
if
(
targetWriter
!=
null
)
{
this
.
targetWriter
=
new
PrintWriter
(
targetWriter
);
this
.
targetWriter
=
new
PrintWriter
(
targetWriter
);
}
}
}
}
/**
/**
* Lazily initialize the target Writer.
* Lazily initialize the target Writer.
*/
*/
protected
PrintWriter
getTargetWriter
()
throws
IOException
{
protected
PrintWriter
getTargetWriter
()
throws
IOException
{
if
(
this
.
targetWriter
==
null
)
{
if
(
this
.
targetWriter
==
null
)
{
this
.
targetWriter
=
this
.
response
.
getWriter
();
this
.
targetWriter
=
this
.
response
.
getWriter
();
}
}
return
this
.
targetWriter
;
return
this
.
targetWriter
;
}
}
public
void
clear
()
throws
IOException
{
public
void
clear
()
throws
IOException
{
if
(
this
.
response
.
isCommitted
())
{
if
(
this
.
response
.
isCommitted
())
{
throw
new
IOException
(
"Response already committed"
);
throw
new
IOException
(
"Response already committed"
);
}
}
this
.
response
.
resetBuffer
();
this
.
response
.
resetBuffer
();
}
}
public
void
clearBuffer
()
throws
IOException
{
public
void
clearBuffer
()
throws
IOException
{
}
}
public
void
flush
()
throws
IOException
{
public
void
flush
()
throws
IOException
{
this
.
response
.
flushBuffer
();
this
.
response
.
flushBuffer
();
}
}
public
void
close
()
throws
IOException
{
public
void
close
()
throws
IOException
{
flush
();
flush
();
}
}
public
int
getRemaining
()
{
public
int
getRemaining
()
{
return
Integer
.
MAX_VALUE
;
return
Integer
.
MAX_VALUE
;
}
}
public
void
newLine
()
throws
IOException
{
public
void
newLine
()
throws
IOException
{
getTargetWriter
().
println
();
getTargetWriter
().
println
();
}
}
public
void
write
(
char
value
[],
int
offset
,
int
length
)
throws
IOException
{
public
void
write
(
char
value
[],
int
offset
,
int
length
)
throws
IOException
{
getTargetWriter
().
write
(
value
,
offset
,
length
);
getTargetWriter
().
write
(
value
,
offset
,
length
);
}
}
public
void
print
(
boolean
value
)
throws
IOException
{
public
void
print
(
boolean
value
)
throws
IOException
{
getTargetWriter
().
print
(
value
);
getTargetWriter
().
print
(
value
);
}
}
public
void
print
(
char
value
)
throws
IOException
{
public
void
print
(
char
value
)
throws
IOException
{
getTargetWriter
().
print
(
value
);
getTargetWriter
().
print
(
value
);
}
}
public
void
print
(
char
[]
value
)
throws
IOException
{
public
void
print
(
char
[]
value
)
throws
IOException
{
getTargetWriter
().
print
(
value
);
getTargetWriter
().
print
(
value
);
}
}
public
void
print
(
double
value
)
throws
IOException
{
public
void
print
(
double
value
)
throws
IOException
{
getTargetWriter
().
print
(
value
);
getTargetWriter
().
print
(
value
);
}
}
public
void
print
(
float
value
)
throws
IOException
{
public
void
print
(
float
value
)
throws
IOException
{
getTargetWriter
().
print
(
value
);
getTargetWriter
().
print
(
value
);
}
}
public
void
print
(
int
value
)
throws
IOException
{
public
void
print
(
int
value
)
throws
IOException
{
getTargetWriter
().
print
(
value
);
getTargetWriter
().
print
(
value
);
}
}
public
void
print
(
long
value
)
throws
IOException
{
public
void
print
(
long
value
)
throws
IOException
{
getTargetWriter
().
print
(
value
);
getTargetWriter
().
print
(
value
);
}
}
public
void
print
(
Object
value
)
throws
IOException
{
public
void
print
(
Object
value
)
throws
IOException
{
getTargetWriter
().
print
(
value
);
getTargetWriter
().
print
(
value
);
}
}
public
void
print
(
String
value
)
throws
IOException
{
public
void
print
(
String
value
)
throws
IOException
{
getTargetWriter
().
print
(
value
);
getTargetWriter
().
print
(
value
);
}
}
public
void
println
()
throws
IOException
{
public
void
println
()
throws
IOException
{
getTargetWriter
().
println
();
getTargetWriter
().
println
();
}
}
public
void
println
(
boolean
value
)
throws
IOException
{
public
void
println
(
boolean
value
)
throws
IOException
{
getTargetWriter
().
println
(
value
);
getTargetWriter
().
println
(
value
);
}
}
public
void
println
(
char
value
)
throws
IOException
{
public
void
println
(
char
value
)
throws
IOException
{
getTargetWriter
().
println
(
value
);
getTargetWriter
().
println
(
value
);
}
}
public
void
println
(
char
[]
value
)
throws
IOException
{
public
void
println
(
char
[]
value
)
throws
IOException
{
getTargetWriter
().
println
(
value
);
getTargetWriter
().
println
(
value
);
}
}
public
void
println
(
double
value
)
throws
IOException
{
public
void
println
(
double
value
)
throws
IOException
{
getTargetWriter
().
println
(
value
);
getTargetWriter
().
println
(
value
);
}
}
public
void
println
(
float
value
)
throws
IOException
{
public
void
println
(
float
value
)
throws
IOException
{
getTargetWriter
().
println
(
value
);
getTargetWriter
().
println
(
value
);
}
}
public
void
println
(
int
value
)
throws
IOException
{
public
void
println
(
int
value
)
throws
IOException
{
getTargetWriter
().
println
(
value
);
getTargetWriter
().
println
(
value
);
}
}
public
void
println
(
long
value
)
throws
IOException
{
public
void
println
(
long
value
)
throws
IOException
{
getTargetWriter
().
println
(
value
);
getTargetWriter
().
println
(
value
);
}
}
public
void
println
(
Object
value
)
throws
IOException
{
public
void
println
(
Object
value
)
throws
IOException
{
getTargetWriter
().
println
(
value
);
getTargetWriter
().
println
(
value
);
}
}
public
void
println
(
String
value
)
throws
IOException
{
public
void
println
(
String
value
)
throws
IOException
{
getTargetWriter
().
println
(
value
);
getTargetWriter
().
println
(
value
);
}
}
}
}
\ No newline at end of file
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockMultipartFile.java
0 → 100644
浏览文件 @
9dec670b
/*
* Copyright 2002-2009 the original author or authors.
*
* 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
org.springframework.mock.web
;
import
java.io.ByteArrayInputStream
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
org.springframework.util.Assert
;
import
org.springframework.util.FileCopyUtils
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* Mock implementation of the {@link org.springframework.web.multipart.MultipartFile}
* interface.
*
* <p>Useful in conjunction with a {@link MockMultipartHttpServletRequest}
* for testing application controllers that access multipart uploads.
*
* @author Juergen Hoeller
* @author Eric Crampton
* @since 2.0
* @see MockMultipartHttpServletRequest
*/
public
class
MockMultipartFile
implements
MultipartFile
{
private
final
String
name
;
private
String
originalFilename
;
private
String
contentType
;
private
final
byte
[]
content
;
/**
* Create a new MockMultipartFile with the given content.
* @param name the name of the file
* @param content the content of the file
*/
public
MockMultipartFile
(
String
name
,
byte
[]
content
)
{
this
(
name
,
""
,
null
,
content
);
}
/**
* Create a new MockMultipartFile with the given content.
* @param name the name of the file
* @param contentStream the content of the file as stream
* @throws IOException if reading from the stream failed
*/
public
MockMultipartFile
(
String
name
,
InputStream
contentStream
)
throws
IOException
{
this
(
name
,
""
,
null
,
FileCopyUtils
.
copyToByteArray
(
contentStream
));
}
/**
* Create a new MockMultipartFile with the given content.
* @param name the name of the file
* @param originalFilename the original filename (as on the client's machine)
* @param contentType the content type (if known)
* @param content the content of the file
*/
public
MockMultipartFile
(
String
name
,
String
originalFilename
,
String
contentType
,
byte
[]
content
)
{
Assert
.
hasLength
(
name
,
"Name must not be null"
);
this
.
name
=
name
;
this
.
originalFilename
=
(
originalFilename
!=
null
?
originalFilename
:
""
);
this
.
contentType
=
contentType
;
this
.
content
=
(
content
!=
null
?
content
:
new
byte
[
0
]);
}
/**
* Create a new MockMultipartFile with the given content.
* @param name the name of the file
* @param originalFilename the original filename (as on the client's machine)
* @param contentType the content type (if known)
* @param contentStream the content of the file as stream
* @throws IOException if reading from the stream failed
*/
public
MockMultipartFile
(
String
name
,
String
originalFilename
,
String
contentType
,
InputStream
contentStream
)
throws
IOException
{
this
(
name
,
originalFilename
,
contentType
,
FileCopyUtils
.
copyToByteArray
(
contentStream
));
}
public
String
getName
()
{
return
this
.
name
;
}
public
String
getOriginalFilename
()
{
return
this
.
originalFilename
;
}
public
String
getContentType
()
{
return
this
.
contentType
;
}
public
boolean
isEmpty
()
{
return
(
this
.
content
.
length
==
0
);
}
public
long
getSize
()
{
return
this
.
content
.
length
;
}
public
byte
[]
getBytes
()
throws
IOException
{
return
this
.
content
;
}
public
InputStream
getInputStream
()
throws
IOException
{
return
new
ByteArrayInputStream
(
this
.
content
);
}
public
void
transferTo
(
File
dest
)
throws
IOException
,
IllegalStateException
{
FileCopyUtils
.
copy
(
this
.
content
,
dest
);
}
}
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java
0 → 100644
浏览文件 @
9dec670b
/*
* Copyright 2002-2009 the original author or authors.
*
* 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
org.springframework.mock.web
;
import
java.util.Collections
;
import
java.util.Iterator
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
org.springframework.util.Assert
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
/**
* Mock implementation of the
* {@link org.springframework.web.multipart.MultipartHttpServletRequest} interface.
*
* <p>Useful for testing application controllers that access multipart uploads.
* The {@link MockMultipartFile} can be used to populate these mock requests
* with files.
*
* @author Juergen Hoeller
* @author Eric Crampton
* @since 2.0
* @see MockMultipartFile
*/
public
class
MockMultipartHttpServletRequest
extends
MockHttpServletRequest
implements
MultipartHttpServletRequest
{
private
final
Map
<
String
,
MultipartFile
>
multipartFiles
=
new
LinkedHashMap
<
String
,
MultipartFile
>();
/**
* Add a file to this request. The parameter name from the multipart
* form is taken from the {@link MultipartFile#getName()}.
* @param file multipart file to be added
*/
public
void
addFile
(
MultipartFile
file
)
{
Assert
.
notNull
(
file
,
"MultipartFile must not be null"
);
this
.
multipartFiles
.
put
(
file
.
getName
(),
file
);
}
public
Iterator
<
String
>
getFileNames
()
{
return
getFileMap
().
keySet
().
iterator
();
}
public
MultipartFile
getFile
(
String
name
)
{
return
this
.
multipartFiles
.
get
(
name
);
}
public
Map
<
String
,
MultipartFile
>
getFileMap
()
{
return
Collections
.
unmodifiableMap
(
this
.
multipartFiles
);
}
}
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockPageContext.java
浏览文件 @
9dec670b
此差异已折叠。
点击以展开。
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockRequestDispatcher.java
浏览文件 @
9dec670b
此差异已折叠。
点击以展开。
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockServletConfig.java
浏览文件 @
9dec670b
此差异已折叠。
点击以展开。
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/MockServletContext.java
浏览文件 @
9dec670b
此差异已折叠。
点击以展开。
org.springframework.web.servlet/src/test/java/org/springframework/mock/web/PassThroughFilterChain.java
浏览文件 @
9dec670b
/*
/*
* Copyright 2002-200
7
the original author or authors.
* Copyright 2002-200
9
the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
...
@@ -17,7 +17,6 @@
...
@@ -17,7 +17,6 @@
package
org.springframework.mock.web
;
package
org.springframework.mock.web
;
import
java.io.IOException
;
import
java.io.IOException
;
import
javax.servlet.Filter
;
import
javax.servlet.Filter
;
import
javax.servlet.FilterChain
;
import
javax.servlet.FilterChain
;
import
javax.servlet.Servlet
;
import
javax.servlet.Servlet
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录