From 2c4851f1519462efa13c3386b7aaead14941e14a Mon Sep 17 00:00:00 2001 From: David Walsh Date: Tue, 26 Apr 2016 11:26:22 -0500 Subject: [PATCH] Bug 1244265 - Show file picker when save button clicked within the JSONView component. r=Honza MozReview-Commit-ID: 70q35AbSBgO --HG-- extra : amend_source : a749a55a82bb220016ca682f594e65b0d372566f extra : transplant_source : 6%D2%200%82%2CtN%F6%9E4%7B%91%16%0A%DFa%21%FEs --- devtools/client/jsonview/main.js | 2 +- devtools/client/jsonview/test/browser.ini | 1 + .../test/browser_jsonview_save_json.js | 38 +++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 devtools/client/jsonview/test/browser_jsonview_save_json.js diff --git a/devtools/client/jsonview/main.js b/devtools/client/jsonview/main.js index 11dd6c8abd69..ec1cf91d90ce 100644 --- a/devtools/client/jsonview/main.js +++ b/devtools/client/jsonview/main.js @@ -12,7 +12,7 @@ const Services = require("Services"); const { XPCOMUtils } = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {}); -XPCOMUtils.defineLazyGetter(this, "JsonViewService", function () { +XPCOMUtils.defineLazyGetter(this, "JsonViewUtils", function() { return require("devtools/client/jsonview/utils"); }); diff --git a/devtools/client/jsonview/test/browser.ini b/devtools/client/jsonview/test/browser.ini index 76115f8a56d1..5bbd4af495ea 100644 --- a/devtools/client/jsonview/test/browser.ini +++ b/devtools/client/jsonview/test/browser.ini @@ -22,3 +22,4 @@ support-files = [browser_jsonview_filter.js] [browser_jsonview_invalid_json.js] [browser_jsonview_valid_json.js] +[browser_jsonview_save_json.js] diff --git a/devtools/client/jsonview/test/browser_jsonview_save_json.js b/devtools/client/jsonview/test/browser_jsonview_save_json.js new file mode 100644 index 000000000000..80c33f9fb598 --- /dev/null +++ b/devtools/client/jsonview/test/browser_jsonview_save_json.js @@ -0,0 +1,38 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const TEST_JSON_URL = URL_ROOT + "valid_json.json"; + +let { MockFilePicker } = SpecialPowers; + +MockFilePicker.init(window); +MockFilePicker.returnValue = MockFilePicker.returnCancel; + +registerCleanupFunction(function() { + MockFilePicker.cleanup(); +}); + +add_task(function* () { + info("Test save JSON started"); + + yield addJsonViewTab(TEST_JSON_URL); + + let promise = new Promise((resolve) => { + MockFilePicker.showCallback = () => { + MockFilePicker.showCallback = null; + ok(true, "File picker was opened"); + resolve(); + }; + }); + + let browser = gBrowser.selectedBrowser; + yield BrowserTestUtils.synthesizeMouseAtCenter( + ".jsonPanelBox button.save", + {}, browser); + + yield promise; +});