/* * Copyright (C) 2012 Square, Inc. * * 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 okhttp3.internal.http2; import org.junit.Test; import static okhttp3.internal.http2.Settings.DEFAULT_INITIAL_WINDOW_SIZE; import static okhttp3.internal.http2.Settings.MAX_CONCURRENT_STREAMS; import static org.junit.Assert.assertEquals; public final class SettingsTest { @Test public void unsetField() { Settings settings = new Settings(); assertEquals(-3, settings.getMaxConcurrentStreams(-3)); } @Test public void setFields() { Settings settings = new Settings(); settings.set(Settings.HEADER_TABLE_SIZE, 8096); assertEquals(8096, settings.getHeaderTableSize()); assertEquals(true, settings.getEnablePush(true)); settings.set(Settings.ENABLE_PUSH, 1); assertEquals(true, settings.getEnablePush(false)); settings.clear(); assertEquals(-3, settings.getMaxConcurrentStreams(-3)); settings.set(MAX_CONCURRENT_STREAMS, 75); assertEquals(75, settings.getMaxConcurrentStreams(-3)); settings.clear(); assertEquals(16384, settings.getMaxFrameSize(16384)); settings.set(Settings.MAX_FRAME_SIZE, 16777215); assertEquals(16777215, settings.getMaxFrameSize(16384)); assertEquals(-1, settings.getMaxHeaderListSize(-1)); settings.set(Settings.MAX_HEADER_LIST_SIZE, 16777215); assertEquals(16777215, settings.getMaxHeaderListSize(-1)); assertEquals(DEFAULT_INITIAL_WINDOW_SIZE, settings.getInitialWindowSize()); settings.set(Settings.INITIAL_WINDOW_SIZE, 108); assertEquals(108, settings.getInitialWindowSize()); } @Test public void merge() { Settings a = new Settings(); a.set(Settings.HEADER_TABLE_SIZE, 10000); a.set(Settings.MAX_HEADER_LIST_SIZE, 20000); a.set(Settings.INITIAL_WINDOW_SIZE, 30000); Settings b = new Settings(); b.set(Settings.MAX_HEADER_LIST_SIZE, 40000); b.set(Settings.INITIAL_WINDOW_SIZE, 50000); b.set(Settings.MAX_CONCURRENT_STREAMS, 60000); a.merge(b); assertEquals(10000, a.getHeaderTableSize()); assertEquals(40000, a.getMaxHeaderListSize(-1)); assertEquals(50000, a.getInitialWindowSize()); assertEquals(60000, a.getMaxConcurrentStreams(-1)); } }