ManagerBruteForce.java

1
/*******************************************************************************
2
 * Copyhacked (H) 2012-2025.
3
 * This program and the accompanying materials
4
 * are made available under no term at all, use it like
5
 * you want, but share and discuss it
6
 * every time possible with every body.
7
 *
8
 * Contributors:
9
 *      ron190 at ymail dot com - initial implementation
10
 ******************************************************************************/
11
package com.jsql.view.swing.manager;
12
13
import com.jsql.util.I18nUtil;
14
import com.jsql.util.bruter.ActionCoder;
15
import com.jsql.view.swing.manager.util.ActionBruteForce;
16
import com.jsql.view.swing.manager.util.JButtonStateful;
17
import com.jsql.view.swing.manager.util.ModelBrute;
18
import com.jsql.view.swing.manager.util.ModelSpinner;
19
import com.jsql.view.swing.panel.preferences.listener.SpinnerMouseWheelListener;
20
import com.jsql.view.swing.text.*;
21
import com.jsql.view.swing.util.I18nViewUtil;
22
import org.apache.commons.lang3.StringUtils;
23
24
import javax.swing.*;
25
import java.awt.*;
26
import java.util.Arrays;
27
import java.util.concurrent.atomic.AtomicReference;
28
29
/**
30
 * Manager to brute force a hash of various types.
31
 */
32
public class ManagerBruteForce extends JPanel {
33
34
    public static final String BRUTEFORCE_RUN_BUTTON_TOOLTIP = "BRUTEFORCE_RUN_BUTTON_TOOLTIP";
35
    public static final String BRUTEFORCE_HASH_TOOLTIP = "BRUTEFORCE_HASH_TOOLTIP";
36
    public static final String BRUTEFORCE_EXCLUDE_TOOLTIP = "BRUTEFORCE_EXCLUDE_TOOLTIP";
37
38
    private JButtonStateful run;
39
    private JTextField hash;
40
    private JComboBox<String> hashTypes;
41
    private final AtomicReference<JCheckBox> lowerCaseCharacters = new AtomicReference<>();
42
    private final AtomicReference<JCheckBox> upperCaseCharacters = new AtomicReference<>();
43
    private final AtomicReference<JCheckBox> numericCharacters = new AtomicReference<>();
44
    private final AtomicReference<JCheckBox> specialCharacters = new AtomicReference<>();
45
    private JTextField exclude;
46
    private final AtomicReference<JSpinner> minimumLength = new AtomicReference<>();
47
    private final AtomicReference<JSpinner> maximumLength = new AtomicReference<>();
48
    private final JTextPane result;
49
    
50
    /**
51
     * Animated GIF displayed during attack.
52
     */
53
    private JProgressBar progressBar;
54
    private final Component horizontalGlue = Box.createHorizontalGlue();
55
56
    /**
57
     * Create a panel to run brute force attack.
58
     */
59
    public ManagerBruteForce() {
60
        super(new BorderLayout());
61
62
        JPanel panelOptions = this.initOptionsPanel();
63 1 1. <init> : removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE
        this.add(panelOptions, BorderLayout.NORTH);
64
65
        var placeholder = new JTextPanePlaceholder(I18nUtil.valueByKey("BRUTEFORCE_RESULT"));
66
        this.result = new JPopupTextPane(placeholder).getProxy();
67 1 1. <init> : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_RESULT", placeholder);
68 1 1. <init> : removed call to javax/swing/JTextPane::setName → NO_COVERAGE
        this.result.setName("managerBruterResult");
69 1 1. <init> : removed call to javax/swing/JTextPane::setEditable → NO_COVERAGE
        this.result.setEditable(false);
70 1 1. <init> : removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE
        this.add(new JScrollPane(this.result), BorderLayout.CENTER);
71
72
        JPanel panelButton = this.initPanelButton();
73 1 1. <init> : removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE
        this.add(panelButton, BorderLayout.SOUTH);
74
    }
75
76
    private JPanel initPanelButton() {
77
        var lastLine = new JPanel();
78 1 1. initPanelButton : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE
        lastLine.setLayout(new BoxLayout(lastLine, BoxLayout.X_AXIS));
79
80
        var tooltip = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_RUN_BUTTON_TOOLTIP)));
