}
return new Statement() {
@Override
public void evaluate() throws Throwable {
OperaSettings currentSettings = test.getSettings();
OperaSettings newSettings = new OperaSettings();
newSettings.setIdle(annotation.idle());
newSettings.logging().setLevel(Level.parse(annotation.logLevel().toString()));
// We only need to restart the driver if the settings are different
if (currentSettings.useIdle() != newSettings.useIdle() ||
currentSettings.logging().getLevel() != newSettings.logging().getLevel()) {
test.setSettings(newSettings);
AbstractTestCase.removeDriver();
}
statement.evaluate();