summaryrefslogtreecommitdiff
path: root/android/testData
diff options
context:
space:
mode:
authorAlex Ruiz <alruiz@google.com>2014-08-08 15:00:01 -0700
committerAlex Ruiz <alruiz@google.com>2014-08-11 06:24:23 -0700
commit554a3eb27100e45adb24a74cdb2ccc55939bdea7 (patch)
treed88f036b7919b6891198833e15577fa43f72207b /android/testData
parentb144cfadf082c871ce60650fef0244291b572c83 (diff)
downloadidea-554a3eb27100e45adb24a74cdb2ccc55939bdea7.tar.gz
Fixed bug where AssertionError was thrown for project with custom location of build folder.
The problem is that when locating the content root parent of the build folder, the check assumed that the folder was already created, which is not always the case. For example, when importing a project that has not been built, the build folder does not exist. In this CL we check that if the build folder does not exist, we use the URL of the folder specified in the content root to derive the path of the build folder, this way we can properly set up the project "excluded" folders during project sync. This CL also includes a UI test and a project that reproduces this issue: CentralBuildDirectoryTest and CentralBuildDirectory, respectively. Fixes issue https://code.google.com/p/android/issues/detail?id=74259 Change-Id: If3eedf43c6eb86581dec815e16486211ea10f196
Diffstat (limited to 'android/testData')
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/.gitignore10
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/.gitignore1
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/build.gradle26
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/proguard-rules.pro17
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/androidTest/java/com/android/centralizebuilddirectory/ApplicationTest.java13
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/main/AndroidManifest.xml21
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/main/java/com/android/centralizebuilddirectory/MyActivity.java36
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/main/res/drawable/ic_launcher.xml2
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/main/res/layout/activity_my.xml16
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/main/res/menu/my.xml8
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values-w820dp/dimens.xml6
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/dimens.xml5
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/strings.xml8
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/styles.xml8
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/build.gradle19
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/gradle.properties18
-rw-r--r--android/testData/guiTests/CentralBuildDirectory/settings.gradle1
17 files changed, 215 insertions, 0 deletions
diff --git a/android/testData/guiTests/CentralBuildDirectory/.gitignore b/android/testData/guiTests/CentralBuildDirectory/.gitignore
new file mode 100644
index 00000000000..46326953812
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/.gitignore
@@ -0,0 +1,10 @@
+.gradle
+/gradle
+/local.properties
+/.idea
+.DS_Store
+/build
+gradlew
+gradlew.bat
+*.iml
+/central
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/.gitignore b/android/testData/guiTests/CentralBuildDirectory/app/.gitignore
new file mode 100644
index 00000000000..796b96d1c40
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/build.gradle b/android/testData/guiTests/CentralBuildDirectory/app/build.gradle
new file mode 100644
index 00000000000..41f3fad7012
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/build.gradle
@@ -0,0 +1,26 @@
+apply plugin: 'com.android.application'
+
+buildDir = new File(rootProject.getBuildDir().getParentFile(), "central" + File.separator + "build");
+
+android {
+ compileSdkVersion 20
+ buildToolsVersion "19.1.0"
+
+ defaultConfig {
+ applicationId "com.android.central.build.directory"
+ minSdkVersion 19
+ targetSdkVersion 20
+ versionCode 1
+ versionName "1.0"
+ }
+ buildTypes {
+ release {
+ runProguard false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+}
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/proguard-rules.pro b/android/testData/guiTests/CentralBuildDirectory/app/proguard-rules.pro
new file mode 100644
index 00000000000..e2f6a3ded07
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/proguard-rules.pro
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /Applications/adt-bundle-mac-x86_64-20131030/sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/androidTest/java/com/android/centralizebuilddirectory/ApplicationTest.java b/android/testData/guiTests/CentralBuildDirectory/app/src/androidTest/java/com/android/centralizebuilddirectory/ApplicationTest.java
new file mode 100644
index 00000000000..2a32f82353c
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/androidTest/java/com/android/centralizebuilddirectory/ApplicationTest.java
@@ -0,0 +1,13 @@
+package com.android.centralizebuilddirectory;
+
+import android.app.Application;
+import android.test.ApplicationTestCase;
+
+/**
+ * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
+ */
+public class ApplicationTest extends ApplicationTestCase<Application> {
+ public ApplicationTest() {
+ super(Application.class);
+ }
+} \ No newline at end of file
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/main/AndroidManifest.xml b/android/testData/guiTests/CentralBuildDirectory/app/src/main/AndroidManifest.xml
new file mode 100644
index 00000000000..2a05b7c3956
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/main/AndroidManifest.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.centralizebuilddirectory" >
+
+ <application
+ android:allowBackup="true"
+ android:icon="@drawable/ic_launcher"
+ android:label="@string/app_name"
+ android:theme="@style/AppTheme" >
+ <activity
+ android:name=".MyActivity"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest>
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/main/java/com/android/centralizebuilddirectory/MyActivity.java b/android/testData/guiTests/CentralBuildDirectory/app/src/main/java/com/android/centralizebuilddirectory/MyActivity.java
new file mode 100644
index 00000000000..1ae12be648e
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/main/java/com/android/centralizebuilddirectory/MyActivity.java
@@ -0,0 +1,36 @@
+package com.android.centralizebuilddirectory;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+
+
+public class MyActivity extends Activity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_my);
+ }
+
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.my, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle action bar item clicks here. The action bar will
+ // automatically handle clicks on the Home/Up button, so long
+ // as you specify a parent activity in AndroidManifest.xml.
+ int id = item.getItemId();
+ if (id == R.id.action_settings) {
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+}
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/drawable/ic_launcher.xml b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/drawable/ic_launcher.xml
new file mode 100644
index 00000000000..bebd9834a0e
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/drawable/ic_launcher.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<color xmlns:android="http://schemas.android.com/apk/res/android" android:color="#ff0000" />
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/layout/activity_my.xml b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/layout/activity_my.xml
new file mode 100644
index 00000000000..c17166f4d34
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/layout/activity_my.xml
@@ -0,0 +1,16 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context=".MyActivity">
+
+ <TextView
+ android:text="@string/hello_world"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+</RelativeLayout>
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/menu/my.xml b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/menu/my.xml
new file mode 100644
index 00000000000..bea58cc00be
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/menu/my.xml
@@ -0,0 +1,8 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ tools:context=".MyActivity" >
+ <item android:id="@+id/action_settings"
+ android:title="@string/action_settings"
+ android:orderInCategory="100"
+ android:showAsAction="never" />
+</menu>
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values-w820dp/dimens.xml b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values-w820dp/dimens.xml
new file mode 100644
index 00000000000..63fc8164446
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values-w820dp/dimens.xml
@@ -0,0 +1,6 @@
+<resources>
+ <!-- Example customization of dimensions originally defined in res/values/dimens.xml
+ (such as screen margins) for screens with more than 820dp of available width. This
+ would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
+ <dimen name="activity_horizontal_margin">64dp</dimen>
+</resources>
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/dimens.xml b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/dimens.xml
new file mode 100644
index 00000000000..47c82246738
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/dimens.xml
@@ -0,0 +1,5 @@
+<resources>
+ <!-- Default screen margins, per the Android Design guidelines. -->
+ <dimen name="activity_horizontal_margin">16dp</dimen>
+ <dimen name="activity_vertical_margin">16dp</dimen>
+</resources>
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/strings.xml b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/strings.xml
new file mode 100644
index 00000000000..d9e014d6c7d
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">CentralizeBuildDirectory</string>
+ <string name="hello_world">Hello world!</string>
+ <string name="action_settings">Settings</string>
+
+</resources>
diff --git a/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/styles.xml b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/styles.xml
new file mode 100644
index 00000000000..ff6c9d2c0fb
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/app/src/main/res/values/styles.xml
@@ -0,0 +1,8 @@
+<resources>
+
+ <!-- Base application theme. -->
+ <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
+ <!-- Customize your theme here. -->
+ </style>
+
+</resources>
diff --git a/android/testData/guiTests/CentralBuildDirectory/build.gradle b/android/testData/guiTests/CentralBuildDirectory/build.gradle
new file mode 100644
index 00000000000..9b8abe4fe13
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/build.gradle
@@ -0,0 +1,19 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:0.12.2'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ }
+}
diff --git a/android/testData/guiTests/CentralBuildDirectory/gradle.properties b/android/testData/guiTests/CentralBuildDirectory/gradle.properties
new file mode 100644
index 00000000000..5d08ba75bb9
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Settings specified in this file will override any Gradle settings
+# configured through the IDE.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# Default value: -Xmx10248m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true \ No newline at end of file
diff --git a/android/testData/guiTests/CentralBuildDirectory/settings.gradle b/android/testData/guiTests/CentralBuildDirectory/settings.gradle
new file mode 100644
index 00000000000..e7b4def49cb
--- /dev/null
+++ b/android/testData/guiTests/CentralBuildDirectory/settings.gradle
@@ -0,0 +1 @@
+include ':app'