blob: 8616edfc96e114bf75525e7747602c7b2ed79d0c [file] [log] [blame]
/*
* 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.android.tools.idea.tests.gui.gradle;
import com.android.tools.idea.tests.gui.framework.BelongsToTestGroups;
import com.android.tools.idea.tests.gui.framework.GuiTestCase;
import com.android.tools.idea.tests.gui.framework.IdeGuiTest;
import com.android.tools.idea.tests.gui.framework.fixture.EditorFixture;
import com.android.tools.idea.tests.gui.framework.fixture.IdeFrameFixture;
import org.junit.Test;
import java.io.IOException;
import static com.android.tools.idea.tests.gui.framework.TestGroup.PROJECT_SUPPORT;
@BelongsToTestGroups({PROJECT_SUPPORT})
public class GradleEditNotifyTest extends GuiTestCase {
@Test @IdeGuiTest
public void testEditNotify() throws IOException {
// Edit a build.gradle file and ensure that you are immediately notified that
// the build.gradle model is out of date
// Regression test for https://code.google.com/p/android/issues/detail?id=75983
IdeFrameFixture projectFrame = importSimpleApplication();
EditorFixture editor = projectFrame.getEditor();
editor.open("app/build.gradle").waitUntilErrorAnalysisFinishes();
// When done and a successful gradle sync there should not be any messages
projectFrame.requireNoEditorNotification();
// Insert:
editor.moveTo(editor.findOffset("versionCode ", null, true))
.enterText("1");
// Sync:
projectFrame.requireEditorNotification("Gradle files have changed since last project sync").performAction("Sync Now");
projectFrame.waitForGradleProjectSyncToFinish()
.requireNoEditorNotification();
editor.invokeAction(EditorFixture.EditorAction.BACK_SPACE);
projectFrame.requireEditorNotification("Gradle files have changed since last project sync");
}
}