Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solo
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
solo
Commits
d6adfb06
Commit
d6adfb06
authored
Nov 04, 2016
by
D
Committed by
GitHub
Nov 04, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12194 from b3log/1.7.0-dev
1.7.0 dev
parents
ad474732
f35be702
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
335 additions
and
31 deletions
+335
-31
src/main/java/org/b3log/solo/model/feed/atom/Feed.java
src/main/java/org/b3log/solo/model/feed/atom/Feed.java
+5
-8
src/main/java/org/b3log/solo/model/feed/rss/Category.java
src/main/java/org/b3log/solo/model/feed/rss/Category.java
+0
-1
src/main/java/org/b3log/solo/model/feed/rss/Channel.java
src/main/java/org/b3log/solo/model/feed/rss/Channel.java
+13
-15
src/main/java/org/b3log/solo/model/feed/rss/Item.java
src/main/java/org/b3log/solo/model/feed/rss/Item.java
+3
-5
src/main/java/org/b3log/solo/util/Markdowns.java
src/main/java/org/b3log/solo/util/Markdowns.java
+2
-2
src/test/java/org/b3log/solo/processor/FeedProcessorTestCase.java
.../java/org/b3log/solo/processor/FeedProcessorTestCase.java
+162
-0
src/test/java/org/b3log/solo/processor/InitProcessorTestCase.java
.../java/org/b3log/solo/processor/InitProcessorTestCase.java
+150
-0
No files found.
src/main/java/org/b3log/solo/model/feed/atom/Feed.java
View file @
d6adfb06
...
...
@@ -15,20 +15,17 @@
*/
package
org
.
b3log
.
solo
.
model
.
feed
.
atom
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.TimeZone
;
import
org.apache.commons.lang.time.DateFormatUtils
;
/**
* Feed.
*
* <p>
* See <a href="http://tools.ietf.org/html/rfc4287">RFC 4278</a> for more
* details.
* See <a href="http://tools.ietf.org/html/rfc4287">RFC 4278</a> for more details.
* </p>
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
...
...
@@ -72,7 +69,7 @@ public final class Feed {
/**
* Entries.
*/
private
List
<
Entry
>
entries
=
new
ArrayList
<
Entry
>();
private
List
<
Entry
>
entries
=
new
ArrayList
<>();
/**
* Link variable.
...
...
@@ -166,7 +163,7 @@ public final class Feed {
/**
* Gets the id.
*
*
* @return id
*/
public
String
getId
()
{
...
...
@@ -175,7 +172,7 @@ public final class Feed {
/**
* Sets the id with the specified id.
*
*
* @param id the specified id
*/
public
void
setId
(
final
String
id
)
{
...
...
@@ -302,7 +299,7 @@ public final class Feed {
stringBuilder
.
append
(
START_UPDATED_ELEMENT
);
stringBuilder
.
append
(
DateFormatUtils
.
format
(
// using ISO-8601 instead of RFC-3339
updated
,
DateFormatUtils
.
ISO_DATETIME_TIME_ZONE_FORMAT
.
getPattern
(),
TimeZone
.
getTimeZone
(
TIME_ZONE_ID
)));
updated
,
DateFormatUtils
.
ISO_DATETIME_TIME_ZONE_FORMAT
.
getPattern
(),
TimeZone
.
getTimeZone
(
TIME_ZONE_ID
)));
stringBuilder
.
append
(
END_UPDATED_ELEMENT
);
stringBuilder
.
append
(
START_AUTHOR_ELEMENT
);
...
...
src/main/java/org/b3log/solo/model/feed/rss/Category.java
View file @
d6adfb06
...
...
@@ -15,7 +15,6 @@
*/
package
org
.
b3log
.
solo
.
model
.
feed
.
rss
;
/**
* Category.
*
...
...
src/main/java/org/b3log/solo/model/feed/rss/Channel.java
View file @
d6adfb06
...
...
@@ -15,23 +15,21 @@
*/
package
org
.
b3log
.
solo
.
model
.
feed
.
rss
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
org.apache.commons.lang.time.DateFormatUtils
;
/**
* RSS 2.0 channel.
*
* <p>
* See <a href="http://cyber.law.harvard.edu/rss/rss.html">RSS 2.0 at Harvard Law</a>
* See <a href="http://cyber.law.harvard.edu/rss/rss.html">RSS 2.0 at Harvard Law</a>
* for more details.
* </p>
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.0.
1, Nov 19, 2011
* @version 1.1.0.
2, Nov 4, 2016
* @see Item
* @see Category
* @since 0.3.1
...
...
@@ -76,7 +74,7 @@ public final class Channel {
/**
* Items.
*/
private
List
<
Item
>
items
=
new
ArrayList
<
Item
>();
private
List
<
Item
>
items
=
new
ArrayList
<>();
/**
* Time zone id.
...
...
@@ -86,8 +84,8 @@ public final class Channel {
/**
* Start.
*/
private
static
final
String
START
=
"<?xml version=
'1.0' encoding='UTF-8'
?><rss version=\"2.0\" "
+
"xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel>"
;
private
static
final
String
START
=
"<?xml version=
\"1.0\" encoding=\"UTF-8\"
?><rss version=\"2.0\" "
+
"xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel>"
;
/**
* End.
...
...
@@ -123,7 +121,7 @@ public final class Channel {
* Atom link element.
*/
private
static
final
String
ATOM_LINK_ELEMENT
=
"<atom:link href=\""
+
ATOM_LINK_VARIABLE
+
"\" rel=\"self\" type=\"application/rss+xml\" />"
;
+
"\" rel=\"self\" type=\"application/rss+xml\" />"
;
/**
* Start description element.
...
...
@@ -161,13 +159,13 @@ public final class Channel {
private
static
final
String
START_LAST_BUILD_DATE_ELEMENT
=
"<lastBuildDate>"
;
/**
* End last build date
element.
* End last build date element.
*/
private
static
final
String
END_LAST_BUILD_DATE_ELEMENT
=
"</lastBuildDate>"
;
/**
* Sets the atom link with the specified atom link.
*
*
* @param atomLink the specified atom link
*/
public
void
setAtomLink
(
final
String
atomLink
)
{
...
...
@@ -176,7 +174,7 @@ public final class Channel {
/**
* Gets the atom link.
*
*
* @return atom link
*/
public
String
getAtomLink
()
{
...
...
@@ -185,7 +183,7 @@ public final class Channel {
/**
* Gets the last build date.
*
*
* @return last build date
*/
public
Date
getLastBuildDate
()
{
...
...
@@ -194,7 +192,7 @@ public final class Channel {
/**
* Sets the last build date with the specified last build date.
*
*
* @param lastBuildDate the specified last build date
*/
public
void
setLastBuildDate
(
final
Date
lastBuildDate
)
{
...
...
@@ -203,7 +201,7 @@ public final class Channel {
/**
* Gets generator.
*
*
* @return generator
*/
public
String
getGenerator
()
{
...
...
@@ -212,7 +210,7 @@ public final class Channel {
/**
* Sets the generator with the specified generator.
*
*
* @param generator the specified generator
*/
public
void
setGenerator
(
final
String
generator
)
{
...
...
src/main/java/org/b3log/solo/model/feed/rss/Item.java
View file @
d6adfb06
...
...
@@ -15,14 +15,12 @@
*/
package
org
.
b3log
.
solo
.
model
.
feed
.
rss
;
import
java.util.Date
;
import
java.util.HashSet
;
import
java.util.Locale
;
import
java.util.Set
;
import
org.apache.commons.lang.time.DateFormatUtils
;
/**
* Item.
*
...
...
@@ -75,7 +73,7 @@ public final class Item {
/**
* Categories.
*/
private
Set
<
Category
>
categories
=
new
HashSet
<
Category
>();
private
Set
<
Category
>
categories
=
new
HashSet
<>();
/**
* Start guid element.
...
...
@@ -129,7 +127,7 @@ public final class Item {
/**
* Gets the GUID.
*
*
* @return GUID
*/
public
String
getGUID
()
{
...
...
@@ -138,7 +136,7 @@ public final class Item {
/**
* Sets the GUID with the specified GUID.
*
*
* @param guid the specified GUID
*/
public
void
setGUID
(
final
String
guid
)
{
...
...
src/main/java/org/b3log/solo/util/Markdowns.java
View file @
d6adfb06
...
...
@@ -28,7 +28,7 @@ import org.pegdown.PegDownProcessor;
* Uses the <a href="http://markdown.tautua.org/">MarkdownPapers</a> as the converter.</p>
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 2.0.0.
1, May 16
, 2016
* @version 2.0.0.
2, Nov 3
, 2016
* @since 0.4.5
*/
public
final
class
Markdowns
{
...
...
@@ -50,7 +50,7 @@ public final class Markdowns {
return
""
;
}
final
PegDownProcessor
pegDownProcessor
=
new
PegDownProcessor
(
Extensions
.
ALL
,
5000
);
final
PegDownProcessor
pegDownProcessor
=
new
PegDownProcessor
(
Extensions
.
ALL
_OPTIONALS
|
Extensions
.
ALL_WITH_OPTIONALS
,
5000
);
String
ret
=
pegDownProcessor
.
markdownToHtml
(
markdownText
);
if
(!
StringUtils
.
startsWith
(
ret
,
"<p>"
))
{
...
...
src/test/java/org/b3log/solo/processor/FeedProcessorTestCase.java
0 → 100644
View file @
d6adfb06
package
org
.
b3log
.
solo
.
processor
;
import
java.io.PrintWriter
;
import
java.io.StringWriter
;
import
javax.servlet.ServletContext
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.lang.StringUtils
;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.model.User
;
import
org.b3log.latke.repository.Query
;
import
org.b3log.solo.AbstractTestCase
;
import
org.b3log.solo.service.InitService
;
import
org.b3log.solo.service.UserQueryService
;
import
org.json.JSONObject
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
org.testng.Assert
;
import
org.testng.annotations.Test
;
/**
* {@link FeedProcessor} test case.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.0, Nov 4, 2016
* @since 1.7.0
*/
@Test
(
suiteName
=
"processor"
)
public
class
FeedProcessorTestCase
extends
AbstractTestCase
{
/**
* Init.
*
* @throws Exception exception
*/
@Test
public
void
init
()
throws
Exception
{
final
InitService
initService
=
getInitService
();
final
JSONObject
requestJSONObject
=
new
JSONObject
();
requestJSONObject
.
put
(
User
.
USER_EMAIL
,
"test@gmail.com"
);
requestJSONObject
.
put
(
User
.
USER_NAME
,
"Admin"
);
requestJSONObject
.
put
(
User
.
USER_PASSWORD
,
"pass"
);
initService
.
init
(
requestJSONObject
);
final
UserQueryService
userQueryService
=
getUserQueryService
();
Assert
.
assertNotNull
(
userQueryService
.
getUserByEmail
(
"test@gmail.com"
));
}
/**
* blogArticlesAtom.
*
* @throws Exception exception
*/
@Test
(
dependsOnMethods
=
"init"
)
public
void
blogArticlesAtom
()
throws
Exception
{
final
HttpServletRequest
request
=
mock
(
HttpServletRequest
.
class
);
when
(
request
.
getServletContext
()).
thenReturn
(
mock
(
ServletContext
.
class
));
when
(
request
.
getRequestURI
()).
thenReturn
(
"/blog-articles-feed.do"
);
when
(
request
.
getMethod
()).
thenReturn
(
"GET"
);
final
MockDispatcherServlet
dispatcherServlet
=
new
MockDispatcherServlet
();
dispatcherServlet
.
init
();
final
StringWriter
stringWriter
=
new
StringWriter
();
final
PrintWriter
printWriter
=
new
PrintWriter
(
stringWriter
);
final
HttpServletResponse
response
=
mock
(
HttpServletResponse
.
class
);
when
(
response
.
getWriter
()).
thenReturn
(
printWriter
);
dispatcherServlet
.
service
(
request
,
response
);
final
String
content
=
stringWriter
.
toString
();
Assert
.
assertTrue
(
StringUtils
.
startsWith
(
content
,
"<?xml version=\"1.0\"?>"
));
}
/**
* tagArticlesAtom.
*
* @throws Exception exception
*/
@Test
(
dependsOnMethods
=
"init"
)
public
void
tagArticlesAtom
()
throws
Exception
{
final
HttpServletRequest
request
=
mock
(
HttpServletRequest
.
class
);
when
(
request
.
getServletContext
()).
thenReturn
(
mock
(
ServletContext
.
class
));
when
(
request
.
getRequestURI
()).
thenReturn
(
"/tag-articles-feed.do"
);
when
(
request
.
getMethod
()).
thenReturn
(
"GET"
);
final
JSONObject
tag
=
getTagRepository
().
get
(
new
Query
()).
optJSONArray
(
Keys
.
RESULTS
).
optJSONObject
(
0
);
when
(
request
.
getQueryString
()).
thenReturn
(
"tag="
+
tag
.
optString
(
Keys
.
OBJECT_ID
));
final
MockDispatcherServlet
dispatcherServlet
=
new
MockDispatcherServlet
();
dispatcherServlet
.
init
();
final
StringWriter
stringWriter
=
new
StringWriter
();
final
PrintWriter
printWriter
=
new
PrintWriter
(
stringWriter
);
final
HttpServletResponse
response
=
mock
(
HttpServletResponse
.
class
);
when
(
response
.
getWriter
()).
thenReturn
(
printWriter
);
dispatcherServlet
.
service
(
request
,
response
);
final
String
content
=
stringWriter
.
toString
();
Assert
.
assertTrue
(
StringUtils
.
startsWith
(
content
,
"<?xml version=\"1.0\""
));
}
/**
* blogArticlesRSS.
*
* @throws Exception exception
*/
@Test
(
dependsOnMethods
=
"init"
)
public
void
blogArticlesRSS
()
throws
Exception
{
final
HttpServletRequest
request
=
mock
(
HttpServletRequest
.
class
);
when
(
request
.
getServletContext
()).
thenReturn
(
mock
(
ServletContext
.
class
));
when
(
request
.
getRequestURI
()).
thenReturn
(
"/blog-articles-rss.do"
);
when
(
request
.
getMethod
()).
thenReturn
(
"GET"
);
final
MockDispatcherServlet
dispatcherServlet
=
new
MockDispatcherServlet
();
dispatcherServlet
.
init
();
final
StringWriter
stringWriter
=
new
StringWriter
();
final
PrintWriter
printWriter
=
new
PrintWriter
(
stringWriter
);
final
HttpServletResponse
response
=
mock
(
HttpServletResponse
.
class
);
when
(
response
.
getWriter
()).
thenReturn
(
printWriter
);
dispatcherServlet
.
service
(
request
,
response
);
final
String
content
=
stringWriter
.
toString
();
Assert
.
assertTrue
(
StringUtils
.
startsWith
(
content
,
"<?xml version=\"1.0\""
));
}
/**
* tagArticlesRSS.
*
* @throws Exception exception
*/
@Test
(
dependsOnMethods
=
"init"
)
public
void
tagArticlesRSS
()
throws
Exception
{
final
HttpServletRequest
request
=
mock
(
HttpServletRequest
.
class
);
when
(
request
.
getServletContext
()).
thenReturn
(
mock
(
ServletContext
.
class
));
when
(
request
.
getRequestURI
()).
thenReturn
(
"/tag-articles-rss.do"
);
when
(
request
.
getMethod
()).
thenReturn
(
"GET"
);
final
JSONObject
tag
=
getTagRepository
().
get
(
new
Query
()).
optJSONArray
(
Keys
.
RESULTS
).
optJSONObject
(
0
);
when
(
request
.
getQueryString
()).
thenReturn
(
"tag="
+
tag
.
optString
(
Keys
.
OBJECT_ID
));
final
MockDispatcherServlet
dispatcherServlet
=
new
MockDispatcherServlet
();
dispatcherServlet
.
init
();
final
StringWriter
stringWriter
=
new
StringWriter
();
final
PrintWriter
printWriter
=
new
PrintWriter
(
stringWriter
);
final
HttpServletResponse
response
=
mock
(
HttpServletResponse
.
class
);
when
(
response
.
getWriter
()).
thenReturn
(
printWriter
);
dispatcherServlet
.
service
(
request
,
response
);
final
String
content
=
stringWriter
.
toString
();
Assert
.
assertTrue
(
StringUtils
.
startsWith
(
content
,
"<?xml version=\"1.0\""
));
}
}
src/test/java/org/b3log/solo/processor/InitProcessorTestCase.java
0 → 100644
View file @
d6adfb06
/*
* Copyright (c) 2010-2016, b3log.org & hacpai.com
*
* 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
.
b3log
.
solo
.
processor
;
import
java.io.PrintWriter
;
import
java.io.StringWriter
;
import
javax.servlet.ServletContext
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.lang.StringUtils
;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.model.User
;
import
org.b3log.solo.AbstractTestCase
;
import
org.b3log.solo.service.InitService
;
import
org.b3log.solo.service.UserQueryService
;
import
org.json.JSONObject
;
import
static
org
.
mockito
.
Mockito
.*;
import
org.testng.Assert
;
import
org.testng.annotations.Test
;
/**
* {@link IndexProcessor} test case.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.0, Nov 2, 2016
* @since 1.7.0
*/
@Test
(
suiteName
=
"processor"
)
public
class
InitProcessorTestCase
extends
AbstractTestCase
{
/**
* Init.
*
* @throws Exception exception
*/
@Test
public
void
init
()
throws
Exception
{
final
InitService
initService
=
getInitService
();
final
JSONObject
requestJSONObject
=
new
JSONObject
();
requestJSONObject
.
put
(
User
.
USER_EMAIL
,
"test@gmail.com"
);
requestJSONObject
.
put
(
User
.
USER_NAME
,
"Admin"
);
requestJSONObject
.
put
(
User
.
USER_PASSWORD
,
"pass"
);
initService
.
init
(
requestJSONObject
);
final
UserQueryService
userQueryService
=
getUserQueryService
();
Assert
.
assertNotNull
(
userQueryService
.
getUserByEmail
(
"test@gmail.com"
));
}
/**
* showIndex.
*
* @throws Exception exception
*/
@Test
(
dependsOnMethods
=
"init"
)
public
void
showIndex
()
throws
Exception
{
final
HttpServletRequest
request
=
mock
(
HttpServletRequest
.
class
);
when
(
request
.
getServletContext
()).
thenReturn
(
mock
(
ServletContext
.
class
));
when
(
request
.
getRequestURI
()).
thenReturn
(
""
);
when
(
request
.
getMethod
()).
thenReturn
(
"GET"
);
when
(
request
.
getAttribute
(
Keys
.
TEMAPLTE_DIR_NAME
)).
thenReturn
(
"next"
);
when
(
request
.
getAttribute
(
Keys
.
HttpRequest
.
START_TIME_MILLIS
)).
thenReturn
(
System
.
currentTimeMillis
());
final
MockDispatcherServlet
dispatcherServlet
=
new
MockDispatcherServlet
();
dispatcherServlet
.
init
();
final
StringWriter
stringWriter
=
new
StringWriter
();
final
PrintWriter
printWriter
=
new
PrintWriter
(
stringWriter
);
final
HttpServletResponse
response
=
mock
(
HttpServletResponse
.
class
);
when
(
response
.
getWriter
()).
thenReturn
(
printWriter
);
dispatcherServlet
.
service
(
request
,
response
);
final
String
content
=
stringWriter
.
toString
();
Assert
.
assertTrue
(
StringUtils
.
contains
(
content
,
"<title>Solo 示例</title>"
));
}
/**
* showKillBrowser.
*
* @throws Exception exception
*/
@Test
(
dependsOnMethods
=
"init"
)
public
void
showKillBrowser
()
throws
Exception
{
final
HttpServletRequest
request
=
mock
(
HttpServletRequest
.
class
);
when
(
request
.
getServletContext
()).
thenReturn
(
mock
(
ServletContext
.
class
));
when
(
request
.
getRequestURI
()).
thenReturn
(
"/kill-browser"
);
when
(
request
.
getMethod
()).
thenReturn
(
"GET"
);
when
(
request
.
getAttribute
(
Keys
.
TEMAPLTE_DIR_NAME
)).
thenReturn
(
"next"
);
when
(
request
.
getAttribute
(
Keys
.
HttpRequest
.
START_TIME_MILLIS
)).
thenReturn
(
System
.
currentTimeMillis
());
final
MockDispatcherServlet
dispatcherServlet
=
new
MockDispatcherServlet
();
dispatcherServlet
.
init
();
final
StringWriter
stringWriter
=
new
StringWriter
();
final
PrintWriter
printWriter
=
new
PrintWriter
(
stringWriter
);
final
HttpServletResponse
response
=
mock
(
HttpServletResponse
.
class
);
when
(
response
.
getWriter
()).
thenReturn
(
printWriter
);
dispatcherServlet
.
service
(
request
,
response
);
final
String
content
=
stringWriter
.
toString
();
Assert
.
assertTrue
(
StringUtils
.
contains
(
content
,
"<title>Solo 示例</title>"
));
}
/**
* register.
*
* @throws Exception exception
*/
@Test
(
dependsOnMethods
=
"init"
)
public
void
register
()
throws
Exception
{
final
HttpServletRequest
request
=
mock
(
HttpServletRequest
.
class
);
when
(
request
.
getServletContext
()).
thenReturn
(
mock
(
ServletContext
.
class
));
when
(
request
.
getRequestURI
()).
thenReturn
(
"/register"
);
when
(
request
.
getMethod
()).
thenReturn
(
"GET"
);
when
(
request
.
getAttribute
(
Keys
.
TEMAPLTE_DIR_NAME
)).
thenReturn
(
"next"
);
when
(
request
.
getAttribute
(
Keys
.
HttpRequest
.
START_TIME_MILLIS
)).
thenReturn
(
System
.
currentTimeMillis
());
final
MockDispatcherServlet
dispatcherServlet
=
new
MockDispatcherServlet
();
dispatcherServlet
.
init
();
final
StringWriter
stringWriter
=
new
StringWriter
();
final
PrintWriter
printWriter
=
new
PrintWriter
(
stringWriter
);
final
HttpServletResponse
response
=
mock
(
HttpServletResponse
.
class
);
when
(
response
.
getWriter
()).
thenReturn
(
printWriter
);
dispatcherServlet
.
service
(
request
,
response
);
final
String
content
=
stringWriter
.
toString
();
Assert
.
assertTrue
(
StringUtils
.
contains
(
content
,
"<title>Solo 示例</title>"
));
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment