Commit Graph

409 Commits

Author SHA1 Message Date
Mike Blumenkrantz 033b438891 tests/elm: fix event starter helper function to handle elm_win objects
this class implements EFL_CANVAS_SCENE_INTERFACE but is not an Evas,
so the evas must still be fetched

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9366
2019-07-19 15:05:02 -07:00
Mike Blumenkrantz 0084d8d736 tests/elm: fix a couple unit tests to use event starter helper function
these tests seem to have relied upon a callback being triggered which
would call ecore_main_loop_quit() prior to ecore_main_loop_begin() starting
the main loop

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9365
2019-07-19 15:04:50 -07:00
Cedric BAIL d902989b74 elementary: add a test for Efl.Ui.View interface.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9308
2019-07-17 21:58:01 +02:00
Cedric BAIL 16b662d5d1 elementary: add a test for Efl.Model_provider.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9295
2019-07-17 21:57:56 +02:00
Mike Blumenkrantz b25c9f6137 tests/elm: add test for elm_bubble "clicked" smart callback
Summary:
also verify general layout loading

Depends on D9330

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9331
2019-07-16 13:38:33 -04:00
Mike Blumenkrantz ab0c71803b tests/elm: break out event callback function
Summary:
now we have a function we can reuse which verifies that it is called exactly
one time

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9330
2019-07-16 13:38:28 -04:00
Marcel Hollerbach 1bae8ec521 efl_ui_slider: change the semantical meaning of step property
Summary:
before the step property was used as a relative value. The value that
was added in the end was (max-min)*step. Which is quite confusing given
the fact that the other APIs in in efl_ui_range_display are also taking
values absolut. Other implementations also do so.

fix T4834

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T4834

Differential Revision: https://phab.enlightenment.org/D9327
2019-07-16 16:37:29 +02:00
Mike Blumenkrantz 1d90b113e0 tests/actionslider: add more actionslider unit tests
verify actionslider callbacks and various basic functionalities

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9322
2019-07-16 14:48:50 +02:00
Mike Blumenkrantz 62059763c6 tests/elm: improve click_part() further to guess part locations
non-swallow parts exist "somewhere" on a given layout, and it may be
the case that they are not actually positioned and just take up the whole
layout space.

for these parts, if they have a direction in their name, we can try to vaguely
guess where the part might be in order to (ideally) click it

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9321
2019-07-16 14:48:49 +02:00
Mike Blumenkrantz 564ba9b96c tests/elm: improve click_part() to handle non-swallow parts
swallow parts have content, other parts do not

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9320
2019-07-16 14:48:48 +02:00
Marcel Hollerbach 913af2f0d1 efl_ui_spec_suite: this is not python2
i don't know why it was added like this.
2019-07-12 15:10:37 +02:00
Shinwoo Kim 89399672b7 test: add Efl.Ui.Format related test
This patch is including negative test as well.
See https://phab.enlightenment.org/D9276. This could make @bu5hm4n very happy.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9281
2019-07-11 17:40:47 +02:00
Mike Blumenkrantz 162c0e2ba5 tests/elm: create abstract function for clicking swallowed part objects
this handles all the part object getting and signal processing and geometry
calculating so you can get to clickin those parts faster

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9269
2019-07-11 17:40:46 +02:00
Mike Blumenkrantz 4a1c13f491 tests/elm: break out click helper function for reuse
also fixes lifetime issue with spin parts

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9268
2019-07-11 17:40:45 +02:00
Mike Blumenkrantz f5d3f575c6 edje: improve user-defined data caching to handle data before file is set
Summary:
this adds explicit handling for things like:

efl_add(SOMECLASS, parent,
  efl_text_set(efl_added, "my text")
);

on edje-inheriting objects.

note that it's still impossible to do something like
efl_add(SOMECLASS, parent,
  efl_text_set(efl_part(efl_added, "somepart"), "my text")
);

also add a unit test to verify common behaviors

@feature

Depends on D9209

Reviewers: cedric

Reviewed By: cedric

Subscribers: bu5hm4n, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9210
2019-07-10 14:40:42 -04:00
Mike Blumenkrantz f5c03fe194 tests/elm: fail tests if unexpected warnings or errors occur
Summary:
warnings and errors should never occur in unit tests unless they are
intentionally triggered. this will help catch regressions
Depends on D9256

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9257
2019-07-10 13:57:40 -04:00
Mike Blumenkrantz 51cf9842ec tests/elm: use helper functions for managing naviframe unit test abort-on-error
Summary: also bump up to abort on warnings

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9251
2019-07-10 13:57:28 -04:00
Mike Blumenkrantz 244b1446fc tests/efl_ui: add event test for slider
this verifies event emission for slider like in legacy tests

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9246
2019-07-09 16:01:05 +02:00
Marcel Hollerbach 52adb65aea efl_ui_spin_button: add test suite
this adds a testsuite to emulate and check the usage of buttons in the
spin button widget. This also verifies that the correct events are
emitted. (For now, the testcases from spin are also copied over, since
they inherit from each other)

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9232
2019-07-08 19:56:42 +02:00
Marcel Hollerbach e922a23ddf efl_ui_spec_suite: introduce two new test suites
this checks that the expected errors are in place, and the state does
not get changed when there is an errornous call.

ref T7895
ref T7894
2019-07-08 19:56:33 +02:00
Marcel Hollerbach 1e73201169 efl_ui_spin: add tests for basic spin features
this tests for the correct event emission. And checks the wheel
interaction.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9221
2019-07-08 19:56:32 +02:00
Cedric BAIL 47c5736ef9 elementary: rename Activew_View to Spotlight.
View is something that is expected in the context of MVVM, so using it somewhere else is
going to lead to some confusion. Spotlight does descrive the objective of all of this
widget in actually a more explicit way as they all give the spotlight to one sub widget
at a time.

I have also renamed the View_Manager to be just Manager as the View there wasn't useful.
2019-07-05 19:18:22 +02:00
Xavi Artigas e776f5f0d7 Efl.Ui.Format revamp
This class helps widgets which contain a numerical value and must display it,
like Progressbar (units label), Spin, Spin_Button, Slider (both units and popup
labels, in legacy), Tags (when in shrunk mode) or Calendar (year_month label).

Previously this was a mix of interface and mixin: widgets had to support setting a
formatting func, and the mixin offered support for formatting strings, by setting
an internal formatting func. On top of that, the spinner widget supported "special
values", a list of values that should be shown as certain strings instead.

This has now been simplified and unified:
Widgets including this mixin can use the formatted_value_get() method which accepts
an Eina_Value and returns a string. Thats's it.
The mixin adds three properties to the widget (format_values, format_func and
format_string) which users can use to tailor formatting. The widget does not need
to know which method has been used, it just retrieves the resulting string.
This removes a lot of duplicated widget code, and adds functionality which was
missing before. For example, all widgets support passing a list of values now.

Widgets must implement the apply_formatted_value() method so they are notified
of changes in the format and they can redraw anything they need.

Tests have been added to the Elementary Spec suite for all cases.

Legacy widgets behavior has not been modified, although a few needed some code
changes.
2019-07-04 19:38:20 +02:00
Mike Blumenkrantz b5e65ed993 tests/radio: add explicit test for verifying legacy radio callback triggering
the 'changed' callback should never be triggered when programmatically
changing a radio's state

ref T8042
2019-07-03 12:22:17 -04:00
Mike Blumenkrantz f619ad88a4 tests: add functional unit tests for radio widgets
this adds some basic testing to verify that callbacks occur and values
are set as expected

Differential Revision: https://phab.enlightenment.org/D9091
2019-07-03 12:22:17 -04:00
Xavi Artigas 8a0cad6435 Efl.Ui.Progressbar: Add explicit display control of progress label
Summary:
Add a property (show_progress_label) to allow controlling whether the progress
label displaying the exact progress is shown or not.
This was possible in Legacy but the functionality was lost in Unified.

Updated elementary_test to showcase this property, and also the other label
formatting options, which where not tested anywhere.

Added a simple progressbar unit test. It only checks that retrieved value is the
same as the set value, so it is more of a placeholder for future tests.

**This is needed by a future patch which will introduce more formatting options that clash with the current implementation.**
The presence of a formatting function was used to decide if the progress label was shown or not. This explicit property simplifies things.

Test Plan:
Everything builds and passes tests.
`elementary_test -to Efl.Ui.Progressbar` should show a few more bars with different formatting labels, and a checkbox to toggle rendering of one of them.

