|  | // Copyright (C) 2014 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 com.google.gerrit.acceptance.AbstractDaemonTest; | 
|  | import com.google.gerrit.acceptance.NoHttpd; | 
|  | import com.google.gerrit.extensions.client.EditPreferencesInfo; | 
|  | import com.google.gerrit.extensions.client.KeyMapType; | 
|  | import com.google.gerrit.extensions.client.Theme; | 
|  | import org.junit.Test; | 
|  |  | 
|  | @NoHttpd | 
|  | public class EditPreferencesIT extends AbstractDaemonTest { | 
|  | @Test | 
|  | public void getSetEditPreferences() throws Exception { | 
|  | EditPreferencesInfo out = gApi.accounts().id(admin.getId().toString()).getEditPreferences(); | 
|  |  | 
|  | assertThat(out.lineLength).isEqualTo(100); | 
|  | assertThat(out.indentUnit).isEqualTo(2); | 
|  | assertThat(out.tabSize).isEqualTo(8); | 
|  | assertThat(out.cursorBlinkRate).isEqualTo(0); | 
|  | assertThat(out.hideTopMenu).isNull(); | 
|  | assertThat(out.showTabs).isTrue(); | 
|  | assertThat(out.showWhitespaceErrors).isNull(); | 
|  | assertThat(out.syntaxHighlighting).isTrue(); | 
|  | assertThat(out.hideLineNumbers).isNull(); | 
|  | assertThat(out.matchBrackets).isTrue(); | 
|  | assertThat(out.lineWrapping).isNull(); | 
|  | assertThat(out.indentWithTabs).isNull(); | 
|  | assertThat(out.autoCloseBrackets).isNull(); | 
|  | assertThat(out.showBase).isNull(); | 
|  | assertThat(out.theme).isEqualTo(Theme.DEFAULT); | 
|  | assertThat(out.keyMapType).isEqualTo(KeyMapType.DEFAULT); | 
|  |  | 
|  | // change some default values | 
|  | out.lineLength = 80; | 
|  | out.indentUnit = 4; | 
|  | out.tabSize = 4; | 
|  | out.cursorBlinkRate = 500; | 
|  | out.hideTopMenu = true; | 
|  | out.showTabs = false; | 
|  | out.showWhitespaceErrors = true; | 
|  | out.syntaxHighlighting = false; | 
|  | out.hideLineNumbers = true; | 
|  | out.matchBrackets = false; | 
|  | out.lineWrapping = true; | 
|  | out.indentWithTabs = true; | 
|  | out.autoCloseBrackets = true; | 
|  | out.showBase = true; | 
|  | out.theme = Theme.TWILIGHT; | 
|  | out.keyMapType = KeyMapType.EMACS; | 
|  |  | 
|  | EditPreferencesInfo info = gApi.accounts().id(admin.getId().toString()).setEditPreferences(out); | 
|  |  | 
|  | assertEditPreferences(info, out); | 
|  |  | 
|  | // Partially filled input record | 
|  | EditPreferencesInfo in = new EditPreferencesInfo(); | 
|  | in.tabSize = 42; | 
|  |  | 
|  | info = gApi.accounts().id(admin.getId().toString()).setEditPreferences(in); | 
|  |  | 
|  | out.tabSize = in.tabSize; | 
|  | assertEditPreferences(info, out); | 
|  | } | 
|  |  | 
|  | private void assertEditPreferences(EditPreferencesInfo out, EditPreferencesInfo in) | 
|  | throws Exception { | 
|  | assertThat(out.lineLength).isEqualTo(in.lineLength); | 
|  | assertThat(out.indentUnit).isEqualTo(in.indentUnit); | 
|  | assertThat(out.tabSize).isEqualTo(in.tabSize); | 
|  | assertThat(out.cursorBlinkRate).isEqualTo(in.cursorBlinkRate); | 
|  | assertThat(out.hideTopMenu).isEqualTo(in.hideTopMenu); | 
|  | assertThat(out.showTabs).isNull(); | 
|  | assertThat(out.showWhitespaceErrors).isEqualTo(in.showWhitespaceErrors); | 
|  | assertThat(out.syntaxHighlighting).isNull(); | 
|  | assertThat(out.hideLineNumbers).isEqualTo(in.hideLineNumbers); | 
|  | assertThat(out.matchBrackets).isNull(); | 
|  | assertThat(out.lineWrapping).isEqualTo(in.lineWrapping); | 
|  | assertThat(out.indentWithTabs).isEqualTo(in.indentWithTabs); | 
|  | assertThat(out.autoCloseBrackets).isEqualTo(in.autoCloseBrackets); | 
|  | assertThat(out.showBase).isEqualTo(in.showBase); | 
|  | assertThat(out.theme).isEqualTo(in.theme); | 
|  | assertThat(out.keyMapType).isEqualTo(in.keyMapType); | 
|  | } | 
|  | } |