public bool OnNavigationItemSelected(IMenuItem item)
        {
            int id = item.ItemId;

            if (id == Resource.Id.nav_gallery)
            {
                Intent intent = new Intent(this, typeof(Home));
                StartActivity(intent);
            }
            else if (id == Resource.Id.nav_uploaded)
            {
                Intent intent = new Intent(this, typeof(UploadedImages));
                StartActivity(intent);
            }
            else if (id == Resource.Id.nav_search)
            {
                return(false);
            }
            else if (id == Resource.Id.nav_favorites)
            {
                Intent intent = new Intent(this, typeof(FavoriteActivity));
                StartActivity(intent);
            }
            else if (id == Resource.Id.nav_disconnect)
            {
                LoginActivity.Disconnect();
                Intent intent = new Intent(this, typeof(LoginActivity));
                StartActivity(intent);
                FinishAffinity();
            }
            DrawerLayout drawer = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);

            drawer.CloseDrawer(GravityCompat.Start);
            return(true);
        }
        public void ShareAsasyWithUserTest()
        {
            Permission permission = new Permission(true, true, true, true);

            ConsoleMessage.StartTest("Share assay with user", "ShareAssay");
            Appium.Instance.Driver.LaunchApp();
            LoginActivity.LoginStep(_user1, _timeout);
            BrowserActivity.CreateAssay(_assay);
            BrowserActivity.CreateFlow(_flow);
            BrowserActivity.FlowList.FindAndTap(_flow);
            FlowActivity.AddElement(element1);
            FlowActivity.ElementList.VerifyElementCountByClass(1, "android.widget.EditText");
            TabMenu.Browser.Tap();
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.ShareAssay.Tap();
            AssayShareDialog.ShareWithUserStep(_team, _user2.Name, permission);
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //verify shared assay
            LoginActivity.LoginStep(_user2, _timeout);
            CommonOperation.Delay(_loginDelay);
            BrowserActivity.AssayList.FindAndTap("Shared With: " + _user1.Name);
            BrowserActivity.FlowList.FindAndTap(_assay);
            BrowserActivity.FlowList.FindAndTap(_flow);
            FlowActivity.ElementList.VerifyElementCountByClass(1, "android.widget.EditText");
            TabMenu.Logout.Tap();
        }
        public void GlobalTestSetup()
        {
            _teamName    = Settings.Instance.Team;
            _initTimeout = Settings.Instance.InitTimeout;
            _timeout     = Settings.Instance.LoginTimeout;
            ExcelReport excel =
                new ExcelReport(TestContext.CurrentContext.TestDirectory + "\\" + Settings.Instance.Version + "-outPut");

            try
            {
                //init login
                ConsoleMessage.StartTest("Global Setup", "GlobalSetup");
                Appium.Instance.Driver.LaunchApp();
                LoginActivity.LoginStep(Settings.Instance.User1, _initTimeout);
                TabMenu.Logout.Tap();
                LoginActivity.LoginStep(Settings.Instance.User2, _initTimeout);
                TabMenu.Logout.Tap();
                LoginActivity.LoginStep(Settings.Instance.User3, _initTimeout);
                TabMenu.Logout.Tap();
                LoginActivity.LoginStep(Settings.Instance.User4, _initTimeout);
                TabMenu.Logout.Tap();
            }
            finally
            {
                Appium.Instance.Driver.CloseApp();
                ConsoleMessage.EndTest();
            }
        }
        void LoadFragment(int id)
        {
            Android.Support.V4.App.Fragment fragment = null;
            switch (id)
            {
            case Resource.Id.menu_home:
                fragment = home.newInstance();
                break;

            case Resource.Id.menu_audio:
                fragment = LoginActivity.newInstance();
                break;

            case Resource.Id.menu_video:
                fragment = web.newInstance();
                break;

            default:
                fragment = home.newInstance();
                break;
            }

            if (fragment == null)
            {
                return;
            }

            SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.content_frame, fragment)
            .Commit();
        }
        public AppUserAuth ValidateUser(UserLoginVM user)
        {
            AppUserAuth   ret      = new AppUserAuth();
            LoginActivity authUser = null;
            var           result   = false;

            // Attempt to validate user
            authUser = (from u in context.LoginActivity
                        where u.UserName.ToLower() == user.userName.ToLower()
                        select(u)).FirstOrDefault();

            if (authUser == null)
            {
                throw new Exception("User not registered!");
            }

            result = VerifyPasswordHash(user.password, authUser.PasswordHash, authUser.PasswordSalt);

            if (result == false)
            {
                throw new Exception("Username or password incorrect not registered!");
            }

            ret.BearerToken = CreateToken(authUser.UserName);

            return(ret);
        }
