Test terminal can set dimensions
- ShellTest now has fields which can be used to change terminal default widht/height. - Backed by properties so can be used with `spring.shell.test.terminal-width` and `spring.shell.test.terminal-height`. - Fixes #656
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2022 the original author or authors.
|
||||
* Copyright 2022-2023 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.
|
||||
@@ -25,6 +25,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.shell.boot.JLineShellAutoConfiguration;
|
||||
import org.springframework.shell.boot.TerminalCustomizer;
|
||||
@@ -33,6 +34,7 @@ import org.springframework.shell.test.jediterm.terminal.ui.JediTermWidget;
|
||||
import org.springframework.shell.test.jediterm.terminal.ui.TerminalSession;
|
||||
|
||||
@AutoConfiguration(before = JLineShellAutoConfiguration.class)
|
||||
@EnableConfigurationProperties(SpringShellTestProperties.class)
|
||||
public class ShellAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@@ -55,8 +57,8 @@ public class ShellAutoConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
TerminalSession terminalSession(TtyConnector ttyConnector) {
|
||||
JediTermWidget widget = new JediTermWidget(80, 24);
|
||||
TerminalSession terminalSession(TtyConnector ttyConnector, SpringShellTestProperties properties) {
|
||||
JediTermWidget widget = new JediTermWidget(properties.getTerminalWidth(), properties.getTerminalHeight());
|
||||
widget.setTtyConnector(ttyConnector);
|
||||
return widget;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2022 the original author or authors.
|
||||
* Copyright 2022-2023 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.
|
||||
@@ -28,6 +28,8 @@ import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration;
|
||||
import org.springframework.boot.test.autoconfigure.filter.TypeExcludeFilters;
|
||||
import org.springframework.boot.test.autoconfigure.properties.PropertyMapping;
|
||||
import org.springframework.boot.test.autoconfigure.properties.SkipPropertyMapping;
|
||||
import org.springframework.context.annotation.ComponentScan.Filter;
|
||||
import org.springframework.core.annotation.AliasFor;
|
||||
import org.springframework.core.env.Environment;
|
||||
@@ -61,6 +63,22 @@ public @interface ShellTest {
|
||||
*/
|
||||
String[] properties() default {};
|
||||
|
||||
/**
|
||||
* Set emulated terminal width.
|
||||
*
|
||||
* @return emulated terminal width
|
||||
*/
|
||||
@PropertyMapping(value = "spring.shell.test.terminal-width", skip = SkipPropertyMapping.ON_DEFAULT_VALUE)
|
||||
int terminalWidth() default 80;
|
||||
|
||||
/**
|
||||
* Set emulated terminal height.
|
||||
*
|
||||
* @return emulated terminal height
|
||||
*/
|
||||
@PropertyMapping(value = "spring.shell.test.terminal-height", skip = SkipPropertyMapping.ON_DEFAULT_VALUE)
|
||||
int terminalHeight() default 24;
|
||||
|
||||
/**
|
||||
* Determines if default filtering should be used with
|
||||
* {@link SpringBootApplication @SpringBootApplication}.
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright 2023 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
|
||||
*
|
||||
* https://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.shell.test.autoconfigure;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
||||
/**
|
||||
* Configuration properties for shell test.
|
||||
*
|
||||
* @author Janne Valkealahti
|
||||
*/
|
||||
@ConfigurationProperties(prefix = "spring.shell.test")
|
||||
public class SpringShellTestProperties {
|
||||
|
||||
/**
|
||||
* Width of an emulated terminal.
|
||||
*/
|
||||
private int terminalWidth = 80;
|
||||
|
||||
/**
|
||||
* Height of an emulated terminal.
|
||||
*/
|
||||
private int terminalHeight = 24;
|
||||
|
||||
public int getTerminalWidth() {
|
||||
return terminalWidth;
|
||||
}
|
||||
|
||||
public void setTerminalWidth(int terminalWidth) {
|
||||
this.terminalWidth = terminalWidth;
|
||||
}
|
||||
|
||||
public int getTerminalHeight() {
|
||||
return terminalHeight;
|
||||
}
|
||||
|
||||
public void setTerminalHeight(int terminalHeight) {
|
||||
this.terminalHeight = terminalHeight;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user