blob: 95af486622a4afe6819c6356f38bf889c7550824 [file] [log] [blame]
/*
* Copyright (C) 2013 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.android.tools.idea.configurations;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.android.AndroidTestCase;
public class ConfigurationStateManagerTest extends AndroidTestCase {
public void test1() {
Project project = getProject();
assertNotNull(project);
ConfigurationStateManager manager = ConfigurationStateManager.get(project);
assertNotNull(manager);
assertSame(manager, ConfigurationStateManager.get(project));
manager.getProjectState().setLocale("en-rUS");
assertEquals("en-rUS", manager.getProjectState().getLocale());
ConfigurationStateManager.State firstState = manager.getState();
manager.setProjectState(new ConfigurationProjectState());
manager.getProjectState().setLocale("de");
assertEquals("de", manager.getProjectState().getLocale());
ConfigurationStateManager.State secondState = manager.getState();
manager.loadState(firstState);
assertEquals("en-rUS", manager.getProjectState().getLocale());
manager.loadState(secondState);
manager.getProjectState().setLocale("de");
assertTrue(manager.getProjectState().isPickTarget());
manager.getProjectState().setPickTarget(false);
assertFalse(manager.getProjectState().isPickTarget());
}
public void test2() {
Project project = getProject();
assertNotNull(project);
ConfigurationStateManager manager = ConfigurationStateManager.get(project);
assertNotNull(manager);
assertSame(manager, ConfigurationStateManager.get(project));
VirtualFile file = myFixture.copyFileToProject("xmlpull/layout.xml", "res/layout/layout.xml");
ConfigurationFileState configState1 = new ConfigurationFileState();
project.getProjectFilePath();
configState1.setTheme("@style/Theme.Holo.Light");
configState1.setDeviceState("port");
manager.setConfigurationState(file, configState1);
ConfigurationStateManager.State state1 = manager.getState();
ConfigurationFileState configState2 = new ConfigurationFileState();
configState2.setTheme("@style/Theme.Dialog");
configState2.setDeviceState("land");
manager.setConfigurationState(file, configState2);
ConfigurationStateManager.State state2 = manager.getState();
ConfigurationFileState retrievedState1 = manager.getConfigurationState(file);
assertNotNull(retrievedState1);
assertEquals("@style/Theme.Dialog", retrievedState1.getTheme());
assertEquals("land", retrievedState1.getDeviceState());
manager.loadState(state1);
ConfigurationFileState retrievedState2 = manager.getConfigurationState(file);
assertNotNull(retrievedState2);
assertEquals("@style/Theme.Holo.Light", retrievedState2.getTheme());
assertEquals("port", retrievedState2.getDeviceState());
assertNotSame(retrievedState1, configState1);
manager.loadState(state2);
ConfigurationFileState retrievedState3 = manager.getConfigurationState(file);
assertNotNull(retrievedState3);
assertEquals("@style/Theme.Dialog", retrievedState3.getTheme());
assertEquals("land", retrievedState3.getDeviceState());
}
}