Exemple #6
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your application here
            SetContentView(Resource.Layout.activity_edit_image);

            currentUser = LoginActivity.GetImgurClient();
            imagePath   = Intent.GetStringExtra("path");
            var img = FindViewById <ImageView>(Resource.Id.imgvImageUpload);

            Glide.With(this)
            .Load(imagePath)
            .Into(img);

            var btn = FindViewById <Button>(Resource.Id.btnUpload);

            btn.Enabled = false;
            var title = FindViewById <EditText>(Resource.Id.txtiTitleUpload);

            title.AfterTextChanged += (s, e) =>
            {
                if (title.Text == null || title.Text == "")
                {
                    btn.Enabled = false;
                }
                else
                {
                    btn.Enabled = true;
                }
            };
            btn.Click += btn_OnClick;
        }
        public void AfterClass()
        {
            try
            {
                ConsoleMessage.StartTest("Share flow with user: Clean up", "ShareFlow");
                Appium.Instance.Driver.LaunchApp();
                LoginActivity.LoginStep(_user1, _timeout);
                BrowserActivity.AssayList.FindAndTap(_assay);
                BrowserActivity.DeleteAllFlows();
                BrowserActivity.DeleteAssay.Tap();
                AssayDeleteDialog.Delete.Tap();
                //delete team
                TabMenu.Teams.Tap();
                TeamActivity.TeamList.FindAndTap(_team);
                TeamActivity.Dismiss.Tap();
                TeamDeleteDialog.Delete.Tap();
                CommonOperation.Delay(5);
                TabMenu.Logout.Tap();

                LoginActivity.LoginStep(_user2, _timeout);
                BrowserActivity.AssayList.FindAndTap(_assayRec);
                BrowserActivity.DeleteAllFlows();
                BrowserActivity.DeleteAssay.Tap();
                AssayDeleteDialog.Delete.Tap();
            }
            finally
            {
                Appium.Instance.Driver.CloseApp();
                ConsoleMessage.EndTest();
            }
        }
        public void BeforeClass()
        {
            _user1      = Settings.Instance.User1;
            _user2      = Settings.Instance.User2;
            _timeout    = Settings.Instance.LoginTimeout;
            _shareDelay = Settings.Instance.ShareDelay;
            _loginDelay = Settings.Instance.LoginDelay;
            _version    = Settings.Instance.Version;
            _assay      = string.Format("{0}-ShareAssayWithUser", _version);
            _flow       = string.Format("{0}-ShareAssayWithUser", _version);
            _team       = String.Format("!{0}-ShareAssay", _version);

            ConsoleMessage.StartTest("Share assay with user: Setup", "ShareAssay");
            try
            {
                Appium.Instance.Driver.LaunchApp();
                LoginActivity.LoginStep(_user1, _timeout);
                TabMenu.Teams.Tap();
                TeamActivity.NewTeam.Tap();
                TeamCreateDialog.TeamName.EnterText(_team);
                TeamCreateDialog.Create.Tap();
                TeamActivity.TeamMemberList.VerifyElementCountById(1, "user_picture");
                //add user to team
                TeamActivity.AddUserToTeam(_user2.Name);
                TeamActivity.TeamMemberList.VerifyElementCountById(2, "user_picture");
                CommonOperation.Delay(5);
                TabMenu.Logout.Tap();
            }
            finally
            {
                Appium.Instance.Driver.CloseApp();
                ConsoleMessage.EndTest();
            }
        }
Exemple #9
0
        public async Task LogOutAsync()
        {
            await _userRepository.DeleteUserAsync(User);

            IsLogged = false;
            LoginActivity.Navigate();
        }
