diff --git a/glue_plotly/html_exporters/qt/tests/test_base.py b/glue_plotly/html_exporters/qt/tests/test_base.py
index 3beb927..734ce4c 100644
--- a/glue_plotly/html_exporters/qt/tests/test_base.py
+++ b/glue_plotly/html_exporters/qt/tests/test_base.py
@@ -5,6 +5,8 @@
from glue_plotly.sort_components import SortComponentsDialog
from qtpy.QtWidgets import QMessageBox
+from glue_plotly.volume_options import VolumeOptionsDialog
+
class TestQtExporter:
@@ -47,6 +49,7 @@ def export_figure(self, tmpdir, output_filename):
fd.return_value = output_path, 'html'
with patch.object(SaveHoverDialog, 'exec_', self.auto_accept_selectdialog()), \
patch.object(SortComponentsDialog, 'exec_', self.auto_accept_selectdialog()), \
+ patch.object(VolumeOptionsDialog, 'exec_', self.auto_accept_messagebox()), \
patch.object(QMessageBox, 'exec_', self.auto_accept_messagebox()):
self.tool.activate()
return output_path
diff --git a/glue_plotly/html_exporters/qt/tests/test_volume.py b/glue_plotly/html_exporters/qt/tests/test_volume.py
new file mode 100644
index 0000000..bb2372b
--- /dev/null
+++ b/glue_plotly/html_exporters/qt/tests/test_volume.py
@@ -0,0 +1,30 @@
+import os
+
+from glue.core import Data
+
+from pytest import importorskip
+
+importorskip('glue_qt')
+importorskip('glue_vispy_viewers')
+
+from glue_vispy_viewers.volume.volume_viewer import VispyVolumeViewer # noqa: E402
+
+from numpy import arange, ones # noqa: E402
+
+from .test_base import TestQtExporter # noqa: E402
+
+
+class TestVolume(TestQtExporter):
+
+ viewer_type = VispyVolumeViewer
+ tool_id = 'save:plotlyvolume'
+
+ def make_data(self):
+ return Data(label='d1',
+ x=arange(24).reshape((2, 3, 4)),
+ y=ones((2, 3, 4)),
+ z=arange(100, 124).reshape((2, 3, 4)))
+
+ def test_default(self, tmpdir):
+ output_path = self.export_figure(tmpdir, 'test.html')
+ assert os.path.exists(output_path)
diff --git a/glue_plotly/volume_options.py b/glue_plotly/volume_options.py
index 8e9a4fe..9bf4543 100644
--- a/glue_plotly/volume_options.py
+++ b/glue_plotly/volume_options.py
@@ -14,6 +14,9 @@
from glue_plotly.html_exporters.qt.utils import layer_label
+__all__ = ["VolumeOptionsDialog"]
+
+
class VolumeDialogState(State):
layer = SelectionCallbackProperty()