public void ShareLibraryAndRemoveUserFromTeamTest()
        {
            Permission permission = new Permission(false, true, true, true);

            ConsoleMessage.StartTest("Share library with team and remove user from team", "ShareLibrary");
            //Login as Library owner and share a library with a Team
            Appium.Instance.Driver.LaunchApp();
            LoginActivity.LoginStep(_user1, _timeout);
            TabMenu.Library.Tap();
            LibraryActivity.LibraryList.FindAndTap(_baseLibrary);
            LibraryActivity.SelectAndShareLibrary(_baseLibrary, _shareName);
            LibraryShareDialog.ShareWithTeamStep(_team, permission);
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //Login as a Team member and verify user received the shared library
            LoginActivity.LoginStep(_user2, _timeout);
            CommonOperation.Delay(_loginDelay);
            TabMenu.Library.Tap();
            LibraryActivity.LibraryList.FindAndTap(_shareName);
            LibraryActivity.ElementList.VerifyElementCountById(1, "library_document_icon");
            TabMenu.Logout.Tap();

            //Login as Owner and add a new user to the team
            LoginActivity.LoginStep(_user1, _timeout);
            TabMenu.Teams.Tap();
            CommonOperation.Delay(2);
            TeamActivity.TeamList.FindAndTap(_team);
            TeamActivity.AddUserToTeam(_user3.Name);
            TeamActivity.TeamMemberList.VerifyElementCountById(3, "user_picture");
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //Login as new user and verify user received shared library
            LoginActivity.LoginStep(_user3, _timeout);
            CommonOperation.Delay(_loginDelay);
            TabMenu.Library.Tap();
            LibraryActivity.LibraryList.FindAndTap(_shareName);
            LibraryActivity.ElementList.VerifyElementCountById(1, "library_document_icon");
            TabMenu.Logout.Tap();

            //Login as Owner and remove the new user from the team
            LoginActivity.LoginStep(_user1, _timeout);
            TabMenu.Teams.Tap();
            CommonOperation.Delay(2);
            TeamActivity.TeamList.FindAndTap(_team);
            TeamActivity.RemoveUserFromTeam(_user3.Name);
            TeamActivity.TeamMemberList.VerifyElementCountById(2, "user_picture");
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //Login as new user and verify user does not have the shared library
            LoginActivity.LoginStep(_user3, _timeout);
            CommonOperation.Delay(_loginDelay);
            TabMenu.Library.Tap();
            LibraryActivity.VerifyLibraryNotExist(_shareName);
            TabMenu.Logout.Tap();
        }
        public void Unshare()
        {
            string     shareName  = string.Format("{0}=Unshare", _version);
            Permission permission = new Permission(true, true, true, true);

            ConsoleMessage.StartTest("Share library with user: Unshare", "ShareLibrary");
            //share on owner
            Appium.Instance.Driver.LaunchApp();
            LoginActivity.LoginStep(_user1, _timeout);
            TabMenu.Library.Tap();
            LibraryActivity.SelectAndShareLibrary(_baseLibrary, shareName);
            LibraryShareDialog.ShareWithUserStep(_team, _user2.Name, permission);
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //verify on recipient
            LoginActivity.LoginStep(_user2, _timeout);
            CommonOperation.Delay(_loginDelay);
            TabMenu.Library.Tap();
            LibraryActivity.LibraryList.FindAndTap(shareName);
            LibraryActivity.ElementList.VerifyElementCountById(20, "library_document_icon");
            TabMenu.Logout.Tap();

            //unshare on owner
            LoginActivity.LoginStep(_user1, _timeout);
            TabMenu.Library.Tap();
            LibraryActivity.LibraryList.FindAndTap(shareName);
            LibraryActivity.Permission.Tap();
            LibraryShareDialog.Unshare(_user2.Name);
            LibraryShareDialog.ShareWithList.VerifyElementCountById(0, "user_picture");
            LibraryShareDialog.Ok.Tap();
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //verify on recipient, library not exist
            LoginActivity.LoginStep(_user2, _timeout);
            CommonOperation.Delay(_loginDelay);
            TabMenu.Library.Tap();
            LibraryActivity.VerifyLibraryNotExist(shareName);
        }
        public void SingleLibraryTest()
        {
            ConsoleMessage.StartTest("Library test", "Library");
            Appium.Instance.Driver.LaunchApp();
            LoginActivity.LoginStep(_user, _timeout);
            TabMenu.Library.Tap();
            LibraryActivity.CreateLibrary(_library);
            //add
            foreach (var element in elements)
            {
                LibraryActivity.AddElement.Tap();
                LibraryElementActivity.ElementName.ClearText();
                LibraryElementActivity.ElementName.EnterText(element);
                LibraryElementActivity.Ok.Tap();
            }
            LibraryActivity.ElementList.VerifyElementCountById(3, "library_document_icon");
            //delete element
            LibraryActivity.ElementList.FindAndTap(element2);
            LibraryElementActivity.Delete.Tap();
            LibraryDeleteElementDialog.Delete.Tap();
            LibraryActivity.ElementList.VerifyElementCountById(2, "library_document_icon");
            //change element type
            LibraryActivity.ElementList.FindAndTap(element1);
            LibraryElementActivity.ElementType.Tap();
            ComboBoxItemDialog.FindAndTap("Operation");
            LibraryElementActivity.VerifyElementType("Operation");
            //add property
            LibraryElementActivity.AddProperty.Tap();
            LibraryPropertyDialog.PropertyName.EnterText("propName1");
            LibraryPropertyDialog.PropertyValue.EnterText("propValue1");
            LibraryPropertyDialog.PropertyType.Tap();
            ComboBoxItemDialog.FindAndTap("Text");
            LibraryPropertyDialog.VerifyPropertyType("Text");
            LibraryPropertyDialog.Ok.Tap();
            LibraryElementActivity.PropertyList.VerifyElementCountByClass(1, "android.widget.RelativeLayout");
            LibraryElementActivity.VerifyPropertyValue("propName1", "propValue1");
            //change property value
            LibraryElementActivity.OpenProperty("propName1");
            LibraryPropertyDialog.PropertyValue.EnterText("CanChange");
            LibraryPropertyDialog.Ok.Tap();
            LibraryElementActivity.VerifyPropertyValue("propName1", "CanChange");

            //add second property
            LibraryElementActivity.AddProperty.Tap();
            LibraryPropertyDialog.PropertyName.EnterText("propName2");
            LibraryPropertyDialog.PropertyValue.EnterText("propValue2");
            LibraryPropertyDialog.Required.Tap();
            LibraryPropertyDialog.Required.VerifyStatus(true);
            LibraryPropertyDialog.Ok.Tap();
            LibraryElementActivity.PropertyList.VerifyElementCountByClass(2, "android.widget.RelativeLayout");
            LibraryElementActivity.VerifyPropertyMarkAsRequired("propName2");

            //delete property
            LibraryElementActivity.DeleteProperty("propName1");
            LibraryElementActivity.PropertyList.VerifyElementCountByClass(1, "android.widget.RelativeLayout");
            LibraryElementActivity.DeleteProperty("propName2");
            LibraryElementActivity.PropertyList.VerifyElementCountByClass(0, "android.widget.RelativeLayout");

            //swap properies
            //add property
            LibraryElementActivity.AddProperty.Tap();
            LibraryPropertyDialog.PropertyName.EnterText("swap1");
            LibraryPropertyDialog.Ok.Tap();
            //add property
            LibraryElementActivity.AddProperty.Tap();
            LibraryPropertyDialog.PropertyName.EnterText("swap2");
            LibraryPropertyDialog.Ok.Tap();
            //add property
            LibraryElementActivity.AddProperty.Tap();
            LibraryPropertyDialog.PropertyName.EnterText("swap3");
            LibraryPropertyDialog.Ok.Tap();
            LibraryElementActivity.PropertyList.VerifyElementCountByClass(3, "android.widget.RelativeLayout");
            LibraryElementActivity.SwapProperty("swap1", "swap3");
            LibraryElementActivity.VerifyPropertyAtPosition(2, "swap1");
            LibraryElementActivity.Ok.Tap();
            LibraryActivity.DeleteLibrary.Tap();
            LibraryDeleteDialog.Delete.Tap();
            LibraryActivity.VerifyLibraryNotExist(_library);
        }