Exemple #10
0
        private void SetupNavigation()
        {
            var navHeader = _navigationView.GetHeaderView(0);

            _notificationImageView = navHeader.FindViewById <BadgeImageView>(Resource.Id.Navigation_NotificationIcon);

            var userNameViewContainer = navHeader.FindViewById <LinearLayout>(Resource.Id.Navigation_UserNameContainer);
            var userNameView          = navHeader.FindViewById <TextView>(Resource.Id.Navigation_UserName);

            if (!Settings.IsUserAuthenticated)
            {
                navHeader.FindViewById(Resource.Id.Navigation_NotificationIcon).Visibility = ViewStates.Gone;

                userNameViewContainer.Click += (sender, args) =>
                {
                    _navClosedAction = () =>
                    {
                        LoginActivity.StartActivity(this);
                    };
                    _navigationDrawer.CloseDrawer(GravityCompat.Start);
                };
            }
            else
            {
                var user = Settings.LoggedInUser;

                userNameView.Text            = user?.Name ?? "User Error";
                userNameViewContainer.Click += (sender, args) =>
                {
                    _navClosedAction = () =>
                                       AniListNotificationsDialog.Create(this, Presenter.GetNotificationsEnumerable(),
                                                                         _unreadNotificationCount, () => SetNotificationCount(0));
                    _navigationDrawer.CloseDrawer(GravityCompat.Start);
                };

                if (!string.IsNullOrWhiteSpace(user?.Avatar?.Large))
                {
                    var profileImageView = navHeader.FindViewById <ImageView>(Resource.Id.Navigation_ProfileImage);
                    profileImageView.Visibility = ViewStates.Visible;
                    ImageLoader.LoadImage(profileImageView, user.Avatar.Large);
                    profileImageView.Click += (sender, args) =>
                    {
                        _navClosedAction = () => UserActivity.StartActivity(this, user.Id);
                        _navigationDrawer.CloseDrawer(GravityCompat.Start);
                    };
                }

                if (!string.IsNullOrWhiteSpace(user?.BannerImage))
                {
                    var bannerView = navHeader.FindViewById <ImageView>(Resource.Id.Navigation_ProfileBannerImage);
                    bannerView.Visibility = ViewStates.Visible;
                    ImageLoader.LoadImage(bannerView, user.BannerImage);
                }
            }

            _navigationView.SetNavigationItemSelectedListener(this);
            _navigationDrawer.DrawerClosed += OnDrawerClosed;
        }
        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 ChainFlowsAndExe()
        {
            string     parentFlow  = "Parent";
            string     nestedFlow1 = "Nested1";
            Permission permission  = new Permission(true, true, true, true);

            ConsoleMessage.StartTest("Flow Object: Chain and Exe", "FlowObject");
            Appium.Instance.Driver.LaunchApp();
            LoginActivity.LoginStep(_user1, _timeout);
            BrowserActivity.CreateAssay(_assay);
            //setup parent
            BrowserActivity.CreateFlow(parentFlow);
            BrowserActivity.FlowList.FindAndTap(parentFlow);
            FlowActivity.AddElement("Add");
            FlowActivity.AddElement("Flow");
            FlowActivity.ElementList.VerifyElementCountByClass(2, "android.widget.EditText");
            TabMenu.Browser.Tap();
            //setup nested1
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.CreateFlow(nestedFlow1);
            BrowserActivity.FlowList.FindAndTap(nestedFlow1);
            FlowActivity.AddElement("Add");
            FlowActivity.ElementList.VerifyElementCountByClass(1, "android.widget.EditText");
            TabMenu.Browser.Tap();

            //link parent and nested1
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.FlowList.FindAndTap(parentFlow);
            FlowActivity.ElementList.FindAndTap("Flow");
            FlowElementDialog.SelectFlow.Tap();
            FlowSelectNesting.ItemList.FindAndTap(_assay);
            FlowSelectNesting.ItemList.FindAndTap(nestedFlow1);
            FlowElementDialog.Ok.Tap();
            FlowActivity.ElementList.FindAndTap(nestedFlow1);
            FlowElementDialog.ShowNested.Tap();
            FlowActivity.FlowName.VerifyText(nestedFlow1);
            FlowActivity.NavPanel(NavPanel.Parent);
            //share
            FlowActivity.Share.Tap();
            FlowActivity.ShareOk.Tap();
            FlowShareNestedDialog.Yes.Tap();
            FlowShareDialog.ShareWithUserStep(_team, _user2.Name, permission);
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //check shared flow on recipient
            LoginActivity.LoginStep(_user2, _timeout);
            CommonOperation.Delay(_loginDelay);
            BrowserActivity.AssayList.FindAndTap("Shared With: " + _user1.Name);
            BrowserActivity.FlowList.FindAndTap(_assay);
            BrowserActivity.FlowList.FindAndTap(parentFlow);
            FlowActivity.ElementList.VerifyElementCountByClass(2, "android.widget.EditText");
            FlowActivity.ElementList.FindAndTap(nestedFlow1);
            FlowElementDialog.ShowNested.Tap();
            FlowActivity.FlowName.VerifyText(nestedFlow1);
        }
        public void ViewOnly()
        {
            string     flowName   = "View";
            Permission permission = new Permission(true, false, false, false);

            //create flow
            ConsoleMessage.StartTest("Share flow with user: View", "ShareFlow");
            Appium.Instance.Driver.LaunchApp();
            LoginActivity.LoginStep(_user1, _timeout);
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.CreateFlow(flowName);
            BrowserActivity.FlowList.FindAndTap(flowName);
            FlowActivity.AddElement(element1);
            FlowActivity.AddElement(element2);
            FlowActivity.AddElement(element3);
            FlowActivity.ElementList.VerifyElementCountByClass(3, "android.widget.EditText");
            //share

            //worked
//            FlowActivity.Share.Tap();
//            FlowActivity.ShareOk.Tap();
//            FlowShareDialog.TeamList.FindAndTap(_team);
//            FlowShareDialog.AddUser(_user2.Name);
//            FlowShareDialog.ShareWithList.VerifyElementCountById(1, "user_picture");
//            FlowShareDialog.SetPermission(permission);
//            FlowShareDialog.Ok.Tap();

            FlowActivity.Share.Tap();
            FlowActivity.ShareOk.Tap();
            FlowShareDialog.ShareWithUserStep(_team, _user2.Name, permission);
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();
            //verify
            LoginActivity.LoginStep(_user2, _timeout);
            CommonOperation.Delay(_loginDelay);
            BrowserActivity.AssayList.FindAndTap("Shared With: " + _user1.Name);
            BrowserActivity.FlowList.FindAndTap(_assay);
            BrowserActivity.FlowList.FindAndTap(flowName);
            FlowActivity.ElementList.VerifyElementCountByClass(3, "android.widget.EditText");
            //verify can't add element
            FlowActivity.AddElement("Add");
            FlowActivity.ElementList.VerifyElementCountByClass(3, "android.widget.EditText");
            //verify can't delete element
            FlowActivity.DeleteElement("Add");
            FlowActivity.ElementList.VerifyElementCountByClass(3, "android.widget.EditText");
            //verify can't share flow
            FlowActivity.Share.Tap();
            FlowPermissionErrorDialog.DialogName.VerifyText("Share Permission");
            FlowPermissionErrorDialog.Ok.Tap();
            //verify can't delete flow
            FlowActivity.DeleteFlow.Tap();
            FlowPermissionErrorDialog.DialogName.VerifyText("Delete Permission");
            FlowPermissionErrorDialog.Ok.Tap();
            TabMenu.Logout.Tap();
        }
