/**
  * @param $user
  * @param bool $selected
  * @return array
  */
 public static function getVisibleAndOrderedTabMenuItemsByUser($user, $selected = false)
 {
     $visibleAndOrderedTabMenuItems = array();
     $tabMenuItems = MenuUtil::getVisibleAndOrderedTabMenuByUser($user);
     foreach ($tabMenuItems as $menuItem) {
         if ($selected === true) {
             $visibleAndOrderedTabMenuItems[] = $menuItem['moduleId'];
         } else {
             $moduleId = $menuItem['moduleId'];
             $visibleAndOrderedTabMenuItems[$moduleId] = $menuItem['label'];
         }
     }
     return $visibleAndOrderedTabMenuItems;
 }
 public function testEditTabMenuOrderByMakeFormAndSetConfigurationFromForm()
 {
     $sally = User::getByUsername('sally');
     $form = UserConfigurationFormAdapter::makeFormFromUserConfigurationByUser($sally);
     $this->assertEquals(count($form->selectedVisibleAndOrderedTabMenuItems), count(MenuUtil::getVisibleAndOrderedTabMenuByUser($sally)));
     $defaultOrderedTabMenuItems = $form->selectedVisibleAndOrderedTabMenuItems;
     $customOrderedTabMenuItems = array_reverse($defaultOrderedTabMenuItems);
     $form->selectedVisibleAndOrderedTabMenuItems = $customOrderedTabMenuItems;
     UserConfigurationFormAdapter::setConfigurationFromForm($form, $sally);
     $form = UserConfigurationFormAdapter::makeFormFromUserConfigurationByUser($sally);
     $this->assertEquals($form->selectedVisibleAndOrderedTabMenuItems, $customOrderedTabMenuItems);
     $billy = User::getByUsername('billy');
     $form = UserConfigurationFormAdapter::makeFormFromUserConfigurationByUser($billy);
     $this->assertEquals($form->selectedVisibleAndOrderedTabMenuItems, $defaultOrderedTabMenuItems);
     $form->selectedVisibleAndOrderedTabMenuItems = $customOrderedTabMenuItems;
     UserConfigurationFormAdapter::setConfigurationFromForm($form, $billy);
     $form = UserConfigurationFormAdapter::makeFormFromUserConfigurationByUser($billy);
     $this->assertEquals($form->selectedVisibleAndOrderedTabMenuItems, $customOrderedTabMenuItems);
 }