/*
* Copyright 2012 Johannes Barop
*
* 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 de.barop.gwt.client;
import static com.google.gwt.user.client.Window.Location.getQueryString;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
/**
*
* @author <a href="mailto:jb@barop.de">Johannes Barop</a>
*
*/
public class HistoryImplPushStateGwtTest extends AbstractPushStateTest {
String startPath;
@Override
protected void gwtSetUp() throws Exception {
super.gwtSetUp();
startPath = Window.Location.getPath() + getQueryString();
}
public void testInit() {
assertEquals(statesOnTestStart, states.size());
assertEquals(startPath, states.peek().url);
// remove the query string with the codeserver
String expectedHistoryToken = states.peek().url.substring(1).split("\\?")[0];
assertEquals(expectedHistoryToken, History.getToken());
}
public void testOnPopState() {
History.newItem("historyToken_1");
assertEquals(statesOnTestStart + 1, states.size());
assertEquals("/historyToken_1" + getQueryString(), states.peek().url);
assertEquals("historyToken_1", History.getToken());
History.newItem("historyToken_2");
assertEquals(statesOnTestStart + 2, states.size());
assertEquals("/historyToken_2" + getQueryString(), states.peek().url);
assertEquals("historyToken_2", History.getToken());
popState();
History.newItem("historyToken_1");
assertEquals(statesOnTestStart + 1, states.size());
assertEquals("/historyToken_1" + getQueryString(), states.peek().url);
assertEquals("historyToken_1", History.getToken());
}
}