Exemple #14
0
        public void ChangeNestedTest()
        {
            string parentFlow  = "Parent";
            string nestedFlow1 = "Nested1";
            string nestedFlow2 = "Nested2";

            ConsoleMessage.StartTest("Flow Object: Change Nested", "FlowObject");
            Appium.Instance.Driver.LaunchApp();
            LoginActivity.LoginStep(_user, _timeout);
            BrowserActivity.CreateAssay(_assay);
            //setup parent
            BrowserActivity.CreateFlow(parentFlow);
            BrowserActivity.FlowList.FindAndTap(parentFlow);
            FlowActivity.AddElement("Add");
            FlowActivity.AddElement("Flow");
            FlowActivity.ElementList.VerifyElementCountByClass(2, "android.widget.EditText");
            TabMenu.Browser.Tap();
            //setup nested1
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.CreateFlow(nestedFlow1);
            BrowserActivity.FlowList.FindAndTap(nestedFlow1);
            FlowActivity.AddElement("Add");
            FlowActivity.ElementList.VerifyElementCountByClass(1, "android.widget.EditText");
            TabMenu.Browser.Tap();
            //setup nested2
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.CreateFlow(nestedFlow2);
            BrowserActivity.FlowList.FindAndTap(nestedFlow2);
            FlowActivity.AddElement("Aspirate");
            FlowActivity.ElementList.VerifyElementCountByClass(1, "android.widget.EditText");
            TabMenu.Browser.Tap();

            //link parent and nested1
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.FlowList.FindAndTap(parentFlow);
            FlowActivity.ElementList.FindAndTap("Flow");
            FlowElementDialog.SelectFlow.Tap();
            FlowSelectNesting.ItemList.FindAndTap(_assay);
            FlowSelectNesting.ItemList.FindAndTap(nestedFlow1);
            FlowElementDialog.Ok.Tap();
            FlowActivity.ElementList.FindAndTap(nestedFlow1);
            FlowElementDialog.ShowNested.Tap();
            FlowActivity.FlowName.VerifyText(nestedFlow1);
            FlowActivity.NavPanel(NavPanel.Parent);
            //change nested
            FlowActivity.ElementList.FindAndTap(nestedFlow1);
            FlowElementDialog.SelectFlow.Tap();
            FlowSelectNesting.ItemList.FindAndTap(_assay);
            FlowSelectNesting.ItemList.FindAndTap(nestedFlow2);
            FlowElementDialog.Ok.Tap();
            FlowActivity.ElementList.FindAndTap(nestedFlow2);
            FlowElementDialog.ShowNested.Tap();
            FlowActivity.FlowName.VerifyText(nestedFlow2);
            TabMenu.Logout.Tap();
        }
