Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
jenkins
提交
64e832f9
J
jenkins
项目概览
xxadev
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
64e832f9
编写于
4月 21, 2015
作者:
J
Jesse Glick
浏览文件
操作
浏览文件
下载
差异文件
[FIXED JENKINS-24433] Noting merge of #1581.
上级
1a8a00a8
6528ff1e
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
126 addition
and
4 deletion
+126
-4
changelog.html
changelog.html
+3
-1
core/src/main/java/hudson/search/Search.java
core/src/main/java/hudson/search/Search.java
+1
-1
core/src/main/java/hudson/search/SuggestedItem.java
core/src/main/java/hudson/search/SuggestedItem.java
+1
-1
test/src/test/java/hudson/search/SearchTest.java
test/src/test/java/hudson/search/SearchTest.java
+121
-1
未找到文件。
changelog.html
浏览文件 @
64e832f9
...
...
@@ -55,7 +55,9 @@ Upcoming changes</a>
<!-- Record your changes in the trunk here. -->
<div
id=
"trunk"
style=
"display:none"
>
<!--=TRUNK-BEGIN=-->
<ul
class=
image
>
<li
class=
>
<li
class=
bug
>
Search box did not work well inside folders.
(
<a
href=
"https://issues.jenkins-ci.org/browse/JENKINS-24433"
>
issue 24433
</a>
)
</ul>
</div>
<!--=TRUNK-END=-->
<h3><a
name=
v1.610
>
What's new in 1.610
</a>
(2015/04/19)
</h3>
...
...
core/src/main/java/hudson/search/Search.java
浏览文件 @
64e832f9
...
...
@@ -76,7 +76,7 @@ public class Search {
SuggestedItem
target
=
find
(
index
,
query
,
smo
);
if
(
target
!=
null
)
{
// found
rsp
.
sendRedirect2
(
a
.
getUrl
()+
target
.
getUrl
());
rsp
.
sendRedirect2
(
req
.
getContextPath
()+
target
.
getUrl
());
return
;
}
}
...
...
core/src/main/java/hudson/search/SuggestedItem.java
浏览文件 @
64e832f9
...
...
@@ -81,7 +81,7 @@ public class SuggestedItem {
private
static
SuggestedItem
build
(
SearchableModelObject
searchContext
,
Item
top
)
{
ItemGroup
<?
extends
Item
>
parent
=
top
.
getParent
();
if
(
parent
instanceof
Item
&&
parent
!=
searchContext
)
{
if
(
parent
instanceof
Item
)
{
Item
parentItem
=
(
Item
)
parent
;
return
new
SuggestedItem
(
build
(
searchContext
,
parentItem
),
top
);
}
...
...
test/src/test/java/hudson/search/SearchTest.java
浏览文件 @
64e832f9
...
...
@@ -32,6 +32,8 @@ import static org.junit.Assert.fail;
import
hudson.model.FreeStyleProject
;
import
hudson.model.ListView
;
import
java.net.URL
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -105,6 +107,37 @@ public class SearchTest {
assertTrue
(
contents
.
contains
(
String
.
format
(
"<title>%s [Jenkins]</title>"
,
projectName
)));
}
@Issue
(
"JENKINS-24433"
)
@Test
public
void
testSearchByProjectNameBehindAFolder
()
throws
Exception
{
FreeStyleProject
myFreeStyleProject
=
j
.
createFreeStyleProject
(
"testSearchByProjectName"
);
MockFolder
myMockFolder
=
j
.
createFolder
(
"my-folder-1"
);
Page
result
=
j
.
createWebClient
().
goTo
(
myMockFolder
.
getUrl
()
+
"search?q="
+
myFreeStyleProject
.
getName
());
assertNotNull
(
result
);
j
.
assertGoodStatus
(
result
);
URL
resultUrl
=
result
.
getWebResponse
().
getUrl
();
assertTrue
(
resultUrl
.
toString
().
equals
(
j
.
getInstance
().
getRootUrl
()
+
myFreeStyleProject
.
getUrl
()));
}
@Issue
(
"JENKINS-24433"
)
@Test
public
void
testSearchByProjectNameInAFolder
()
throws
Exception
{
MockFolder
myMockFolder
=
j
.
createFolder
(
"my-folder-1"
);
FreeStyleProject
myFreeStyleProject
=
myMockFolder
.
createProject
(
FreeStyleProject
.
class
,
"my-job-1"
);
Page
result
=
j
.
createWebClient
().
goTo
(
myMockFolder
.
getUrl
()
+
"search?q="
+
myFreeStyleProject
.
getFullName
());
assertNotNull
(
result
);
j
.
assertGoodStatus
(
result
);
URL
resultUrl
=
result
.
getWebResponse
().
getUrl
();
assertTrue
(
resultUrl
.
toString
().
equals
(
j
.
getInstance
().
getRootUrl
()
+
myFreeStyleProject
.
getUrl
()));
}
@Test
public
void
testSearchByDisplayName
()
throws
Exception
{
final
String
displayName
=
"displayName9999999"
;
...
...
@@ -225,6 +258,93 @@ public class SearchTest {
assertTrue
(
foundDispayName
);
}
@Issue
(
"JENKINS-24433"
)
@Test
public
void
testProjectNameBehindAFolderDisplayName
()
throws
Exception
{
final
String
projectName1
=
"job-1"
;
final
String
displayName1
=
"job-1 display"
;
final
String
projectName2
=
"job-2"
;
final
String
displayName2
=
"job-2 display"
;
FreeStyleProject
project1
=
j
.
createFreeStyleProject
(
projectName1
);
project1
.
setDisplayName
(
displayName1
);
MockFolder
myMockFolder
=
j
.
createFolder
(
"my-folder-1"
);
FreeStyleProject
project2
=
myMockFolder
.
createProject
(
FreeStyleProject
.
class
,
projectName2
);
project2
.
setDisplayName
(
displayName2
);
WebClient
wc
=
j
.
createWebClient
();
Page
result
=
wc
.
goTo
(
myMockFolder
.
getUrl
()
+
"search/suggest?query="
+
projectName1
,
"application/json"
);
assertNotNull
(
result
);
j
.
assertGoodStatus
(
result
);
String
content
=
result
.
getWebResponse
().
getContentAsString
();
JSONObject
jsonContent
=
(
JSONObject
)
JSONSerializer
.
toJSON
(
content
);
assertNotNull
(
jsonContent
);
JSONArray
jsonArray
=
jsonContent
.
getJSONArray
(
"suggestions"
);
assertNotNull
(
jsonArray
);
assertEquals
(
2
,
jsonArray
.
size
());
boolean
foundDisplayName
=
false
;
for
(
Object
suggestion
:
jsonArray
)
{
JSONObject
jsonSuggestion
=
(
JSONObject
)
suggestion
;
String
name
=
(
String
)
jsonSuggestion
.
get
(
"name"
);
if
(
projectName1
.
equals
(
name
))
{
foundDisplayName
=
true
;
}
}
assertTrue
(
foundDisplayName
);
}
@Issue
(
"JENKINS-24433"
)
@Test
public
void
testProjectNameInAFolderDisplayName
()
throws
Exception
{
final
String
projectName1
=
"job-1"
;
final
String
displayName1
=
"job-1 display"
;
final
String
projectName2
=
"job-2"
;
final
String
displayName2
=
"my-folder-1 job-2"
;
FreeStyleProject
project1
=
j
.
createFreeStyleProject
(
projectName1
);
project1
.
setDisplayName
(
displayName1
);
MockFolder
myMockFolder
=
j
.
createFolder
(
"my-folder-1"
);
FreeStyleProject
project2
=
myMockFolder
.
createProject
(
FreeStyleProject
.
class
,
projectName2
);
project2
.
setDisplayName
(
displayName2
);
WebClient
wc
=
j
.
createWebClient
();
Page
result
=
wc
.
goTo
(
myMockFolder
.
getUrl
()
+
"search/suggest?query="
+
projectName2
,
"application/json"
);
assertNotNull
(
result
);
j
.
assertGoodStatus
(
result
);
String
content
=
result
.
getWebResponse
().
getContentAsString
();
JSONObject
jsonContent
=
(
JSONObject
)
JSONSerializer
.
toJSON
(
content
);
assertNotNull
(
jsonContent
);
JSONArray
jsonArray
=
jsonContent
.
getJSONArray
(
"suggestions"
);
assertNotNull
(
jsonArray
);
assertEquals
(
1
,
jsonArray
.
size
());
boolean
foundDisplayName
=
false
;
for
(
Object
suggestion
:
jsonArray
)
{
JSONObject
jsonSuggestion
=
(
JSONObject
)
suggestion
;
String
name
=
(
String
)
jsonSuggestion
.
get
(
"name"
);
if
(
displayName2
.
equals
(
name
))
{
foundDisplayName
=
true
;
}
}
assertTrue
(
foundDisplayName
);
}
/**
* Disable/enable status shouldn't affect the search
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录