81
        this.run = new JButtonStateful("BRUTEFORCE_RUN_BUTTON_LABEL") {
82
            @Override
83
            public JToolTip createToolTip() {
84 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$1::createToolTip → NO_COVERAGE
                return tooltip.get();
85
            }
86
        };
87 1 1. initPanelButton : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_RUN_BUTTON_LABEL", this.run);
88 1 1. initPanelButton : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey(ManagerBruteForce.BRUTEFORCE_RUN_BUTTON_TOOLTIP, tooltip.get());
89 1 1. initPanelButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setToolTipText → NO_COVERAGE
        this.run.setToolTipText(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_RUN_BUTTON_TOOLTIP));
90
91 1 1. initPanelButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::setName → NO_COVERAGE
        this.run.setName("managerBruterRun");
92 1 1. initPanelButton : removed call to com/jsql/view/swing/manager/util/JButtonStateful::addActionListener → NO_COVERAGE
        this.run.addActionListener(new ActionBruteForce(this));
93
94
        this.progressBar = new JProgressBar();
95 1 1. initPanelButton : removed call to javax/swing/JProgressBar::setIndeterminate → NO_COVERAGE
        this.progressBar.setIndeterminate(true);
96 1 1. initPanelButton : removed call to javax/swing/JProgressBar::setVisible → NO_COVERAGE
        this.progressBar.setVisible(false);
97 1 1. initPanelButton : removed call to javax/swing/JProgressBar::setBorder → NO_COVERAGE
        this.progressBar.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));
98
99
        lastLine.add(this.horizontalGlue);
100
        lastLine.add(this.progressBar);
101
        lastLine.add(this.run);
102 1 1. initPanelButton : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initPanelButton → NO_COVERAGE
        return lastLine;
103
    }
104
105
    public void showLoader(boolean isVisible) {
106 1 1. showLoader : removed call to javax/swing/JProgressBar::setVisible → NO_COVERAGE
        this.progressBar.setVisible(isVisible);
107 2 1. showLoader : removed call to java/awt/Component::setVisible → NO_COVERAGE
2. showLoader : negated conditional → NO_COVERAGE
        this.horizontalGlue.setVisible(!isVisible);
108
    }
109
110
    private JPanel initOptionsPanel() {
111
        var options = new JPanel(new BorderLayout());
112
        JPanel firstLine = this.initFirstLine();
113
        final JPanel secondLine = this.initSecondLine();
114
        JPanel thirdLine = this.initThirdLine();
115
        
116
        final var secondAndThirdLine = new JPanel(new BorderLayout());
117 1 1. initOptionsPanel : removed call to javax/swing/JPanel::add → NO_COVERAGE
        secondAndThirdLine.add(secondLine, BorderLayout.NORTH);
118 1 1. initOptionsPanel : removed call to javax/swing/JPanel::add → NO_COVERAGE
        secondAndThirdLine.add(thirdLine, BorderLayout.SOUTH);
119
120 1 1. initOptionsPanel : removed call to javax/swing/JPanel::add → NO_COVERAGE
        options.add(firstLine, BorderLayout.NORTH);
121 1 1. initOptionsPanel : removed call to javax/swing/JPanel::add → NO_COVERAGE
        options.add(secondAndThirdLine, BorderLayout.SOUTH);
122 1 1. initOptionsPanel : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initOptionsPanel → NO_COVERAGE
        return options;
123
    }
124
125
    private JPanel initFirstLine() {
126
        var tooltip = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_HASH_TOOLTIP)));
127
        var placeholder = new JTextFieldPlaceholder(I18nUtil.valueByKey("BRUTEFORCE_HASH_LABEL")) {
128
            @Override
129
            public JToolTip createToolTip() {
130 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$2::createToolTip → NO_COVERAGE
                return tooltip.get();
131
            }
132
        };
133
        this.hash = new JPopupTextField(placeholder).getProxy();
134 1 1. initFirstLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey(ManagerBruteForce.BRUTEFORCE_HASH_TOOLTIP, tooltip.get());
135 1 1. initFirstLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_HASH_LABEL", this.hash);
136 1 1. initFirstLine : removed call to javax/swing/JTextField::setName → NO_COVERAGE
        this.hash.setName("managerBruterHash");