Exemple #15
0
 private long AddLoginActivity(DTO.LABURNUM.COM.LoginActivityModel model)
 {
     API.LABURNUM.COM.LoginActivity apiLoginActivity = new LoginActivity()
     {
         StudentId = model.StudentId,
         LoginAt = System.DateTime.Now,
         CreatedOn = System.DateTime.Now,
         IsActive = true
     };
     this._laburnum.LoginActivities.Add(apiLoginActivity);
     this._laburnum.SaveChanges();
     return apiLoginActivity.LoginActivityId;
 }
        public void ShareOnly()
        {
            string     shareName     = string.Format("{0}=Share", _version);
            string     reshareName   = string.Format("{0}=Rshr", _version);
            Permission permission    = new Permission(true, true, false, false);
            Permission allPermission = new Permission(true, true, true, true);

            ConsoleMessage.StartTest("Share library with user: Share", "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");
            //verify can't add element
            LibraryActivity.AddElement.Tap();
            LibraryPermissionErrorDialog.DialogName.VerifyText("Add Permission");
            LibraryPermissionErrorDialog.Ok.Tap();
            //verify can't delete library
            LibraryActivity.DeleteLibrary.Tap();
            LibraryPermissionErrorDialog.DialogName.VerifyText("Delete Permission");
            LibraryPermissionErrorDialog.Ok.Tap();
            //verify can't delete library element
            LibraryActivity.ElementList.FindAndTap("Add");
            LibraryElementActivity.Delete.Tap();
            LibraryPermissionErrorDialog.DialogName.VerifyText("Delete Permission");
            LibraryPermissionErrorDialog.Ok.Tap();
            LibraryElementActivity.Cancel.Tap();
            //verify can't share library
            LibraryActivity.SelectAndShareLibrary(shareName, reshareName);
            LibraryShareDialog.ShareWithUserStep(_team, _user1.Name, allPermission);
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //verify on owner
            LoginActivity.LoginStep(_user1, _timeout);
            CommonOperation.Delay(_loginDelay);
            TabMenu.Library.Tap();
            LibraryActivity.LibraryList.FindAndTap(reshareName);
            LibraryActivity.ElementList.VerifyElementCountById(20, "library_document_icon");
            TabMenu.Logout.Tap();
        }
        public void Unshare()
        {
            string     flowName   = "Unshare";
            Permission permission = new Permission(true, true, true, true);

            //create flow
            ConsoleMessage.StartTest("Share flow with user: Unshare", "ShareFlow");
            Appium.Instance.Driver.LaunchApp();
            LoginActivity.LoginStep(_user1, _timeout);
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.CreateFlow(flowName);
            BrowserActivity.FlowList.FindAndTap(flowName);
            FlowActivity.AddElement(element1);
            FlowActivity.AddElement(element2);
            FlowActivity.AddElement(element3);
            FlowActivity.ElementList.VerifyElementCountByClass(3, "android.widget.EditText");
            //share
            FlowActivity.Share.Tap();
            FlowActivity.ShareOk.Tap();
            FlowShareDialog.ShareWithUserStep(_team, _user2.Name, permission);
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();
            //verify
            LoginActivity.LoginStep(_user2, _timeout);
            CommonOperation.Delay(_loginDelay);
            BrowserActivity.AssayList.FindAndTap("Shared With: " + _user1.Name);
            BrowserActivity.FlowList.FindAndTap(_assay);
            BrowserActivity.FlowList.FindAndTap(flowName);
            FlowActivity.ElementList.VerifyElementCountByClass(3, "android.widget.EditText");
            TabMenu.Logout.Tap();

            //unshare
            LoginActivity.LoginStep(_user1, _timeout);
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.FlowList.FindAndTap(flowName);
            FlowActivity.Permission.Tap();
            FlowShareDialog.Unshare(_user2.Name);
            FlowShareDialog.ShareWithList.VerifyElementCountById(0, "user_picture");
            FlowShareDialog.Ok.Tap();
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //verify flow not exist
            LoginActivity.LoginStep(_user2, _timeout);
            CommonOperation.Delay(_loginDelay);
            BrowserActivity.AssayList.FindAndTap("Shared With: " + _user1.Name);
            BrowserActivity.FlowList.FindAndTap(_assay);
            BrowserActivity.VerifyFlowNotExist(flowName);
            TabMenu.Logout.Tap();
        }
        public void ModifyOnly()
        {
            string     shareName  = string.Format("{0}=Modify", _version);
            Permission permission = new Permission(true, false, true, false);

            ConsoleMessage.StartTest("Share library with user: Modify", "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");
            //verify can add element
            LibraryActivity.AddElement.Tap();
            LibraryElementActivity.ElementName.ClearText();
            LibraryElementActivity.ElementName.EnterText("Element1");
            LibraryElementActivity.Ok.Tap();
            LibraryActivity.ElementList.VerifyElementCountById(21, "library_document_icon");
            //verify can delete library element
            LibraryActivity.ElementList.FindAndTap("Add");
            LibraryElementActivity.Delete.Tap();
            LibraryDeleteElementDialog.Delete.Tap();
            LibraryActivity.ElementList.VerifyElementCountById(20, "library_document_icon");
            //verify can delete library
            LibraryActivity.DeleteLibrary.Tap();
            LibraryDeleteDialog.Cancel.Tap();
            //verify can't share library
            LibraryActivity.ShareLibrary.Tap();
            LibraryActivity.VerifyCantShareLibrary(shareName);
            LibraryActivity.CancelShare.Tap();
            TabMenu.Logout.Tap();

            //verify on owner
            LoginActivity.LoginStep(_user1, _timeout);
            CommonOperation.Delay(_loginDelay);
            TabMenu.Library.Tap();
            LibraryActivity.LibraryList.FindAndTap(shareName);
            LibraryActivity.ElementList.VerifyElementCountById(20, "library_document_icon");
            TabMenu.Logout.Tap();
        }
        ////
        //// GET: /Account/VerifyCode
        //[AllowAnonymous]
        //public async Task<ActionResult> VerifyCode(string provider, string returnUrl, bool rememberMe)
        //{
        //    // Require that the user has already logged in via username/password or external login
        //    if (!await SignInManager.HasBeenVerifiedAsync())
        //    {
        //        return View("Error");
        //    }
        //    return View(new VerifyCodeViewModel { Provider = provider, ReturnUrl = returnUrl, RememberMe = rememberMe });
        //}

        ////
        //// POST: /Account/VerifyCode
        //[HttpPost]
        //[AllowAnonymous]
        //[ValidateAntiForgeryToken]
        //public async Task<ActionResult> VerifyCode(VerifyCodeViewModel model)
        //{
        //    if (!ModelState.IsValid)
        //    {
        //        return View(model);
        //    }

        //    // The following code protects for brute force attacks against the two factor codes.
        //    // If a user enters incorrect codes for a specified amount of time then the user account
        //    // will be locked out for a specified amount of time.
        //    // You can configure the account lockout settings in IdentityConfig
        //    var result = await SignInManager.TwoFactorSignInAsync(model.Provider, model.Code, isPersistent:  model.RememberMe, rememberBrowser: model.RememberBrowser);
        //    switch (result)
        //    {
        //        case SignInStatus.Success:
        //            return RedirectToLocal(model.ReturnUrl);
        //        case SignInStatus.LockedOut:
        //            return View("Lockout");
        //        case SignInStatus.Failure:
        //        default:
        //            ModelState.AddModelError("", "Invalid code.");
        //            return View(model);
        //    }
        //}

        ////
        //// GET: /Account/Register
        //[AllowAnonymous]
        //public ActionResult Register()
        //{
        //    return View();
        //}

        ////
        //// POST: /Account/Register
        //[HttpPost]
        //[AllowAnonymous]
        //[ValidateAntiForgeryToken]
        //public async Task<ActionResult> Register(RegisterViewModel model)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
        //        var result = await UserManager.CreateAsync(user, model.Password);
        //        if (result.Succeeded)
        //        {
        //            await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);

        //            // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
        //            // Send an email with this link
        //            // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
        //            // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
        //            // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

        //            return RedirectToAction("Index", "Home");
        //        }
        //        AddErrors(result);
        //    }

        //    // If we got this far, something failed, redisplay form
        //    return View(model);
        //}

        ////
        //// GET: /Account/ConfirmEmail
        //[AllowAnonymous]
        //public async Task<ActionResult> ConfirmEmail(string userId, string code)
        //{
        //    if (userId == null || code == null)
        //    {
        //        return View("Error");
        //    }
        //    var result = await UserManager.ConfirmEmailAsync(userId, code);
        //    return View(result.Succeeded ? "ConfirmEmail" : "Error");
        //}

        ////
        //// GET: /Account/ForgotPassword
        //[AllowAnonymous]
        //public ActionResult ForgotPassword()
        //{
        //    return View();
        //}

        ////
        //// POST: /Account/ForgotPassword
        //[HttpPost]
        //[AllowAnonymous]
        //[ValidateAntiForgeryToken]
        //public async Task<ActionResult> ForgotPassword(ForgotPasswordViewModel model)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        var user = await UserManager.FindByNameAsync(model.Email);
        //        if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id)))
        //        {
        //            // Don't reveal that the user does not exist or is not confirmed
        //            return View("ForgotPasswordConfirmation");
        //        }

        //        // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
        //        // Send an email with this link
        //        // string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
        //        // var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
        //        // await UserManager.SendEmailAsync(user.Id, "Reset Password", "Please reset your password by clicking <a href=\"" + callbackUrl + "\">here</a>");
        //        // return RedirectToAction("ForgotPasswordConfirmation", "Account");
        //    }

        //    // If we got this far, something failed, redisplay form
        //    return View(model);
        //}

        ////
        //// GET: /Account/ForgotPasswordConfirmation
        //[AllowAnonymous]
        //public ActionResult ForgotPasswordConfirmation()
        //{
        //    return View();
        //}

        ////
        //// GET: /Account/ResetPassword
        //[AllowAnonymous]
        //public ActionResult ResetPassword(string code)
        //{
        //    return code == null ? View("Error") : View();
        //}

        ////
        //// POST: /Account/ResetPassword
        //[HttpPost]
        //[AllowAnonymous]
        //[ValidateAntiForgeryToken]
        //public async Task<ActionResult> ResetPassword(ResetPasswordViewModel model)
        //{
        //    if (!ModelState.IsValid)
        //    {
        //        return View(model);
        //    }
        //    var user = await UserManager.FindByNameAsync(model.Email);
        //    if (user == null)
        //    {
        //        // Don't reveal that the user does not exist
        //        return RedirectToAction("ResetPasswordConfirmation", "Account");
        //    }
        //    var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);
        //    if (result.Succeeded)
        //    {
        //        return RedirectToAction("ResetPasswordConfirmation", "Account");
        //    }
        //    AddErrors(result);
        //    return View();
        //}

        ////
        //// GET: /Account/ResetPasswordConfirmation
        //[AllowAnonymous]
        //public ActionResult ResetPasswordConfirmation()
        //{
        //    return View();
        //}

        ////
        //// POST: /Account/ExternalLogin
        //[HttpPost]
        //[AllowAnonymous]
        //[ValidateAntiForgeryToken]
        //public ActionResult ExternalLogin(string provider, string returnUrl)
        //{
        //    // Request a redirect to the external login provider
        //    return new ChallengeResult(provider, Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl }));
        //}

        ////
        //// GET: /Account/SendCode
        //[AllowAnonymous]
        //public async Task<ActionResult> SendCode(string returnUrl, bool rememberMe)
        //{
        //    var userId = await SignInManager.GetVerifiedUserIdAsync();
        //    if (userId == null)
        //    {
        //        return View("Error");
        //    }
        //    var userFactors = await UserManager.GetValidTwoFactorProvidersAsync(userId);
        //    var factorOptions = userFactors.Select(purpose => new SelectListItem { Text = purpose, Value = purpose }).ToList();
        //    return View(new SendCodeViewModel { Providers = factorOptions, ReturnUrl = returnUrl, RememberMe = rememberMe });
        //}

        ////
        //// POST: /Account/SendCode
        //[HttpPost]
        //[AllowAnonymous]
        //[ValidateAntiForgeryToken]
        //public async Task<ActionResult> SendCode(SendCodeViewModel model)
        //{
        //    if (!ModelState.IsValid)
        //    {
        //        return View();
        //    }

        //    // Generate the token and send it
        //    if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider))
        //    {
        //        return View("Error");
        //    }
        //    return RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe });
        //}

        ////
        //// GET: /Account/ExternalLoginCallback
        //[AllowAnonymous]
        //public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
        //{
        //    var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
        //    if (loginInfo == null)
        //    {
        //        return RedirectToAction("Login");
        //    }

        //    // Sign in the user with this external login provider if the user already has a login
        //    var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
        //    switch (result)
        //    {
        //        case SignInStatus.Success:
        //            return RedirectToLocal(returnUrl);
        //        case SignInStatus.LockedOut:
        //            return View("Lockout");
        //        case SignInStatus.RequiresVerification:
        //            return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
        //        case SignInStatus.Failure:
        //        default:
        //            // If the user does not have an account, then prompt the user to create an account
        //            ViewBag.ReturnUrl = returnUrl;
        //            ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
        //            return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = loginInfo.Email });
        //    }
        //}

        ////
        //// POST: /Account/ExternalLoginConfirmation
        //[HttpPost]
        //[AllowAnonymous]
        //[ValidateAntiForgeryToken]
        //public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
        //{
        //    if (User.Identity.IsAuthenticated)
        //    {
        //        return RedirectToAction("Index", "Manage");
        //    }

        //    if (ModelState.IsValid)
        //    {
        //        // Get the information about the user from the external login provider
        //        var info = await AuthenticationManager.GetExternalLoginInfoAsync();
        //        if (info == null)
        //        {
        //            return View("ExternalLoginFailure");
        //        }
        //        var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
        //        var result = await UserManager.CreateAsync(user);
        //        if (result.Succeeded)
        //        {
        //            result = await UserManager.AddLoginAsync(user.Id, info.Login);
        //            if (result.Succeeded)
        //            {
        //                await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
        //                return RedirectToLocal(returnUrl);
        //            }
        //        }
        //        AddErrors(result);
        //    }

        //    ViewBag.ReturnUrl = returnUrl;
        //    return View(model);
        //}

        //
        // POST: /Account/LogOff
        public ActionResult LogOff()
        {
            var loginActivity = new LoginActivity()
            {
                LoginIPAddress = this.GetIPAddress(), LoginTime = DateTime.UtcNow, LoginStatus = LoginStatus.LogOut
            };

            this.userService.SaveLoginActivity(loginActivity);
            Session["CurrentUser"] = null;
            Session.Clear();
            Session.Abandon();
            Session.RemoveAll();
            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
            return(RedirectToAction("Index", "Home"));
        }
        private async void LoadUser()
        {
            currentUser = LoginActivity.GetImgurClient();
            var endpoint = new AccountEndpoint(currentUser);
            IAccountSettings submissions = await endpoint.GetAccountSettingsAsync();

            RunOnUiThread(() =>
            {
                //Bind user infos
                TextView username = FindViewById <TextView>(Resource.Id.userName);
                username.Text     = submissions.AccountUrl;
                TextView usermail = FindViewById <TextView>(Resource.Id.userMail);
                usermail.Text     = submissions.Email;
            });
        }
        public void SaveLoginActivity(LoginActivity loginActivity)
        {
            var user = this.Context.User ?? this.GetUser(loginActivity.UserName);

            var loginActivityModel = loginActivity.MapTo <Data.Model.UserLoginActivity>();

            loginActivityModel.UserId       = user?.Id;
            loginActivityModel.DisplayName  = user?.DisplayName;
            loginActivityModel.Username     = loginActivity.UserName ?? this.Context.User.Email;
            loginActivityModel.DateCreated  = DateTime.UtcNow;
            loginActivityModel.DateModified = DateTime.UtcNow;
            loginActivityModel.CreatedBy    = loginActivityModel.Username;
            loginActivityModel.ModifiedBy   = loginActivityModel.Username;
            this.DB.Insert(loginActivityModel);
        }
