68 lines
2.7 KiB
Vala
68 lines
2.7 KiB
Vala
|
/*
|
||
|
Copyright (C) 2013 Christian Dywan <christian@twotoasts.de>
|
||
|
|
||
|
This library is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the GNU Lesser General Public
|
||
|
License as published by the Free Software Foundation; either
|
||
|
version 2.1 of the License, or (at your option) any later version.
|
||
|
|
||
|
See the file COPYING for the full license text.
|
||
|
*/
|
||
|
|
||
|
void actions_view_page () {
|
||
|
var browser = new Midori.Browser ();
|
||
|
var view = new Midori.View.with_title (null, new Midori.WebSettings ());
|
||
|
browser.add_tab (view);
|
||
|
browser.show ();
|
||
|
view.set_html ("<body>The earth is <em>flat</em> for a fact.</body>");
|
||
|
var loop = MainContext.default ();
|
||
|
do { loop.iteration (true); } while (view.load_status != Midori.LoadStatus.FINISHED);
|
||
|
|
||
|
var hit_test_result = Object.new (typeof (WebKit.HitTestResult), "context", WebKit.HitTestResultContext.DOCUMENT) as WebKit.HitTestResult;
|
||
|
var menu = view.get_page_context_action (hit_test_result);
|
||
|
assert (menu != null);
|
||
|
assert (menu.name == "PageContextMenu");
|
||
|
assert (menu.get_by_name ("Back") != null);
|
||
|
|
||
|
#if !HAVE_WEBKIT2
|
||
|
var hit_test_result2 = Object.new (typeof (WebKit.HitTestResult), "context", WebKit.HitTestResultContext.EDITABLE) as WebKit.HitTestResult;
|
||
|
var menu2 = view.get_page_context_action (hit_test_result2);
|
||
|
assert (menu2 != null);
|
||
|
assert (menu2.name == "PageContextMenu");
|
||
|
var copy = menu2.get_by_name ("Copy");
|
||
|
assert (copy != null);
|
||
|
assert (!copy.sensitive);
|
||
|
assert (view.web_view.search_text ("flat", true, false, false));
|
||
|
menu = view.get_page_context_action (hit_test_result);
|
||
|
copy = menu.get_by_name ("Copy");
|
||
|
assert (copy.sensitive);
|
||
|
#endif
|
||
|
|
||
|
/* Reload contents to clear selection */
|
||
|
view.set_html ("<body>The earth is <em>flat</em> for a fact.</body>");
|
||
|
do { loop.iteration (true); } while (view.load_status != Midori.LoadStatus.FINISHED);
|
||
|
|
||
|
#if !HAVE_WEBKIT2
|
||
|
hit_test_result = Object.new (typeof (WebKit.HitTestResult), "context", WebKit.HitTestResultContext.SELECTION) as WebKit.HitTestResult;
|
||
|
menu = view.get_page_context_action (hit_test_result);
|
||
|
copy = menu.get_by_name ("Copy");
|
||
|
assert (!copy.sensitive);
|
||
|
assert (view.web_view.search_text ("flat", true, false, false));
|
||
|
menu = view.get_page_context_action (hit_test_result);
|
||
|
copy = menu.get_by_name ("Copy");
|
||
|
assert (copy.sensitive);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
void main (string[] args) {
|
||
|
Test.init (ref args);
|
||
|
Midori.App.setup (ref args, null);
|
||
|
Midori.Paths.init (Midori.RuntimeMode.NORMAL, null);
|
||
|
#if !HAVE_WEBKIT2
|
||
|
WebKit.get_default_session ().set_data<bool> ("midori-session-initialized", true);
|
||
|
#endif
|
||
|
Test.add_func ("/actions/view/page", actions_view_page);
|
||
|
Test.run ();
|
||
|
}
|
||
|
|