Hi Piñeiro,
Thanks for your detailed reply and sorry for mistook your name :)
Well, how to load the CALLY module transparently to all clutter
application is really a headache especially for the mixed gtk+clutter
application. In bug: http://bugzilla.o-hand.com/show_bug.cgi?id=1738, Emmanuele
Bassi said the clutter module support will be available at Clutter 1.2, do you
know approximately release time?
Considering module loading is a known issue and not blocks me to try
CALLY on Moblin, so I will keep to try CALLY on Moblin to find out why
Accersier can't get the clutter object hierarchical. This needs some effort to
better understating the code implementation, and welcome your further help :)
Thanks!
Shuang
-----Original Message-----
From: Piñeiro [mailto:[email protected]]
Sent: 2009年9月18日 18:43
To: Wan, Shuang
Cc: [email protected]; Wang, Jing J; [email protected]
Subject: Re: CALLY over ATSPI-dbus
From: "Wan, Shuang" <[email protected]>
Hi,
> Hi Iglesias,
>
> I am trying to use CALLY to automate Moblin UI testing. You know
> Moblin UI is clutter based, CALLY is really a great project to help
> automating Clutter based UI test. Thanks for your great effort :)
Thanks to you to use and test it.
> CALLY works basically on my Ubuntu 8.10 destkop (at-spi-registered is
> Corba based), I can see the example's component hierarchical in Accerciser
> Accessibility Explorer and even to take an action like click to "Test". But
> on Moblin, I can only see the Main Stage in the Accerciser Accessibility
> Explorer. The thing has little complicated, Moblin use DBUS as inter-process
> communication protocol instead of Corba, and ATSPI-dbus is also in the stage
> of immature like CALLY. To demonstrate the ATSPI-dbus basically working on
> Moblin, I tried using Accerciser Accessibility Explorer to get gcalctool's
> component hierarchical (gcalctool is a GTK based calculator program), the
> result shows it works basically. So I think there is something wrong within
> CALLY over ATSPI-dbus. Do you have some suggestion how to run CALLY over
> ATSPI-dbus? Considering Moblin is a typical user to Clutter and CALLY, it
> will be greatly appreciated to get your help!
Sorry, but I haven't tested Cally on a ATSPI-dbus environment yet, but
as your probably has realized, the new ATSPI-dbus is not using the
CORBA atk-bridge, and instead using his dbus replacemente atk-adaptor
[1] (I think that it still uses this name). This is not a problem of
Cally itself, just about load the correct module. Cally just "work" on
a ATK perspective, so the specific details of the atk-bridge or
adaptor are outside their scope.
The Cally examples that I added are loading the modules by hand. This
is because there isn't still a general way to load the modules. This
is a reported bug:
http://bugzilla.o-hand.com/show_bug.cgi?id=1738
Read my last comment about the current issues stopping a proper
solution.
(and related: http://bugzilla.o-hand.com/show_bug.cgi?id=1737)
In a final environment, this would be solved by something like:
CLUTTER_MODULES=cally:atk-bridge (in a CORBA environment)
or
CLUTTER_MODULES=cally:atk-adaptor (in a DBUS environment)
And this should work, if the new atk-adaptor maintains the same
interface that the old atk-bridge. And you have shown us that this is
true.
>
> To use ATSPI-dbus as underlying inter-process communication protocol,
> I made some change to CALLY:
>
> static gboolean
> _a11y_invoke_module (const gchar *libname,
> const gchar *dirname,
> gboolean init)
> {
> .....
> if (strcmp ((char*)libname, "libcally-1.0") == 0) {
> if (init)
> method = "gnome_accessibility_module_init";
> else
> method = "gnome_accessibility_module_shutdown";
>
> }
> # make a soft link /usr/local/lib/gtk-2.0/modules/libatk-bridge.so to
> /usr/local/lib/gtk-2.0/modules/libspiatk.so
> # libspiatk is implemented as gtk module
Somewhat hacky ;), but a good way to get working what you
want. Probably the best way to solve that should modify this example
in order to specify a CORBA or DBUS environment. I guess that this
libspiatk.so is what I called previously atk-adaptor.
Anyway, as I said, this is just a example of how load by hand the
modules, and would be very extrange that in a final environment (like
Moblin) you would require to load by hand the modules in all the
programs of the plattform, and a general way to do that would be
required (ie, the previous Cally bug I was talking about).
> else {
> if (init)
> method = "gtk_module_init";
> else
> method = "gtk_module_shutdown";
> }
> ....
> And I attached two screenshots in the mail, one is screenshot in
> ubuntu8.10 and another one is screenshot in Moblin.
> To use ATSPI-dbus, bellow are two helpful links:
> http://www.linuxfoundation.org/en/Accessibility/ATK/AT-SPI/AT-SPI_on_D-Bus
> http://live.gnome.org/Accessibility/BonoboDeprecation
>
> Thanks in advance!
Thanks to you to test it on a ATSPI-dbus environment. This was of the
things I have in my TODO list, but not done yet, and you have found
another aspect in the Cally bug. Is good to now that it is working.
Feel free to add a comment about that on the bugzilla (patches are
welcome).
BR
PS: just a nitpick ;), Iglesias is my second surname, probably my
mother would be proud, but in Spain we usually use the first one, and
in fact all the people in Igalia call me Piñeiro (as we have other
Alejandro here).
[1]
http://live.gnome.org/Accessibility/BonoboDeprecation#head-96eecd57b5e0af61d350f9bb814f487d9448e084
===
API ([email protected])