Reviewers: bu5hm4n, zmike, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9202
2019-07-03 08:34:03 +02:00
Marcel Hollerbach 5e54ad67ec efl_input_interface: verify check cancel event
this verifies that EFL_EVENT_POINTER_CANCEL is emitted correctly.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9171
2019-06-27 16:51:20 +02:00
Mike Blumenkrantz 4c15ef65dd tests/elm: replace bespoke win/loop fast-forwarding with helper function
now we can consistently do event emissions inline in tests using much
simpler code

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9188
2019-06-27 09:45:12 +02:00
Mike Blumenkrantz 39833fe168 tests/efl_ui: add suite_helpers.h to efl_ui_suite.h
no need to manually include this for every file

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9187
2019-06-27 09:45:11 +02:00
Mike Blumenkrantz 14ac6a9e9e tests/elm: add helper function for simplifying getting to event triggering
the usual method is calc -> post render -> job to ensure everything is
set up. this simplifies getting to that job.

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9186
2019-06-27 09:45:10 +02:00
Mike Blumenkrantz 25c86c88be tests: remove correct callback in slider event test
typo

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9185
2019-06-27 09:45:09 +02:00
Marcel Hollerbach 03077e238e efl_ui_suite: remove duplicated code
Summary:
there is a helper for this function, lets use it.
Depends on D9181

Reviewers: stefan_schmidt, segfaultxavi, zmike, Jaehyun_Cho

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9182
2019-06-26 09:54:55 -04:00
Marcel Hollerbach 4fe13887ca efl_input_interface: add tests for mouse wheel emitting
Summary:
this tests if z and direction is correctly emitted
Depends on D9169

Reviewers: zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9170
2019-06-26 09:54:55 -04:00
Marcel Hollerbach 132d3dfb92 efl_input_interface: test pointer in and out events on a object
Summary:
this verifies that EFL_EVENT_POINTER_IN EFL_EVENT_POINTER_OUT are
emitted correctly with the correct event content.
Depends on D9168

Reviewers: zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9169
2019-06-26 09:54:55 -04:00
Marcel Hollerbach b0455490e7 efl_input_interface: test pointer move down up
Summary:
this verifies that EFL_EVENT_POINTER_MOVE / EFL_EVENT_POINTER_DOWN /
EFL_EVENT_POINTER_UP are emitted and passed with the correct event types,
and fields on the event object.
Depends on D9167

Reviewers: zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9168
2019-06-26 09:54:55 -04:00
Marcel Hollerbach ea0784d318 evas_events: fix setting of 'pressed' member in Efl_Input_Key_Data
Summary:
this also adds tests verifying that EFL_EVENT_KEY_DOWN / EFL_EVENT_KEY_UP are emitted
and passed with the correct event types, and fields on the event object.

Depends on D9166

Reviewers: zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9167
2019-06-26 09:54:55 -04:00
Marcel Hollerbach f085bd8ae7 efl_input_interface: add test to verify focus in/out
Summary:
this verifies that EFL_EVENT_FOCUS_IN / EFL_EVENT_FOCUS_OUT are emitted
and passed with the correct event types, and fields on the event object.

Reviewers: zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9166
2019-06-26 09:54:55 -04:00
Mike Blumenkrantz 2730f1e569 tests: fix unforked efl_ui_radio_group completion
Summary: change fixture to zero all global variables and reset state

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9177
2019-06-25 13:00:53 -04:00
Mike Blumenkrantz 0a0f3d5bfe tests/slider: verify emission of changed and delay,changed events
this simulates clicking and dragging a slider to avoid regressions with
these events

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9152
2019-06-24 18:31:50 +02:00
Marcel Hollerbach 0c4c74b5f7 efl_ui_win: fix emitting of object focus events
Summary: the event type was wrong. This is now fixed and works correctly.

Reviewers: stefan_schmidt, zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9144
2019-06-21 09:40:23 -04:00
Marcel Hollerbach 1e86c2bf93 efl_ui_win: repair scene event emission
It appears that EVAS_CALLBACK_FOCUS_IN / OUT is wrong here, as this is
for when a object gets focus but not the scene.