137 1 1. initFirstLine : removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE
        this.hash.setToolTipText(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_HASH_TOOLTIP));
138
139
        var firstLine = new JPanel(new BorderLayout());
140 1 1. initFirstLine : removed call to javax/swing/JPanel::add → NO_COVERAGE
        firstLine.add(this.hash, BorderLayout.CENTER);
141 1 1. initFirstLine : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initFirstLine → NO_COVERAGE
        return firstLine;
142
    }
143
144
    private JPanel initSecondLine() {
145
        final var secondLine = new JPanel();
146 1 1. initSecondLine : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE
        secondLine.setLayout(new BoxLayout(secondLine, BoxLayout.X_AXIS));
147
148 1 1. lambda$initSecondLine$0 : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::lambda$initSecondLine$0 → NO_COVERAGE
        this.hashTypes = new JComboBox<>(ActionCoder.getHashes().toArray(String[]::new));
149 1 1. initSecondLine : removed call to javax/swing/JComboBox::setSelectedIndex → NO_COVERAGE
        this.hashTypes.setSelectedIndex(6);
150 1 1. initSecondLine : removed call to javax/swing/JComboBox::setToolTipText → NO_COVERAGE
        this.hashTypes.setToolTipText(I18nUtil.valueByKey("BRUTEFORCE_HASH_TYPE_TOOLTIP"));
151 1 1. initSecondLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_HASH_TYPE_TOOLTIP", this.hashTypes);
152
        secondLine.add(this.hashTypes);
153
154
        Arrays.asList(
155
            new ModelBrute(this.lowerCaseCharacters, "a-z", "BRUTEFORCE_LCASE_TOOLTIP"),
156
            new ModelBrute(this.upperCaseCharacters, "A-Z", "BRUTEFORCE_UCASE_TOOLTIP"),
157
            new ModelBrute(this.numericCharacters, "0-9", "BRUTEFORCE_NUM_TOOLTIP"),
158
            new ModelBrute(this.specialCharacters, "Special", "BRUTEFORCE_SPEC_TOOLTIP")
159 1 1. initSecondLine : removed call to java/util/List::forEach → NO_COVERAGE
        ).forEach(modelBrute -> {
160
            var tooltip = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(modelBrute.i18nTooltip)));
161 1 1. lambda$initSecondLine$1 : removed call to java/util/concurrent/atomic/AtomicReference::set → NO_COVERAGE
            modelBrute.checkbox.set(new JCheckBox(modelBrute.text, true) {
162
                @Override
163
                public JToolTip createToolTip() {
164 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$3::createToolTip → NO_COVERAGE
                    return tooltip.get();
165
                }
166
            });
167 1 1. lambda$initSecondLine$1 : removed call to javax/swing/JCheckBox::setToolTipText → NO_COVERAGE
            modelBrute.checkbox.get().setToolTipText(I18nUtil.valueByKey(modelBrute.i18nTooltip));
168 1 1. lambda$initSecondLine$1 : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
            I18nViewUtil.addComponentForKey(modelBrute.i18nTooltip, tooltip.get());
169
            secondLine.add(Box.createHorizontalStrut(5));
170
            secondLine.add(modelBrute.checkbox.get());
171
        });
172
173 1 1. initSecondLine : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initSecondLine → NO_COVERAGE
        return secondLine;
174
    }
175
176
    private JPanel initThirdLine() {
177
        var thirdLine = new JPanel();
178 1 1. initThirdLine : removed call to javax/swing/JPanel::setLayout → NO_COVERAGE
        thirdLine.setLayout(new BoxLayout(thirdLine, BoxLayout.X_AXIS));
179
180
        final var tooltip = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_EXCLUDE_TOOLTIP)));
181
        var placeholderTooltip = new JTextFieldPlaceholder(I18nUtil.valueByKey("BRUTEFORCE_EXCLUDE_LABEL")) {
182
            @Override
183
            public JToolTip createToolTip() {
184 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$4::createToolTip → NO_COVERAGE
                return tooltip.get();
185
            }
186
        };
187
        this.exclude = new JPopupTextField(placeholderTooltip).getProxy();
188 1 1. initThirdLine : removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE
        this.exclude.setToolTipText(I18nUtil.valueByKey(ManagerBruteForce.BRUTEFORCE_EXCLUDE_TOOLTIP));
