Skip to content

Commit

Permalink
Merge pull request #109 from yast/bsc_1114807
Browse files Browse the repository at this point in the history
Startup dialog: Use the new CWM::ServiceWidget (bsc#1114807)
  • Loading branch information
dgdavid committed Jan 2, 2019
2 parents 3921c09 + b4064a0 commit 1fad277
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 65 deletions.
7 changes: 7 additions & 0 deletions package/yast2-firewall.changes
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
-------------------------------------------------------------------
Thu Dec 20 11:19:51 UTC 2018 - knut.anderssen@suse.com

- Startup dialog: Replace the old UI::ServiceStatus by the new
CWM::ServiceWidget (bsc#1114807)
- 4.1.3

-------------------------------------------------------------------
Fri Nov 30 15:13:02 UTC 2018 - jreidinger@suse.com

Expand Down
2 changes: 1 addition & 1 deletion package/yast2-firewall.spec
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@


Name: yast2-firewall
Version: 4.1.2
Version: 4.1.3
Release: 0

BuildRoot: %{_tmppath}/%{name}-%{version}-build
Expand Down
26 changes: 3 additions & 23 deletions src/lib/y2firewall/widgets/pages/startup.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@

require "yast"
require "cwm/page"
require "cwm/service_widget"
require "y2firewall/firewalld"
require "ui/service_status"

module Y2Firewall
module Widgets
Expand All @@ -44,35 +44,15 @@ def label
# @macro seeCustomWidget
def contents
VBox(
status_widget.widget,
status_widget,
VStretch()
)
end

# @return [Symbol, nil] returns :swap_mode if the service is started
# or stopped and returns nil othwerwise
def handle(input)
result = status_widget.handle_input(input["ID"])
return :swap_mode if result == :start || result == :stop

nil
end

def store
system_service.start_mode = status_widget.enabled_flag? ? :on_boot : :manual
system_service.reload if status_widget.reload_flag?
end

def help
status_widget.help
end

private

# This is a generic widget in SLE15; may not be appropriate.
# For SLE15-SP1, use CWM::ServiceWidget
def status_widget
@status_widget ||= ::UI::ServiceStatus.new(system_service.service)
@status_widget ||= ::CWM::ServiceWidget.new(system_service)
end

# Convenience method to obtain the firewall system service
Expand Down
53 changes: 12 additions & 41 deletions test/lib/y2firewall/widgets/pages/startup_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,57 +20,28 @@
# ------------------------------------------------------------------------------

require_relative "../../../../test_helper.rb"

require "cwm/rspec"
require "cwm/service_widget"
require "y2firewall/widgets/pages/startup"

describe Y2Firewall::Widgets::Pages::Startup do
include_examples "CWM::Page"
subject(:widget) { described_class.new(double("fake pager")) }

let(:firewalld) { Y2Firewall::Firewalld.instance }
let(:system_service) { Yast2::SystemService.build(Y2Firewall::Firewalld::SERVICE) }
let(:service_status) { ::UI::ServiceStatus.new(system_service.service) }
include_examples "CWM::Page"

let(:service) { double("firewalld") }
let(:service_widget) { double("ServiceWidget") }
let(:fw_instance) { double("fw_instance", system_service: service) }

before do
allow(widget).to receive(:status_widget).and_return(service_status)
allow(Y2Firewall::Firewalld).to receive(:instance).and_return(fw_instance)
allow(::CWM::ServiceWidget).to receive(:new).and_return(service_widget)
end

describe "#store" do
let(:enabled) { false }
let(:reload) { true }

before do
allow(firewalld).to receive(:system_service).and_return(system_service)
allow(service_status).to receive(:enabled_flag?).and_return(enabled)
allow(service_status).to receive(:reload_flag?).and_return(reload)
end

context "when the service status enable flag is selected" do
let(:enabled) { true }

it "marks the service to be enabled on boot" do
expect(system_service).to receive(:start_mode=).with(:on_boot)

widget.store
end
end

context "when the service status enable flag is not selected" do
it "marks the service to be enabled manually" do
expect(system_service).to receive(:start_mode=).with(:manual)

widget.store
end
end

context "when the service status reload flag is choosen" do
let(:reload) { true }

it "marks the service to be reloaded after write" do
expect(system_service).to receive(:reload)

widget.store
end
describe "#contents" do
it "includes the ::CWM::ServiceWidget content" do
expect(widget.contents).to include(service_widget)
end
end
end

0 comments on commit 1fad277

Please sign in to comment.