However, the inital event emission still does not work correctly, this
needs some further investigation.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9138
2019-06-20 17:14:57 +02:00
Marcel Hollerbach f77bc6957c efl_input_pointer: rename tool to touch_id
tool was not very helpfull, and additionally, the docuemtnation of it
was completly wrong. After searching through the code where tool was
actaully set (efl_ui_win.c) it turned out that it is actaully the "id"
of the pointer when there are multiple touch events.

ref T7963

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9135
2019-06-20 17:14:54 +02:00
Marcel Hollerbach c9177a9f8d Introduce Efl.Ui.Radio_Group & Efl.Ui.Radio_Box
Radio_Group is a interface that manages that radio groups can be grouped inside a
external object, the current API of radio was considered confusing in
that regard. It is implemented in the Radio_Group_Internal class which
is private to EFL, a instance of it can be found with get due to the
class function in efl_ui_radio.eo. This architecture was taken like
this, in order to have implementation and interface seperated. With
those two seperated we can inherit from regular widgets, implement the
interface, and composite attach the internal object to the regular
widget. This makes a lot of things easier.

Radio_Box is a class which is extending Efl.Ui.Box, which has an
internal Radio_Group. This is extremly usefull for cases where you just
want to have a list of radio buttons in your UI. The radio group is also
exposed using composition to the internal object. Simular things can be
done for the table.

For now i did not add API to find the group of a radio button. However,
this can be quickly added if requested.

ref T7867

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9058
2019-06-20 16:02:00 +02:00
Mike Blumenkrantz c27c469204 Revert "efl_ui_suite_spec: add a hack to have running tests again"
This reverts commit 2ef8894fcd.

this is no longer needed

Differential Revision: https://phab.enlightenment.org/D9126
2019-06-20 08:10:47 +02:00
Marcel Hollerbach 2ef8894fcd efl_ui_suite_spec: add a hack to have running tests again
Summary:
it seems something is leading to weird stack behavior with gcc when we
do not delete the widget here. Later deletion in _elm_win_shutdown leads
to a crash like:

 #0  0x00007f7b30dd5bd7 in _elm_win_shutdown () at ../src/lib/elementary/efl_ui_win.c:3805
 #1  0x01007f7b30cdf3a2 in ?? ()
 #2  0x00007fffa4e60570 in ?? ()
 #3  0x0000000000407b14 in _elm_suite_shutdown () at ../src/tests/elementary/suite_helpers.c:52

which is kind of weird. After a day of debugging i did not get any
further, so maybe it is better to do add a hack, so we are having at
least a running CI again

Reviewers: stefan_schmidt, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9112
2019-06-19 09:37:19 -04:00
Marcel Hollerbach 0a4beb291d efl_ui_stack: remove!
this can now be done with active_view. This is done in order to reduce
the LOC in elementary that basically do the same.

Differential Revision: https://phab.enlightenment.org/D8920
2019-06-19 07:38:08 +02:00
Marcel Hollerbach f8a1fa470c efl_ui_spec: Support running with CK_FORK=no
Summary: this was simply not tested before. But works now.

Reviewers: zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9109
2019-06-18 12:22:54 -04:00
Marcel Hollerbach 3a5f506b0e efl_ui_check: make it undependend of nstate
Summary:
check can only display 2 states, and is only designed to do so.
Additionally, nstate inherits from button, which
brings in autorepeat, which is hileriously broken on check and cannot
really work.

Right now there is not even support in the theme for clickable. So its a
good idea to get rid of this for now IMO.

ref T7865

Reviewers: stefan_schmidt, zmike, segfaultxavi, akanad, YOhoho

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7865, T7867

Differential Revision: https://phab.enlightenment.org/D9018
2019-06-13 09:21:38 -04:00
Mike Blumenkrantz ab7c48de75 tests/efl_ui: remove unnecessary shutdown fixture code
Summary: this is automatically handled by elm_shutdown at the end of every test

Reviewers: YOhoho

Reviewed By: YOhoho

Subscribers: YOhoho, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9087
2019-06-12 08:54:20 -04:00
Mike Blumenkrantz 6e048a4069 tests/efl_ui: reset active view counter structs between tests
Summary: this fixes running the tests with CK_FORK=no

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9080
2019-06-10 09:54:22 -04:00