189 1 1. initThirdLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_EXCLUDE_LABEL", this.exclude);
190 1 1. initThirdLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey(ManagerBruteForce.BRUTEFORCE_EXCLUDE_TOOLTIP, tooltip.get());
191
        thirdLine.add(this.exclude);
192
193
        Arrays.asList(
194
            new ModelSpinner(1, this.minimumLength, "BRUTEFORCE_MIN_TOOLTIP"),
195
            new ModelSpinner(5, this.maximumLength, "BRUTEFORCE_MAX_TOOLTIP")
196 1 1. initThirdLine : removed call to java/util/List::forEach → NO_COVERAGE
        ).forEach(model -> {
197
            final var tooltipMax = new AtomicReference<>(new JToolTipI18n(I18nUtil.valueByKey(model.i18n)));
198 1 1. lambda$initThirdLine$2 : removed call to java/util/concurrent/atomic/AtomicReference::set → NO_COVERAGE
            model.spinner.set(new JSpinner() {
199
                @Override
200
                public JToolTip createToolTip() {
201 1 1. createToolTip : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$5::createToolTip → NO_COVERAGE
                    return tooltipMax.get();
202
                }
203
            });
204 1 1. lambda$initThirdLine$2 : removed call to javax/swing/JSpinner::setModel → NO_COVERAGE
            model.spinner.get().setModel(new SpinnerNumberModel(model.value, 1, 10000, 1));
205 1 1. lambda$initThirdLine$2 : removed call to javax/swing/JSpinner::addMouseWheelListener → NO_COVERAGE
            model.spinner.get().addMouseWheelListener(new SpinnerMouseWheelListener());
206 1 1. lambda$initThirdLine$2 : removed call to javax/swing/JSpinner::setToolTipText → NO_COVERAGE
            model.spinner.get().setToolTipText(I18nUtil.valueByKey(model.i18n));
207 1 1. lambda$initThirdLine$2 : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
            I18nViewUtil.addComponentForKey(model.i18n, tooltipMax.get());
208 1 1. lambda$initThirdLine$2 : removed call to javax/swing/JSpinner::setPreferredSize → NO_COVERAGE
            model.spinner.get().setPreferredSize(new Dimension(
209 1 1. lambda$initThirdLine$2 : Replaced double division with multiplication → NO_COVERAGE
                (int) (model.spinner.get().getPreferredSize().width/1.8),
210
                model.spinner.get().getPreferredSize().height
211
            ));
212
        });
213
214
        var labelMin = new JLabel(StringUtils.SPACE + I18nUtil.valueByKey("BRUTEFORCE_MIN_LABEL"), SwingConstants.RIGHT);
215 1 1. initThirdLine : removed call to javax/swing/JLabel::setMaximumSize → NO_COVERAGE
        labelMin.setMaximumSize(new Dimension(labelMin.getPreferredSize().width, labelMin.getPreferredSize().height));
216
        thirdLine.add(Box.createHorizontalStrut(5));
217
        thirdLine.add(labelMin);
218 1 1. initThirdLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_MIN_LABEL", labelMin);
219
        thirdLine.add(this.minimumLength.get());
220
221
        var labelMax = new JLabel(StringUtils.SPACE + I18nUtil.valueByKey("BRUTEFORCE_MAX_LABEL"), SwingConstants.RIGHT);
222 1 1. initThirdLine : removed call to javax/swing/JLabel::setMaximumSize → NO_COVERAGE
        labelMax.setMaximumSize(new Dimension(labelMax.getPreferredSize().width, labelMax.getPreferredSize().height));
223
        thirdLine.add(Box.createHorizontalStrut(5));
224
        thirdLine.add(labelMax);
225 1 1. initThirdLine : removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE
        I18nViewUtil.addComponentForKey("BRUTEFORCE_MAX_LABEL", labelMax);
226
        thirdLine.add(this.maximumLength.get());
227 1 1. initThirdLine : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initThirdLine → NO_COVERAGE
        return thirdLine;
228
    }
229
230
    
231
    // Getter and setter
232
233
    public JButtonStateful getRun() {
234 1 1. getRun : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getRun → NO_COVERAGE
        return this.run;
235
    }