Exemple #22
0
 private long AddLoginActivity(DTO.LABURNUM.COM.LoginActivityModel model)
 {
     API.LABURNUM.COM.LoginActivity apiLoginActivity = new LoginActivity()
     {
         StudentId  = model.StudentId,
         UserTypeId = model.UserTypeId,
         LoginAt    = new Component.Utility().GetISTDateTime(),
         ClientId   = model.ClientId,
         CreatedOn  = new Component.Utility().GetISTDateTime(),
         IsActive   = true
     };
     this._laburnum.LoginActivities.Add(apiLoginActivity);
     this._laburnum.SaveChanges();
     return(apiLoginActivity.LoginActivityId);
 }
Exemple #23
0
        public void BeforeClass()
        {
            _user1      = Settings.Instance.User1;
            _user2      = Settings.Instance.User2;
            _user3      = Settings.Instance.User3;
            _timeout    = Settings.Instance.LoginTimeout;
            _shareDelay = Settings.Instance.ShareDelay;
            _loginDelay = Settings.Instance.LoginDelay;
            _version    = Settings.Instance.Version;
            _assay      = string.Format("{0}-ShareFlowAndRemoveUserFromTeam", _version);
            _flow       = string.Format("{0}-ShareFlowAndRemoveUserFromTeam", _version);
            _team       = String.Format("!{0}-Flow{1}", _version, Settings.Instance.TeamRemove);



            ConsoleMessage.StartTest("Share flow with team and remove user from team: Setup", "ShareFlow");
            try
            {
                Appium.Instance.Driver.LaunchApp();
                LoginActivity.LoginStep(_user1, _timeout);
                BrowserActivity.CreateAssay(_assay);
                BrowserActivity.CreateFlow(_flow);
                BrowserActivity.FlowList.FindAndTap(_flow);
                FlowActivity.AddElement(element1);
                FlowActivity.AddElement(element2);
                FlowActivity.AddElement(element3);
                FlowActivity.ElementList.VerifyElementCountByClass(3, "android.widget.EditText");
                //create team
                TabMenu.Teams.Tap();
                CommonOperation.Delay(1);
                TeamActivity.NewTeam.Tap();
                TeamCreateDialog.TeamName.EnterText(_team);
                TeamCreateDialog.Create.Tap();
                TeamActivity.TeamMemberList.VerifyElementCountById(1, "user_picture");
                //add user to team
                TeamActivity.AddUserToTeam(_user2.Name);
                TeamActivity.TeamMemberList.VerifyElementCountById(2, "user_picture");
                CommonOperation.Delay(5);
            }
            finally
            {
                Appium.Instance.Driver.CloseApp();
                ConsoleMessage.EndTest();
            }
        }
