blob: a442ddd273755b9ac49ce22d94e0b69b3f4b1a38 [file] [log] [blame]
// Copyright (C) 2015 The Android Open Source Project
//
// 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
//
// http://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 com.google.gerrit.acceptance.api.accounts;
import static com.google.common.truth.Truth.assertThat;
import static com.google.gerrit.acceptance.AssertUtil.assertPrefs;
import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.NoHttpd;
import com.google.gerrit.extensions.client.DiffPreferencesInfo;
import com.google.gerrit.extensions.client.DiffPreferencesInfo.Whitespace;
import org.junit.Test;
@NoHttpd
public class DiffPreferencesIT extends AbstractDaemonTest {
@Test
public void getDiffPreferences() throws Exception {
DiffPreferencesInfo d = DiffPreferencesInfo.defaults();
DiffPreferencesInfo o = gApi.accounts().id(admin.id().toString()).getDiffPreferences();
assertPrefs(o, d);
}
@Test
public void setDiffPreferences() throws Exception {
DiffPreferencesInfo i = DiffPreferencesInfo.defaults();
// change all default values
i.context *= -1;
i.tabSize *= -1;
i.fontSize *= -1;
i.lineLength *= -1;
i.cursorBlinkRate = 500;
i.ignoreWhitespace = Whitespace.IGNORE_ALL;
i.expandAllComments ^= true;
i.intralineDifference ^= true;
i.manualReview ^= true;
i.retainHeader ^= true;
i.showLineEndings ^= true;
i.showTabs ^= true;
i.showWhitespaceErrors ^= true;
i.skipDeleted ^= true;
i.skipUnchanged ^= true;
i.skipUncommented ^= true;
i.syntaxHighlighting ^= true;
i.hideTopMenu ^= true;
i.autoHideDiffTableHeader ^= true;
i.hideLineNumbers ^= true;
i.renderEntireFile ^= true;
i.hideEmptyPane ^= true;
i.matchBrackets ^= true;
i.lineWrapping ^= true;
DiffPreferencesInfo o = gApi.accounts().id(admin.id().toString()).setDiffPreferences(i);
assertPrefs(o, i);
// Partially fill input record
i = new DiffPreferencesInfo();
i.tabSize = 42;
DiffPreferencesInfo a = gApi.accounts().id(admin.id().toString()).setDiffPreferences(i);
assertPrefs(a, o, "tabSize");
assertThat(a.tabSize).isEqualTo(42);
}
@Test
public void getDiffPreferencesWithConfiguredDefaults() throws Exception {
DiffPreferencesInfo d = DiffPreferencesInfo.defaults();
int newLineLength = d.lineLength + 10;
int newTabSize = d.tabSize * 2;
int newFontSize = d.fontSize - 2;
DiffPreferencesInfo update = new DiffPreferencesInfo();
update.lineLength = newLineLength;
update.tabSize = newTabSize;
update.fontSize = newFontSize;
gApi.config().server().setDefaultDiffPreferences(update);
DiffPreferencesInfo o = gApi.accounts().id(admin.id().toString()).getDiffPreferences();
// assert configured defaults
assertThat(o.lineLength).isEqualTo(newLineLength);
assertThat(o.tabSize).isEqualTo(newTabSize);
assertThat(o.fontSize).isEqualTo(newFontSize);
// assert hard-coded defaults
assertPrefs(o, d, "lineLength", "tabSize", "fontSize");
}
@Test
public void overwriteConfiguredDefaults() throws Exception {
DiffPreferencesInfo d = DiffPreferencesInfo.defaults();
int configuredDefaultLineLength = d.lineLength + 10;
DiffPreferencesInfo update = new DiffPreferencesInfo();
update.lineLength = configuredDefaultLineLength;
gApi.config().server().setDefaultDiffPreferences(update);
DiffPreferencesInfo o = gApi.accounts().id(admin.id().toString()).getDiffPreferences();
assertThat(o.lineLength).isEqualTo(configuredDefaultLineLength);
assertPrefs(o, d, "lineLength");
int newLineLength = configuredDefaultLineLength + 10;
DiffPreferencesInfo i = new DiffPreferencesInfo();
i.lineLength = newLineLength;
DiffPreferencesInfo a = gApi.accounts().id(admin.id().toString()).setDiffPreferences(i);
assertThat(a.lineLength).isEqualTo(newLineLength);
assertPrefs(a, d, "lineLength");
a = gApi.accounts().id(admin.id().toString()).getDiffPreferences();
assertThat(a.lineLength).isEqualTo(newLineLength);
assertPrefs(a, d, "lineLength");
// overwrite the configured default with original hard-coded default
i = new DiffPreferencesInfo();
i.lineLength = d.lineLength;
a = gApi.accounts().id(admin.id().toString()).setDiffPreferences(i);
assertThat(a.lineLength).isEqualTo(d.lineLength);
assertPrefs(a, d, "lineLength");
a = gApi.accounts().id(admin.id().toString()).getDiffPreferences();
assertThat(a.lineLength).isEqualTo(d.lineLength);
assertPrefs(a, d, "lineLength");
}
}