236
237
    public JTextField getHash() {
238 1 1. getHash : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getHash → NO_COVERAGE
        return this.hash;
239
    }
240
241
    public JComboBox<String> getHashTypes() {
242 1 1. getHashTypes : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getHashTypes → NO_COVERAGE
        return this.hashTypes;
243
    }
244
245
    public JCheckBox getLowerCaseCharacters() {
246 1 1. getLowerCaseCharacters : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getLowerCaseCharacters → NO_COVERAGE
        return this.lowerCaseCharacters.get();
247
    }
248
249
    public JCheckBox getUpperCaseCharacters() {
250 1 1. getUpperCaseCharacters : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getUpperCaseCharacters → NO_COVERAGE
        return this.upperCaseCharacters.get();
251
    }
252
253
    public JCheckBox getNumericCharacters() {
254 1 1. getNumericCharacters : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getNumericCharacters → NO_COVERAGE
        return this.numericCharacters.get();
255
    }
256
257
    public JCheckBox getSpecialCharacters() {
258 1 1. getSpecialCharacters : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getSpecialCharacters → NO_COVERAGE
        return this.specialCharacters.get();
259
    }
260
261
    public JTextField getExclude() {
262 1 1. getExclude : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getExclude → NO_COVERAGE
        return this.exclude;
263
    }
264
265
    public JSpinner getMinimumLength() {
266 1 1. getMinimumLength : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getMinimumLength → NO_COVERAGE
        return this.minimumLength.get();
267
    }
268
269
    public JSpinner getMaximumLength() {
270 1 1. getMaximumLength : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getMaximumLength → NO_COVERAGE
        return this.maximumLength.get();
271
    }
272
273
    public JTextPane getResult() {
274 1 1. getResult : replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getResult → NO_COVERAGE
        return this.result;
275
    }
276
}

Mutations

63

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE

67

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

68

1.1
Location : <init>
Killed by : none
removed call to javax/swing/JTextPane::setName → NO_COVERAGE

69

1.1
Location : <init>
Killed by : none
removed call to javax/swing/JTextPane::setEditable → NO_COVERAGE

70

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE

73

1.1
Location : <init>
Killed by : none
removed call to com/jsql/view/swing/manager/ManagerBruteForce::add → NO_COVERAGE

78

1.1
Location : initPanelButton
Killed by : none
removed call to javax/swing/JPanel::setLayout → NO_COVERAGE

84

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$1::createToolTip → NO_COVERAGE

87

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

88

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

89

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setToolTipText → NO_COVERAGE

91

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::setName → NO_COVERAGE

92

1.1
Location : initPanelButton
Killed by : none
removed call to com/jsql/view/swing/manager/util/JButtonStateful::addActionListener → NO_COVERAGE

95

1.1
Location : initPanelButton
Killed by : none
removed call to javax/swing/JProgressBar::setIndeterminate → NO_COVERAGE

96

1.1
Location : initPanelButton
Killed by : none
removed call to javax/swing/JProgressBar::setVisible → NO_COVERAGE

97

1.1
Location : initPanelButton
Killed by : none
removed call to javax/swing/JProgressBar::setBorder → NO_COVERAGE

102

1.1
Location : initPanelButton
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initPanelButton → NO_COVERAGE

106

1.1
Location : showLoader
Killed by : none
removed call to javax/swing/JProgressBar::setVisible → NO_COVERAGE

107

1.1
Location : showLoader
Killed by : none
removed call to java/awt/Component::setVisible → NO_COVERAGE

2.2
Location : showLoader
Killed by : none
negated conditional → NO_COVERAGE

117

1.1
Location : initOptionsPanel
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

118

1.1
Location : initOptionsPanel
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

120

1.1
Location : initOptionsPanel
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

121

1.1
Location : initOptionsPanel
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

122

1.1
Location : initOptionsPanel
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initOptionsPanel → NO_COVERAGE

130

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$2::createToolTip → NO_COVERAGE

134

1.1
Location : initFirstLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

135

1.1
Location : initFirstLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

136

1.1
Location : initFirstLine
Killed by : none
removed call to javax/swing/JTextField::setName → NO_COVERAGE

137

1.1
Location : initFirstLine
Killed by : none
removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE

140

1.1
Location : initFirstLine
Killed by : none
removed call to javax/swing/JPanel::add → NO_COVERAGE

