Skip to content

Commit b5b3956

Browse files
committed
Merge branch 'master' into issue-18417
2 parents 3ebdbf0 + 82794c9 commit b5b3956

2 files changed

Lines changed: 65 additions & 2 deletions

File tree

core/src/main/resources/jenkins/management/AdministrativeMonitorsConfiguration/config.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ f.section(title: _("Administrative monitors"), description: _("blurb")) {
3838
div(class: "jenkins-checkbox-help-wrapper") {
3939
f.checkbox(name: "administrativeMonitor",
4040
title: am.displayName,
41-
checked: instance.isMonitorEnabled(am.id),
42-
json: am.id)
41+
checked: instance.isMonitorEnabled(am.@id),
42+
json: am.@id)
4343
if (am.isSecurity()) {
4444
span(style: 'margin-left: 0.5rem', class: 'jenkins-badge', _("Security"))
4545
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/*
2+
* The MIT License
3+
*
4+
* Copyright (c) 2026, Jenkins project contributors
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in
14+
* all copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
* THE SOFTWARE.
23+
*/
24+
25+
package jenkins.management;
26+
27+
import static org.hamcrest.MatcherAssert.assertThat;
28+
import static org.hamcrest.Matchers.is;
29+
import static org.hamcrest.Matchers.not;
30+
31+
import hudson.ExtensionList;
32+
import hudson.util.DoubleLaunchChecker;
33+
import org.htmlunit.html.HtmlForm;
34+
import org.junit.jupiter.api.BeforeEach;
35+
import org.junit.jupiter.api.Test;
36+
import org.jvnet.hudson.test.Issue;
37+
import org.jvnet.hudson.test.JenkinsRule;
38+
import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
39+
40+
@WithJenkins
41+
class AdministrativeMonitorsConfigurationTest {
42+
43+
private JenkinsRule j;
44+
45+
@BeforeEach
46+
void setUp(JenkinsRule rule) {
47+
j = rule;
48+
}
49+
50+
@Issue("#26285")
51+
@Test
52+
void globalConfigurationRoundTripKeepsDoubleLaunchCheckerEnabled() throws Exception {
53+
DoubleLaunchChecker monitor = ExtensionList.lookupSingleton(DoubleLaunchChecker.class);
54+
assertThat(monitor.id, is(DoubleLaunchChecker.class.getName()));
55+
assertThat(monitor.getId(), not(monitor.id));
56+
assertThat(monitor.isEnabled(), is(true));
57+
58+
HtmlForm form = j.createWebClient().goTo("configure").getFormByName("config");
59+
j.submit(form);
60+
61+
assertThat(monitor.isEnabled(), is(true));
62+
}
63+
}

0 commit comments

Comments
 (0)