/*
* Copyright (C) 2016 Federico Iosue (federico.iosue@gmail.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundatibehaon, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package it.feio.android.omninotes;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;
import com.robotium.solo.Solo;
import com.robotium.solo.Timeout;
import it.feio.android.omninotes.MainActivity;
import it.feio.android.omninotes.R;
import it.feio.android.omninotes.db.DbHelper;
import it.feio.android.omninotes.utils.Navigation;
public class NoteWithAudioAndCategory extends ActivityInstrumentationTestCase2<MainActivity> {
private Solo solo;
public NoteWithAudioAndCategory() {
super(MainActivity.class);
}
public void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation());
getActivity();
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
super.tearDown();
}
public void testCategory() {
//Wait for activity: 'it.feio.android.omninotes.MainActivity'
solo.waitForActivity(MainActivity.class, 2000);
//Set default small timeout to 19121 milliseconds
Timeout.setSmallTimeout(19121);
//Click on (1028.1432, 1752.0874)
solo.clickOnScreen(1028.1432F, 1752.0874F);
//Click on ImageView
solo.clickLongOnView(solo.getView(it.feio.android.omninotes.R.id.fab_expand_menu_button));
//Click on Empty Text View
solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.menu_attachment));
//Click on Record
solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.recording));
//Click on Stop
solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.recording));
//Click on Category menu
solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.menu_category));
//Add new category
solo.clickOnView(solo.getView(com.afollestad.materialdialogs.R.id.buttonDefaultPositive));
// Enter category name
solo.enterText((EditText) solo.getView(R.id.category_title), "cat123");
// Save category
solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.save));
//Click on up navigation
solo.clickOnView(solo.getView(android.widget.ImageButton.class, 0));
//Open navigation drawer
solo.clickOnView(solo.getView(android.widget.ImageButton.class, 0));
//Select category in navigation drawer
solo.clickInList(0, 2);
solo.sleep(800);
assertTrue(Navigation.checkNavigation(Navigation.CATEGORY));
//Open navigation drawer
solo.clickOnView(solo.getView(android.widget.ImageButton.class, 0));
//Select notes in navigation drawer
solo.clickInList(0, 1);
solo.sleep(800);
assertTrue(Navigation.checkNavigation(Navigation.NOTES));
// Category deletion
int categoriesCount = DbHelper.getInstance().getCategories().size();
//Open navigation drawer
solo.clickOnView(solo.getView(android.widget.ImageButton.class, 0));
//Long click on first category
solo.clickLongInList(0, 2);
//Delete category
solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.delete));
//Confirm deletion
solo.clickOnView(solo.getView(com.afollestad.materialdialogs.R.id.buttonDefaultPositive));
solo.sleep(500);
//Checks categories number decreased
assertEquals(DbHelper.getInstance().getCategories().size(), categoriesCount - 1);
}
}