141

1.1
Location : initFirstLine
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initFirstLine → NO_COVERAGE

146

1.1
Location : initSecondLine
Killed by : none
removed call to javax/swing/JPanel::setLayout → NO_COVERAGE

148

1.1
Location : lambda$initSecondLine$0
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::lambda$initSecondLine$0 → NO_COVERAGE

149

1.1
Location : initSecondLine
Killed by : none
removed call to javax/swing/JComboBox::setSelectedIndex → NO_COVERAGE

150

1.1
Location : initSecondLine
Killed by : none
removed call to javax/swing/JComboBox::setToolTipText → NO_COVERAGE

151

1.1
Location : initSecondLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

159

1.1
Location : initSecondLine
Killed by : none
removed call to java/util/List::forEach → NO_COVERAGE

161

1.1
Location : lambda$initSecondLine$1
Killed by : none
removed call to java/util/concurrent/atomic/AtomicReference::set → NO_COVERAGE

164

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$3::createToolTip → NO_COVERAGE

167

1.1
Location : lambda$initSecondLine$1
Killed by : none
removed call to javax/swing/JCheckBox::setToolTipText → NO_COVERAGE

168

1.1
Location : lambda$initSecondLine$1
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

173

1.1
Location : initSecondLine
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initSecondLine → NO_COVERAGE

178

1.1
Location : initThirdLine
Killed by : none
removed call to javax/swing/JPanel::setLayout → NO_COVERAGE

184

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$4::createToolTip → NO_COVERAGE

188

1.1
Location : initThirdLine
Killed by : none
removed call to javax/swing/JTextField::setToolTipText → NO_COVERAGE

189

1.1
Location : initThirdLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

190

1.1
Location : initThirdLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

196

1.1
Location : initThirdLine
Killed by : none
removed call to java/util/List::forEach → NO_COVERAGE

198

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to java/util/concurrent/atomic/AtomicReference::set → NO_COVERAGE

201

1.1
Location : createToolTip
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce$5::createToolTip → NO_COVERAGE

204

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to javax/swing/JSpinner::setModel → NO_COVERAGE

205

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to javax/swing/JSpinner::addMouseWheelListener → NO_COVERAGE

206

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to javax/swing/JSpinner::setToolTipText → NO_COVERAGE

207

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

208

1.1
Location : lambda$initThirdLine$2
Killed by : none
removed call to javax/swing/JSpinner::setPreferredSize → NO_COVERAGE

209

1.1
Location : lambda$initThirdLine$2
Killed by : none
Replaced double division with multiplication → NO_COVERAGE

215

1.1
Location : initThirdLine
Killed by : none
removed call to javax/swing/JLabel::setMaximumSize → NO_COVERAGE

218

1.1
Location : initThirdLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

222

1.1
Location : initThirdLine
Killed by : none
removed call to javax/swing/JLabel::setMaximumSize → NO_COVERAGE

225

1.1
Location : initThirdLine
Killed by : none
removed call to com/jsql/view/swing/util/I18nViewUtil::addComponentForKey → NO_COVERAGE

227

1.1
Location : initThirdLine
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::initThirdLine → NO_COVERAGE

234

1.1
Location : getRun
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getRun → NO_COVERAGE

238

1.1
Location : getHash
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getHash → NO_COVERAGE

242

1.1
Location : getHashTypes
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getHashTypes → NO_COVERAGE

246

1.1
Location : getLowerCaseCharacters
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getLowerCaseCharacters → NO_COVERAGE

250

1.1
Location : getUpperCaseCharacters
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getUpperCaseCharacters → NO_COVERAGE

254

1.1
Location : getNumericCharacters
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getNumericCharacters → NO_COVERAGE

258

1.1
Location : getSpecialCharacters
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getSpecialCharacters → NO_COVERAGE

262

1.1
Location : getExclude
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getExclude → NO_COVERAGE

266

1.1
Location : getMinimumLength
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getMinimumLength → NO_COVERAGE

270

1.1
Location : getMaximumLength
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getMaximumLength → NO_COVERAGE

274

1.1
Location : getResult
Killed by : none
replaced return value with null for com/jsql/view/swing/manager/ManagerBruteForce::getResult → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.19.1