Skip to content

Commit

Permalink
Merge bb43882 into 3921c09
Browse files Browse the repository at this point in the history
  • Loading branch information
teclator committed Dec 28, 2018
2 parents 3921c09 + bb43882 commit 1ec05cb
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 67 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
39 changes: 37 additions & 2 deletions test/lib/y2firewall/widgets/pages/zones_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,46 @@
describe Y2Firewall::Widgets::Pages::Zones::RemoveButton do
subject { described_class.new(double("pager"), double("table", value: "my_zone")) }

let(:known_zones) { { "dmz" => "DMZ" } }
let(:zone_to_remove) { double(name: "my_zone") }

before do
allow(Y2Firewall::Dialogs::Zone).to receive(:run)

allow(subject.firewall).to receive(:find_zone).and_return(double(name: "my_zone"))
allow(Y2Firewall::Firewalld::Zone).to receive(:known_zones).and_return(known_zones)
allow(subject.firewall).to receive(:find_zone).and_return(zone_to_remove)
end

include_examples "CWM::PushButton"

describe "#handle" do
context "when trying to remove a unkown zone" do
it "removes the zone" do
expect(subject.firewall).to receive(:remove_zone).with(zone_to_remove.name)

subject.handle
end

it "returns :redraw" do
expect(subject.handle).to eq(:redraw)
end
end

context "when trying to remove a known zone" do
let(:zone_to_remove) { double(name: "dmz") }

before do
allow(Yast2::Popup).to receive(:show)
end

it "shows an error popup" do
expect(Yast2::Popup).to receive(:show).with(anything, hash_including(headline: :error))

subject.handle
end

it "returns nil" do
expect(subject.handle).to be_nil
end
end
end
end

0 comments on commit 1ec05cb

Please sign in to comment.