Exemple #24
0
 public void TestCheck()
 {
     ConsoleMessage.StartTest("Search Test", "SearchTest");
     Appium.Instance.Driver.LaunchApp();
     LoginActivity.LoginStep(_user, _timeout);
     BrowserActivity.CreateAssay(_assay);
     BrowserActivity.CreateFlow(_flow);
     BrowserActivity.FlowList.FindAndTap(_flow);
     FlowActivity.AddElement("Add");
     FlowActivity.ElementList.VerifyElementCountByClass(1, "android.widget.EditText");
     //search
     TabMenu.Search.Tap();
     TabMenu.SearchItem(_flow);
     CommonOperation.HideKeyboard();
     SearchActivity.SearchResultList.FindAndTap(_flow);
     CommonOperation.Delay(3);
     FlowActivity.FlowName.VerifyText(_flow);
 }
 public void AfterClass()
 {
     try
     {
         ConsoleMessage.StartTest("Jit Test: Clean up", "Jit");
         Appium.Instance.Driver.LaunchApp();
         LoginActivity.LoginStep(_user, _timeout);
         BrowserActivity.AssayList.FindAndTap(_assay);
         BrowserActivity.DeleteAllFlows();
         BrowserActivity.DeleteAssay.Tap();
         AssayDeleteDialog.Delete.Tap();
     }
     finally
     {
         Appium.Instance.Driver.CloseApp();
         ConsoleMessage.EndTest();
     }
 }
 public void PulseTest()
 {
     ConsoleMessage.StartTest("Pulse Test", "Pulse");
     Appium.Instance.Driver.LaunchApp();
     LoginActivity.LoginStep(_user, _timeout);
     TabMenu.Pulse.Tap();
     CommonOperation.Delay(10);
     PulseActivity.VerifyListNotEmpty();
     ConsoleMessage.TakeScreen("Verify pulse not empty after 10 sec");
     PulseActivity.HeaderList.VerifyElementCountByClass(11, "android.widget.TextView");
     PulseActivity.CustomizeView.Tap();
     PulseCustomizeViewDialog.ClickOnPropertyCheckbox("property1");
     PulseCustomizeViewDialog.ClickOnPropertyCheckbox("property2");
     PulseCustomizeViewDialog.Ok.Tap();
     PulseActivity.HeaderList.VerifyElementCountByClass(12, "android.widget.TextView");
     ConsoleMessage.TakeScreen("Verify pulse after checking props in customize view");
     PulseActivity.MoveToFlow();
 }
        public void BeforeClass()
        {
            _user1       = Settings.Instance.User1;
            _user2       = Settings.Instance.User2;
            _user3       = Settings.Instance.User3;
            _timeout     = Settings.Instance.LoginTimeout;
            _shareDelay  = Settings.Instance.ShareDelay;
            _loginDelay  = Settings.Instance.LoginDelay;
            _version     = Settings.Instance.Version;
            _team        = String.Format("!{0}-Lib{1}", _version, Settings.Instance.TeamRemove);
            _baseLibrary = String.Format("!{0}-UserRemoveBase", _version);
            _shareName   = String.Format("!{0}-UserRemove", _version);

            ConsoleMessage.StartTest("Share library with team and remove user from team: Setup", "ShareLibrary");
            try
            {
                Appium.Instance.Driver.LaunchApp();
                LoginActivity.LoginStep(_user1, _timeout);
                TabMenu.Library.Tap();
                LibraryActivity.CreateLibrary(_baseLibrary);
                LibraryActivity.AddElement.Tap();
                LibraryElementActivity.ElementName.ClearText();
                LibraryElementActivity.ElementName.EnterText(element1);
                LibraryElementActivity.Ok.Tap();
                LibraryActivity.ElementList.VerifyElementCountById(1, "library_document_icon");
                //create team
                TabMenu.Teams.Tap();
                CommonOperation.Delay(1);
                TeamActivity.NewTeam.Tap();
                TeamCreateDialog.TeamName.EnterText(_team);
                TeamCreateDialog.Create.Tap();
                TeamActivity.TeamMemberList.VerifyElementCountById(1, "user_picture");
                //add user to team
                TeamActivity.AddUserToTeam(_user2.Name);
                TeamActivity.TeamMemberList.VerifyElementCountById(2, "user_picture");
                CommonOperation.Delay(5);
            }
            finally
            {
                Appium.Instance.Driver.CloseApp();
                ConsoleMessage.EndTest();
            }
        }
        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 ShareFlowAsBlocked()
        {
            string     flowName   = "BlockedBase";
            Permission permission = new Permission(true, true, true, true);

            //create flow
            ConsoleMessage.StartTest("Share flow with user: Share As Blocked", "ShareFlow");
            Appium.Instance.Driver.LaunchApp();
            LoginActivity.LoginStep(_user1, _timeout);
            BrowserActivity.AssayList.FindAndTap(_assay);
            BrowserActivity.CreateFlow(flowName);
            BrowserActivity.FlowList.FindAndTap(flowName);
            FlowActivity.AddElement(element1);
            FlowActivity.AddElement(element2);
            FlowActivity.AddElement(element3);
            FlowActivity.ElementList.VerifyElementCountByClass(3, "android.widget.EditText");
            FlowActivity.Share.Tap();
            FlowActivity.TapOnFlowElement(0);
            FlowActivity.ShareOk.Tap();
            FlowShareDialog.TeamList.FindAndTap(_team);
            FlowShareDialog.AddUser(_user2.Name);
            FlowShareDialog.ShareWithList.VerifyElementCountById(1, "user_picture");
            FlowShareDialog.SetPermission(permission);
            FlowShareDialog.Ok.Tap();
            FlowSelectAssayDialog.AssayList.FindAndTap(_assay);
            FlowActivity.VerifyElementName(0, "Blocked");
            CommonOperation.Delay(_shareDelay);
            TabMenu.Logout.Tap();

            //verify blocked flow
            LoginActivity.LoginStep(_user2, _timeout);
            CommonOperation.Delay(_loginDelay);
            BrowserActivity.AssayList.FindAndTap("Shared With: " + _user1.Name);
            BrowserActivity.FlowList.FindAndTap(_assay);
            BrowserActivity.FlowList.FindAndTap(flowName + "-BLK");
            FlowActivity.ElementList.VerifyElementCountByClass(3, "android.widget.EditText");
            FlowActivity.VerifyElementName(0, "Blocked");
            TabMenu.Logout.Tap();
        }
 public void AfterClass()
 {
     //clean up after test
     try
     {
         ConsoleMessage.StartTest("Share library with team and remove user from team: Cleanup", "ShareLibrary");
         Appium.Instance.Driver.LaunchApp();
         LoginActivity.LoginStep(_user1, _timeout);
         TabMenu.Library.Tap();
         LibraryActivity.DeleteAllLibs();
         CommonOperation.Delay(3);
         //delete team
         TabMenu.Teams.Tap();
         TeamActivity.TeamList.FindAndTap(_team);
         TeamActivity.Dismiss.Tap();
         TeamDeleteDialog.Delete.Tap();
     }
     finally
     {
         Appium.Instance.Driver.CloseApp();
         ConsoleMessage.EndTest();
     }
 }