def testPrepareScreenResourcesPixelDensity(self): device = fase_model.Device(device_type='MockType', device_id='MockDeviceID', pixel_density=1.5) _, session_info, _ = self._GetServiceAndAssert(device) service_prog = fase_database.FaseDatabaseInterface.Get( ).GetServiceProg(session_info.session_id) screen = fase.Screen(service_prog.service) frame = screen.AddFrame(id_='frame_id') frame.AddImage(id_='image1_id', filename=self.file1_template_filename) frame.AddImage(id_='image2_id', filename=self.file2_template_filename) _, resources = fase_server.PrepareScreen(screen, device) self.assertEqual( set([ fase_model.Resource(filename=self.file1_20_filename), fase_model.Resource(filename=self.file2_20_filename) ]), set(resources.resource_list)) screen = fase.Screen(service_prog.service) frame = screen.AddFrame(id_='frame_id') frame.AddImage(id_='image1_id', filename=self.file1_template_filename, pixel_density_mult=2.0) frame.AddImage(id_='image2_id', filename=self.file2_template_filename, pixel_density_mult=2.0) _, resources = fase_server.PrepareScreen(screen, device) self.assertEqual( set([ fase_model.Resource(filename=self.file1_30_filename), fase_model.Resource(filename=self.file2_30_filename) ]), set(resources.resource_list))
def _GetGreetingScreen(service, name): screen = fase.Screen(service) screen.AddLabel(id_='hello_label_id', text='Hello, %s!' % name) screen.AddButton(id_='reset_button_id', text='Reset', on_click=fase.FunctionPlaceholder) return screen
def OnStart(self): screen = fase.Screen(self) screen.AddText(id_='text_name_id', hint='Enter Name') screen.AddButton(id_='next_button_id', text='Next', on_click=ApplicationTestService.OnNextButton) return screen
def OnUpdate(self): screen = fase.Screen(self) screen.AddLabel(id_='update_label_id', text='Service has been updated') screen.AddButton(id_='start_button_id', text='Start', on_click=ServerTestService.OnResetButton) return screen
def _GetEnterNameScreen(service, name=None): screen = fase.Screen(service) screen.AddText(id_='text_name_id', hint='Enter Name', text=name) screen.AddButton(id_='next_button_id', text='Next', on_click=fase.FunctionPlaceholder) return screen
def testPrepareScreenNoVariables(self): device = fase_model.Device(device_type='MockType', device_id='MockDeviceID') _, session_info, _ = self._GetServiceAndAssert(device) service_prog = fase_database.FaseDatabaseInterface.Get( ).GetServiceProg(session_info.session_id) screen = fase.Screen(service_prog.service) frame = screen.AddFrame(id_='frame_id') frame.AddText(id_='text_id') frame.AddStringVariable(id_='value_str', value='general') self.assertTrue( screen.GetElement(id_='frame_id').HasElement(id_='text_id')) self.assertTrue( screen.GetElement(id_='frame_id').HasElement(id_='value_str')) screen_removed_variables, _ = fase_server.PrepareScreen(screen, None) self.assertTrue( screen.GetElement(id_='frame_id').HasElement(id_='text_id')) self.assertTrue( screen.GetElement(id_='frame_id').HasElement(id_='value_str')) self.assertTrue( screen_removed_variables.GetElement(id_='frame_id').HasElement( id_='text_id')) self.assertFalse( screen_removed_variables.GetElement(id_='frame_id').HasElement( id_='value_str'))
def OnSignUpOption(service, screen, element): screen = fase.Screen(service) screen.SetTitle('Sign Up') sign_up_frame = screen.AddFrame(id_='sign_up_frame_id', orientation=fase.Frame.VERTICAL) sign_up_frame.AddText(id_='phone_number_text_id', hint='Phone Number', type_=fase.Text.PHONE) sign_up_frame.AddText(id_='first_name_text_id', hint='First Name') sign_up_frame.AddText(id_='last_name_text_id', hint='Last Name') # Requested user data. request_user_data = fase.RequestUserData.FromJSON( service.GetStringVariable( id_='fase_sign_in_request_user_data').GetValue()) if request_user_data.date_of_birth: sign_up_frame.AddDateTimePicker(id_='date_of_birth_date_picker', type_=fase.DateTimePicker.DATE, hint='Date of Birth') if request_user_data.home_city: sign_up_frame.AddPlacePicker(id_='home_city_place_picker', type_=fase.PlacePicker.CITY, hint='Home City') sign_up_button = sign_up_frame.AddButton(id_='sign_up_button_id', text='Sign Up', on_click=OnSignUpEnteredData) sign_up_button.SetRequestLocale(True) screen.AddPrevStepButton(text='Back', on_click=OnSignInStart) return screen
def OnStart(self): screen = fase.Screen(self) screen.AddImage(id_='image_id', filename='logo.png') screen.AddText(id_='text_name_id', hint='Enter Name') screen.AddButton(id_='next_button_id', text='Next', on_click=ServerTestService.OnNextButton) return screen
def _GetGreetingScreen(service, name): screen = fase.Screen(service) screen.AddImage(id_='image_id', filename='hello.png') screen.AddLabel(id_='hello_label_id', text='Hello, %s!' % name) screen.AddButton(id_='reset_button_id', text='Reset', on_click=ServerTestService.OnResetButton) return screen
def _GetEnterNameScreen(service, name=None): screen = fase.Screen(service) screen.AddImage(id_='image_id', filename='logo.png') screen.AddText(id_='text_name_id', hint='Enter Name', text=name) screen.AddButton(id_='next_button_id', text='Next', on_click=ServerTestService.OnNextButton) return screen
def OnNextButton(self, screen, element): name = screen.GetText(id_='text_name_id').GetText() screen = fase.Screen(self) screen.AddLabel(id_='hello_label_id', text='Hello, %s!' % name) screen.AddButton(id_='reset_button_id', text='Reset', on_click=ApplicationTestService.OnResetButton) return screen
def OnDeleteNote(self, screen, element): note_id = screen.GetStringVariable(id_='current_note_id').GetValue() screen = fase.Screen(self) alert = screen.AddAlert('Delete the Note?') alert.AddButton(id_="ok_id", text="OK", on_click=NotesService.OnDeleteNoteOK) alert.AddButton(id_="cancel_id", text="Cancel", on_click=NotesService.OnDeleteNoteCancel) screen.AddStringVariable(id_='current_note_id', value=note_id) return screen
def _DisplayNotesByFunc(self, screen_label, key_func, reverse, filter_func, title, screen): screen = fase.Screen(self) screen.SetTitle(title) screen.SetScrollable(True) self._AddButtons(screen, screen_label) notes_frame = screen.AddFrame(id_='notes_frame', orientation=fase.Frame.VERTICAL) notes = notes_database.NotesDatabaseInterface.Get().GetUserNotes( self.GetUserId()) if filter_func: notes = filter(filter_func, notes) for note in sorted(notes, key=key_func, reverse=reverse): note_frame = notes_frame.AddFrame(id_='note_frame_%s' % note.note_id, orientation=fase.Frame.VERTICAL, on_click=NotesService.OnNote) note_frame.AddStringVariable(id_='frame_note_id', value=note.note_id) note_header_frame = note_frame.AddFrame( id_='note_header_frame', orientation=fase.Frame.HORIZONTAL, size=fase.Label.MAX) note_header_frame.AddLabel(id_='note_header_label', text=note.header, font=fase.Font(size=1.5), size=fase.Label.MAX, align=fase.Label.LEFT) note_header_frame.AddImage( id_='note_header_image', filename=('images/favourite_2/[email protected]' if note.favourite else 'images/favourite_2/[email protected]'), pixel_density_mult=1.5) note_frame.AddLabel(id_='note_frame_label', text=note.text[:PREVIEW_LENGTH], align=fase.Label.LEFT) datetime_text = datetime_util.GetDatetimeDiffStr( note.datetime, datetime.datetime.utcnow()) note_deails_frame = note_frame.AddFrame( id_='note_deails_frame', orientation=fase.Frame.HORIZONTAL) note_deails_frame.AddLabel(id_='note_deails_frame_datetime_text', text=datetime_text, font=fase.Font(size=0.75), size=fase.Label.MAX, align=fase.Label.RIGHT) note_frame.AddSeparator() return screen
def OnActivationCodeSent(service, screen, element): screen = fase.Screen(service) screen.SetTitle('Activation Code') enter_activation_frame = screen.AddFrame(id_='enter_activation_frame_id', orientation=fase.Frame.VERTICAL) enter_activation_frame.AddText(id_='activation_code_text_id', hint='Activation Code', type_=fase.Text.DIGITS) enter_activation_frame.AddElement(id_='send_button_id', element=FaseSignInButton( text='Send', on_click=fase.FunctionPlaceholder)) screen.AddPrevStepButton(text='Back', on_click=OnSignInStart) return screen
def OnSignInOption(service, screen, element): screen = fase.Screen(service) screen.SetTitle('Sign In') sign_in_frame = screen.AddFrame(id_='sign_in_frame_id', orientation=fase.Frame.VERTICAL) sign_in_frame.AddText(id_='phone_number_text_id', hint='Phone Number', type_=fase.Text.PHONE) sign_in_button = sign_in_frame.AddButton(id_='sign_in_button_id', text='Sign In', on_click=OnSignInEnteredData) sign_in_button.SetRequestLocale(True) screen.AddPrevStepButton(text='Back', on_click=OnSignInStart) return screen
def OnSignInStart(service, screen, element): screen = fase.Screen(service) screen.SetTitle('Sign In') sign_in_frame = screen.AddFrame(id_='sign_in_frame_id', orientation=fase.Frame.VERTICAL) sign_in_frame.AddButton(id_='sign_in_button_id', text='Sign In', on_click=OnSignInOption) sign_in_frame.AddButton(id_='sign_up_button_id', text='Sign Up', on_click=OnSignUpOption) if service.HasFunctionVariable(id_='fase_sign_in_on_skip_class_method'): sign_in_frame.AddButton(id_='skip_button_id', text='Skip', on_click=OnSignInSkipOption) if service.HasFunctionVariable(id_='fase_sign_in_on_cancel_class_method'): screen.AddPrevStepButton(text='Cancel', on_click=OnSignInCancelOption) return screen
def StartSignOut(service, on_cancel=None): assert service.IfSignedIn() screen = fase.Screen(service) screen.SetTitle('Sign Out') screen.AddLabel(id_='user_name_label_id', text=service.GetUser().DisplayName()) sign_out_frame = screen.AddFrame(id_='sign_out_frame_id', orientation=fase.Frame.VERTICAL) sign_out_frame.AddElement(id_='sign_out_button_id', element=FaseSignOutButton( text='Sign Out', on_click=fase.FunctionPlaceholder)) if service.HasFunctionVariable(id_='fase_sign_out_on_cancel_class_method'): service.PopFunctionVariable(id_='fase_sign_out_on_cancel_class_method') if on_cancel is not None: service.AddFunctionVariable(id_='fase_sign_out_on_cancel_class_method', value=on_cancel) screen.AddPrevStepButton(text='Cancel', on_click=OnSignOutCancelOption) return screen
def _DisplayNote(self, note_id, screen): screen = fase.Screen(self) screen.AddStringVariable(id_='current_note_id', value=note_id) note = notes_database.NotesDatabaseInterface.Get().GetNote( note_id=note_id) if note_id is not None else None favourite_bool = screen.AddBoolVariable(id_='favourite_bool', value=note is not None and note.favourite) note_frame = screen.AddFrame(id_='note_frame', orientation=fase.Frame.VERTICAL, size=fase.Frame.MAX) note_frame.AddImage( id_='favourite_image', filename=('images/favourite_2/[email protected]' if favourite_bool.GetValue() else 'images/favourite_2/[email protected]'), pixel_density_mult=1.5, align=fase.Image.RIGHT, on_click=NotesService.OnReverseFavouriteNote) header_text = note_frame.AddText(id_='header_text', hint='Header') text_text = note_frame.AddText(id_='text_text', hint='Text', size=fase.Label.MAX, multiline=True) if note_id is not None: note_frame.AddImage(id_='delete_image', filename='images/delete/[email protected]', pixel_density_mult=1.5, align=fase.Image.RIGHT, on_click=NotesService.OnDeleteNote) # If editing existing note. if note is not None: header_text.SetText(note.header) text_text.SetText(note.text) screen.AddNextStepButton(text='Save', on_click=NotesService.OnSaveNote) screen.AddPrevStepButton(text='Back', on_click=NotesService.OnCancelNote) return screen
def testPrepareScreenResources(self): device = fase_model.Device(device_type='MockType', device_id='MockDeviceID') _, session_info, _ = self._GetServiceAndAssert(device) service_prog = fase_database.FaseDatabaseInterface.Get( ).GetServiceProg(session_info.session_id) screen = fase.Screen(service_prog.service) frame1 = screen.AddFrame(id_='frame1_id') frame1.AddImage(id_='image1_id', filename=self.file1_filename) frame1.AddImage(id_='image2_id', filename=self.file2_filename) frame1.AddImage(id_='image3_id', filename=self.file3_filename) frame2 = screen.AddFrame(id_='frame2_id') frame2.AddImage(id_='image1_id', filename=self.file1_filename) frame2.AddImage(id_='image2_id', filename=self.file2_filename) frame2.AddImage(id_='image3_id', filename=self.file3_filename) _, resources = fase_server.PrepareScreen(screen, device) self.assertEqual( set([ fase_model.Resource(filename=self.file1_filename), fase_model.Resource(filename=self.file2_filename) ]), set(resources.resource_list))
def _OnRequestUserData(service, screen, element, request_user_data, user): screen = fase.Screen(service) screen.SetTitle('Enter Data') enter_frame = screen.AddFrame(id_='enter_frame_id', orientation=fase.Frame.VERTICAL) if request_user_data.date_of_birth and user.date_of_birth is None: enter_frame.AddDateTimePicker(id_='date_of_birth_date_picker', type_=fase.DateTimePicker.DATE, hint='Date of Birth') if request_user_data.home_city and user.home_city is None: enter_frame.AddPlacePicker(id_='home_city_place_picker', type_=fase.PlacePicker.CITY, hint='Home City') enter_button = enter_frame.AddButton(id_='enter_button_id', text='Enter', on_click=OnRequestUserDataEnteredData) enter_button.SetRequestLocale(True) screen.AddPrevStepButton(text='Back', on_click=OnSignInStart) return screen
def OnStart(self): return fase.Screen(self)
def _ErrorAlert(service, message, on_click): screen = fase.Screen(service) alert = screen.AddAlert(message) alert.AddButton(id_="ok_id", text="OK", on_click=on_click) return screen