Hello community,

here is the log from the commit of package yast2-bootloader for 
openSUSE:Factory checked in at 2018-09-04 22:50:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-bootloader (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-bootloader.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-bootloader"

Tue Sep  4 22:50:07 2018 rev:267 rq:631041 version:4.1.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-bootloader/yast2-bootloader.changes        
2018-07-24 17:28:53.883797440 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-bootloader.new/yast2-bootloader.changes   
2018-09-04 22:50:09.647765952 +0200
@@ -1,0 +2,25 @@
+Wed Aug 22 16:33:37 CEST 2018 - [email protected]
+
+- Switched license in spec file from SPDX2 to SPDX3 format. 
+
+-------------------------------------------------------------------
+Tue Aug 21 10:08:21 CEST 2018 - [email protected]
+
+- Changed dir of COPYING file.
+
+-------------------------------------------------------------------
+Tue Aug 21 07:59:53 UTC 2018 - [email protected]
+
+- Update: Do not crash in detection of gpt disks when some disk
+  disappear (bsc#1105351 )
+- 4.1.8
+
+-------------------------------------------------------------------
+Wed Aug 15 07:41:01 UTC 2018 - [email protected]
+
+- bnc#1053559
+  - do not crash with internal error when GRUB_TERMINAL contains
+    multiple values
+- 4.1.7
+
+-------------------------------------------------------------------

Old:
----
  yast2-bootloader-4.1.6.tar.bz2

New:
----
  yast2-bootloader-4.1.8.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-bootloader.spec ++++++
--- /var/tmp/diff_new_pack.zdgsfO/_old  2018-09-04 22:50:10.123767587 +0200
+++ /var/tmp/diff_new_pack.zdgsfO/_new  2018-09-04 22:50:10.123767587 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-bootloader
-Version:        4.1.6
+Version:        4.1.8
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -31,7 +31,7 @@
 BuildRequires:  yast2-storage-ng >= 4.0.90
 # lenses needed also for tests
 BuildRequires:  augeas-lenses
-BuildRequires:  rubygem(%rb_default_ruby_abi:cfa_grub2) >= 0.5.1
+BuildRequires:  rubygem(%rb_default_ruby_abi:cfa_grub2) >= 1.0.1
 BuildRequires:  rubygem(%rb_default_ruby_abi:rspec)
 BuildRequires:  rubygem(%rb_default_ruby_abi:yast-rake)
 PreReq:         /bin/sed %fillup_prereq
@@ -44,8 +44,8 @@
 Requires:       yast2-pkg-bindings >= 2.17.25
 # Y2Storage::Mountable#mount_path
 Requires:       yast2-storage-ng >= 4.0.90
-# GrubCfg with boot_entries that filter out unbootable entries
-Requires:       rubygem(%rb_default_ruby_abi:cfa_grub2) >= 0.5.1
+# Support for multiple values in GRUB_TERMINAL
+Requires:       rubygem(%rb_default_ruby_abi:cfa_grub2) >= 1.0.1
 # lenses are needed as cfa_grub2 depends only on augeas bindings, but also
 # lenses are needed here
 Requires:       augeas-lenses
@@ -58,7 +58,7 @@
 %endif
 
 Summary:        YaST2 - Bootloader Configuration
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          System/YaST
 
 %description
@@ -103,7 +103,7 @@
 %{yast_libdir}/bootloader
 
 %dir %{yast_docdir}
-%doc %{yast_docdir}/COPYING
+%license %{yast_docdir}/COPYING
 %doc %{yast_docdir}/README.md
 %doc %{yast_docdir}/CONTRIBUTING.md
 

++++++ yast2-bootloader-4.1.6.tar.bz2 -> yast2-bootloader-4.1.8.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-bootloader-4.1.6/README.md 
new/yast2-bootloader-4.1.8/README.md
--- old/yast2-bootloader-4.1.6/README.md        2018-07-23 10:19:29.000000000 
+0200
+++ new/yast2-bootloader-4.1.8/README.md        2018-08-23 09:39:13.000000000 
+0200
@@ -47,3 +47,7 @@
 - [Boot Record 
backup](https://www.rubydoc.info/github/yast/yast-bootloader/master/Bootloader/BootRecordBackup)
 creates a backup of boot record for devices which the code touched
 - [Serial 
Console](https://www.rubydoc.info/github/yast/yast-bootloader/master/Bootloader/SerialConsole)
 converts between grub2 serial console configuration and kernel serial console 
configuration
 - 
[Sysconfig](https://www.rubydoc.info/github/yast/yast-bootloader/master/Bootloader/Sysconfig)
 read/write sysconfig configuration for bootloader. Sysconfig basically holds 
currently used grub2 implementation and configuration that is not in grub2 
itself like if use secure boot or trusted grub
+
+### See Also
+
+The bootloader module uses CFA (config files API) module for GRUB2 - [See CFA 
for GRUB2 
repository](https://github.com/config-files-api/config_files_api_grub2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-bootloader-4.1.6/package/yast2-bootloader.changes 
new/yast2-bootloader-4.1.8/package/yast2-bootloader.changes
--- old/yast2-bootloader-4.1.6/package/yast2-bootloader.changes 2018-07-23 
10:19:29.000000000 +0200
+++ new/yast2-bootloader-4.1.8/package/yast2-bootloader.changes 2018-08-23 
09:39:13.000000000 +0200
@@ -1,4 +1,29 @@
 -------------------------------------------------------------------
+Wed Aug 22 16:33:37 CEST 2018 - [email protected]
+
+- Switched license in spec file from SPDX2 to SPDX3 format. 
+
+-------------------------------------------------------------------
+Tue Aug 21 10:08:21 CEST 2018 - [email protected]
+
+- Changed dir of COPYING file.
+
+-------------------------------------------------------------------
+Tue Aug 21 07:59:53 UTC 2018 - [email protected]
+
+- Update: Do not crash in detection of gpt disks when some disk
+  disappear (bsc#1105351 )
+- 4.1.8
+
+-------------------------------------------------------------------
+Wed Aug 15 07:41:01 UTC 2018 - [email protected]
+
+- bnc#1053559
+  - do not crash with internal error when GRUB_TERMINAL contains
+    multiple values
+- 4.1.7
+
+-------------------------------------------------------------------
 Fri Jul 20 15:12:13 CEST 2018 - [email protected]
 
 - Update: Fixed crash while reading grub settings from installed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-bootloader-4.1.6/package/yast2-bootloader.spec 
new/yast2-bootloader-4.1.8/package/yast2-bootloader.spec
--- old/yast2-bootloader-4.1.6/package/yast2-bootloader.spec    2018-07-23 
10:19:29.000000000 +0200
+++ new/yast2-bootloader-4.1.8/package/yast2-bootloader.spec    2018-08-23 
09:39:13.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-bootloader
-Version:        4.1.6
+Version:        4.1.8
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -31,7 +31,7 @@
 BuildRequires:  yast2-storage-ng >= 4.0.90
 # lenses needed also for tests
 BuildRequires:  augeas-lenses
-BuildRequires:  rubygem(%rb_default_ruby_abi:cfa_grub2) >= 0.5.1
+BuildRequires:  rubygem(%rb_default_ruby_abi:cfa_grub2) >= 1.0.1
 BuildRequires:  rubygem(%rb_default_ruby_abi:rspec)
 BuildRequires:  rubygem(%rb_default_ruby_abi:yast-rake)
 PreReq:         /bin/sed %fillup_prereq
@@ -44,8 +44,8 @@
 Requires:       yast2-pkg-bindings >= 2.17.25
 # Y2Storage::Mountable#mount_path
 Requires:       yast2-storage-ng >= 4.0.90
-# GrubCfg with boot_entries that filter out unbootable entries
-Requires:       rubygem(%rb_default_ruby_abi:cfa_grub2) >= 0.5.1
+# Support for multiple values in GRUB_TERMINAL
+Requires:       rubygem(%rb_default_ruby_abi:cfa_grub2) >= 1.0.1
 # lenses are needed as cfa_grub2 depends only on augeas bindings, but also
 # lenses are needed here
 Requires:       augeas-lenses
@@ -58,7 +58,7 @@
 %endif
 
 Summary:        YaST2 - Bootloader Configuration
-License:        GPL-2.0+
+License:        GPL-2.0-or-later
 Group:          System/YaST
 
 %description
@@ -103,7 +103,7 @@
 %{yast_libdir}/bootloader
 
 %dir %{yast_docdir}
-%doc %{yast_docdir}/COPYING
+%license %{yast_docdir}/COPYING
 %doc %{yast_docdir}/README.md
 %doc %{yast_docdir}/CONTRIBUTING.md
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-bootloader-4.1.6/src/lib/bootloader/autoyast_converter.rb 
new/yast2-bootloader-4.1.8/src/lib/bootloader/autoyast_converter.rb
--- old/yast2-bootloader-4.1.6/src/lib/bootloader/autoyast_converter.rb 
2018-07-23 10:19:29.000000000 +0200
+++ new/yast2-bootloader-4.1.8/src/lib/bootloader/autoyast_converter.rb 
2018-08-23 09:39:13.000000000 +0200
@@ -88,7 +88,14 @@
           val = data["global"][key]
           next unless val
 
-          default.public_send(:"#{method}=", SYMBOL_PARAM.include?(key) ? 
val.to_sym : val)
+          default.public_send(:"#{method}=", val)
+        end
+
+        DEFAULT_ARRAY_MAPPING.each do |key, method|
+          val = data["global"][key]
+          next unless val
+
+          default.public_send(:"#{method}=", val.split.map { |v| v.to_sym })
         end
 
         DEFAULT_KERNEL_PARAMS_MAPPING.each do |key, method|
@@ -208,8 +215,11 @@
       }.freeze
 
       DEFAULT_STRING_MAPPING = {
-        "gfxmode"  => :gfxmode,
-        "serial"   => :serial_console,
+        "gfxmode" => :gfxmode,
+        "serial"  => :serial_console
+      }.freeze
+
+      DEFAULT_ARRAY_MAPPING = {
         "terminal" => :terminal
       }.freeze
 
@@ -219,9 +229,6 @@
         "xen_kernel_append" => :xen_hypervisor_params
       }.freeze
 
-      SYMBOL_PARAM = [
-        "terminal"
-      ].freeze
       def export_default(res, default)
         DEFAULT_BOOLEAN_MAPPING.each do |key, method|
           val = default.public_send(method)
@@ -233,6 +240,11 @@
           res[key] = val.to_s if val
         end
 
+        DEFAULT_ARRAY_MAPPING.each do |key, method|
+          val = default.public_send(method)
+          res[key] = val.join(" ") if val
+        end
+
         DEFAULT_KERNEL_PARAMS_MAPPING.each do |key, method|
           val = default.public_send(method)
           res[key] = val.serialize unless val.empty?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-bootloader-4.1.6/src/lib/bootloader/grub2_widgets.rb 
new/yast2-bootloader-4.1.8/src/lib/bootloader/grub2_widgets.rb
--- old/yast2-bootloader-4.1.6/src/lib/bootloader/grub2_widgets.rb      
2018-07-23 10:19:29.000000000 +0200
+++ new/yast2-bootloader-4.1.8/src/lib/bootloader/grub2_widgets.rb      
2018-08-23 09:39:13.000000000 +0200
@@ -450,7 +450,14 @@
     end
   end
 
-  # Represents graphical and serial console for bootloader
+  # Represents graphical and serial console setup for bootloader
+  #
+  # Allows to configure terminal for grub. It can configure grub
+  # to use either graphical terminal, console or console over serial line.
+  #
+  # Graphical or serial terminal has to be selected explicitly. Either
+  # one of them or both at once.
+  # Native console is configured as a fallback when nothing else is selected.
   class ConsoleWidget < CWM::CustomWidget
     include Grub2Widget
 
@@ -482,23 +489,10 @@
     end
 
     def init
-      enable = grub_default.terminal == :serial
-      Yast::UI.ChangeWidget(Id(:console_frame), :Value, enable)
-      args = grub_default.serial_console || ""
-      Yast::UI.ChangeWidget(Id(:console_args), :Value, args)
-
-      enable = grub_default.terminal == :gfxterm
-      Yast::UI.ChangeWidget(Id(:gfxterm_frame), :Value, enable)
-
-      Yast::UI.ChangeWidget(Id(:gfxmode), :Items, vga_modes_items)
-      mode = grub_default.gfxmode
-
-      # there's mode specified, use it
-      Yast::UI.ChangeWidget(Id(:gfxmode), :Value, mode) if mode && mode != ""
+      init_console
+      init_gfxterm
 
       Yast::UI.ChangeWidget(Id(:theme), :Value, grub_default.theme || "")
-    # FIXME: just temporary workaround for terminal that does contain
-    # more complex string (bsc#1053559)
     rescue RuntimeError
       raise ::Bootloader::UnsupportedOption, "GRUB_TERMINAL"
     end
@@ -528,16 +522,16 @@
     def store
       use_serial = Yast::UI.QueryWidget(Id(:console_frame), :Value)
       use_gfxterm = Yast::UI.QueryWidget(Id(:gfxterm_frame), :Value)
+      use_console = !use_serial && !use_gfxterm
 
-      use_gfxterm = false if use_gfxterm && use_serial
+      grub_default.terminal = []
+      grub_default.terminal = [:gfxterm] if use_gfxterm
 
       if use_serial
         console_value = Yast::UI.QueryWidget(Id(:console_args), :Value)
         BootloaderFactory.current.enable_serial_console(console_value)
-      elsif use_gfxterm
-        grub_default.terminal = :gfxterm
-      else
-        grub_default.terminal = :console
+      elsif use_console
+        grub_default.terminal = [:console]
       end
 
       mode = Yast::UI.QueryWidget(Id(:gfxmode), :Value)
@@ -566,6 +560,26 @@
 
   private
 
+    # Initializates serial console specific widgets
+    def init_console
+      enable = grub_default.terminal.include?(:serial) if grub_default.terminal
+      Yast::UI.ChangeWidget(Id(:console_frame), :Value, enable)
+      args = grub_default.serial_console || ""
+      Yast::UI.ChangeWidget(Id(:console_args), :Value, args)
+    end
+
+    # Initializates gfxterm specific widgets
+    def init_gfxterm
+      enable = grub_default.terminal.include?(:gfxterm) if 
grub_default.terminal
+      Yast::UI.ChangeWidget(Id(:gfxterm_frame), :Value, enable)
+
+      Yast::UI.ChangeWidget(Id(:gfxmode), :Items, vga_modes_items)
+      mode = grub_default.gfxmode
+
+      # there's mode specified, use it
+      Yast::UI.ChangeWidget(Id(:gfxmode), :Value, mode) if mode && mode != ""
+    end
+
     # Explanation for help and error messages
     def syntax
       # Translators: NUM is an abbreviation for "number",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-bootloader-4.1.6/src/lib/bootloader/grub2base.rb 
new/yast2-bootloader-4.1.8/src/lib/bootloader/grub2base.rb
--- old/yast2-bootloader-4.1.6/src/lib/bootloader/grub2base.rb  2018-07-23 
10:19:29.000000000 +0200
+++ new/yast2-bootloader-4.1.8/src/lib/bootloader/grub2base.rb  2018-08-23 
09:39:13.000000000 +0200
@@ -212,17 +212,17 @@
     end
 
     def merge_attributes(default, other)
-      begin
-        # string attributes
-        [:serial_console, :terminal, :timeout, :hidden_timeout, :distributor,
-         :gfxmode, :theme, :default].each do |attr|
-          val = other.public_send(attr)
-          default.public_send((attr.to_s + "=").to_sym, val) if val
-        end
-      # FIXME: only temporary solution to catch too complex grub terminal 
option (bsc#1053559)
-      # will be removed when cfa_grub2 and yast understand more complex 
terminal configuration
-      rescue RuntimeError
-        raise ::Bootloader::UnsupportedOption, "GRUB_TERMINAL"
+      # string attributes
+      [:serial_console, :timeout, :hidden_timeout, :distributor,
+       :gfxmode, :theme, :default].each do |attr|
+        val = other.public_send(attr)
+        default.public_send((attr.to_s + "=").to_sym, val) if val
+      end
+
+      # array attributes with multiple values allowed
+      [:terminal].each do |attr|
+        val = other.public_send(attr)
+        default.public_send((attr.to_s + "=").to_sym, val) if val
       end
 
       # specific attributes that are not part of cfa
@@ -266,7 +266,7 @@
 
       # for ppc: Boards with graphics are rare and those are PowerNV, where
       # modules are not used, see bsc#911682
-      grub_default.terminal = (Yast::Arch.s390 || Yast::Arch.ppc) ? :console : 
:gfxterm
+      grub_default.terminal = (Yast::Arch.s390 || Yast::Arch.ppc) ? [:console] 
: [:gfxterm]
       grub_default.generic_set("GRUB_GFXPAYLOAD_LINUX", "text") if 
Yast::Arch.ppc
     end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-bootloader-4.1.6/src/modules/BootStorage.rb 
new/yast2-bootloader-4.1.8/src/modules/BootStorage.rb
--- old/yast2-bootloader-4.1.6/src/modules/BootStorage.rb       2018-07-23 
10:19:29.000000000 +0200
+++ new/yast2-bootloader-4.1.8/src/modules/BootStorage.rb       2018-08-23 
09:39:13.000000000 +0200
@@ -72,7 +72,7 @@
     # @return [Array<String>] gpt disks only
     def gpt_disks(devices)
       targets = devices.map { |dev_name| staging.find_by_any_name(dev_name) }
-      boot_disks = targets.each_with_object([]) { |t, r| 
r.concat(stage1_disks_for(t)) }
+      boot_disks = targets.compact.each_with_object([]) { |t, r| 
r.concat(stage1_disks_for(t)) }
 
       result = boot_disks.select { |disk| disk.gpt? }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-bootloader-4.1.6/test/autoyast_converter_test.rb 
new/yast2-bootloader-4.1.8/test/autoyast_converter_test.rb
--- old/yast2-bootloader-4.1.6/test/autoyast_converter_test.rb  2018-07-23 
10:19:29.000000000 +0200
+++ new/yast2-bootloader-4.1.8/test/autoyast_converter_test.rb  2018-08-23 
09:39:13.000000000 +0200
@@ -60,7 +60,7 @@
       bootloader = subject.import("global" => data)
 
       expect(bootloader.grub_default.kernel_params.serialize).to eq "verbose 
nomodeset"
-      expect(bootloader.grub_default.terminal).to eq :gfxterm
+      expect(bootloader.grub_default.terminal).to eq [:gfxterm]
       expect(bootloader.grub_default.os_prober).to be_enabled
       expect(bootloader.grub_default.hidden_timeout).to eq "10"
       expect(bootloader.stage1).to be_activate
@@ -109,7 +109,7 @@
 
     it "export to global key configuration" do
       bootloader.grub_default.kernel_params.replace("verbose nomodeset")
-      bootloader.grub_default.terminal = :gfxterm
+      bootloader.grub_default.terminal = [:gfxterm]
       bootloader.grub_default.os_prober.enable
       bootloader.grub_default.hidden_timeout = "10"
       bootloader.stage1.activate = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-bootloader-4.1.6/test/grub2_widgets_test.rb 
new/yast2-bootloader-4.1.8/test/grub2_widgets_test.rb
--- old/yast2-bootloader-4.1.6/test/grub2_widgets_test.rb       2018-07-23 
10:19:29.000000000 +0200
+++ new/yast2-bootloader-4.1.8/test/grub2_widgets_test.rb       2018-08-23 
09:39:13.000000000 +0200
@@ -519,7 +519,7 @@
     end
 
     it "checks serial console checkbox if grub use it" do
-      bootloader.grub_default.terminal = :serial
+      bootloader.grub_default.terminal = [:serial]
 
       expect(Yast::UI).to receive(:ChangeWidget).with(Id(:console_frame), 
:Value, true)
 
@@ -535,7 +535,7 @@
     end
 
     it "checks graphical console checkbox if grub use it" do
-      bootloader.grub_default.terminal = :gfxterm
+      bootloader.grub_default.terminal = [:gfxterm]
 
       expect(Yast::UI).to receive(:ChangeWidget).with(Id(:gfxterm_frame), 
:Value, true)
 
@@ -602,7 +602,7 @@
 
       subject.store
 
-      expect(bootloader.grub_default.terminal).to eq :serial
+      expect(bootloader.grub_default.terminal).to eq [:serial]
       expect(bootloader.grub_default.serial_console).to eq "serial --unit=1 
--speed=9600 --parity=even"
       # it also sets console args to kernel params, but it will be duplication 
of serial console test
     end
@@ -612,10 +612,10 @@
 
       subject.store
 
-      expect(bootloader.grub_default.terminal).to eq :gfxterm
+      expect(bootloader.grub_default.terminal).to eq [:gfxterm]
     end
 
-    it "sets serial terminal if both graphical and serial is selected" do
+    it "sets terminal to enable both if graphical and serial is selected" do
       expect(Yast::UI).to receive(:QueryWidget).with(Id(:console_frame), 
:Value).and_return(true)
       expect(Yast::UI).to receive(:QueryWidget).with(Id(:gfxterm_frame), 
:Value).and_return(true)
       allow(Yast::UI).to receive(:QueryWidget).with(Id(:console_args), :Value)
@@ -623,7 +623,7 @@
 
       subject.store
 
-      expect(bootloader.grub_default.terminal).to eq :serial
+      expect(bootloader.grub_default.terminal).to eq [:gfxterm, :serial]
     end
 
     it "sets console terminal if neither graphical nor serial console 
selected" do
@@ -632,7 +632,7 @@
 
       subject.store
 
-      expect(bootloader.grub_default.terminal).to eq :console
+      expect(bootloader.grub_default.terminal).to eq [:console]
     end
 
     it "stores theme value" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-bootloader-4.1.6/test/grub2base_test.rb 
new/yast2-bootloader-4.1.8/test/grub2base_test.rb
--- old/yast2-bootloader-4.1.6/test/grub2base_test.rb   2018-07-23 
10:19:29.000000000 +0200
+++ new/yast2-bootloader-4.1.8/test/grub2base_test.rb   2018-08-23 
09:39:13.000000000 +0200
@@ -144,7 +144,7 @@
           it "proposes to use serial terminal" do
             subject.propose
 
-            expect(subject.grub_default.terminal).to eq :serial
+            expect(subject.grub_default.terminal).to include :serial
           end
         end
 
@@ -156,7 +156,7 @@
           it "proposes to use console terminal" do
             subject.propose
 
-            expect(subject.grub_default.terminal).to eq :console
+            expect(subject.grub_default.terminal).to eq [:console]
           end
         end
       end
@@ -169,7 +169,7 @@
         it "proposes to use console terminal" do
           subject.propose
 
-          expect(subject.grub_default.terminal).to eq :console
+          expect(subject.grub_default.terminal).to eq [:console]
         end
 
         it "sets GFXPAYLOAD_LINUX to text" do
@@ -187,7 +187,7 @@
         it "proposes gfx terminal" do
           subject.propose
 
-          expect(subject.grub_default.terminal).to eq :gfxterm
+          expect(subject.grub_default.terminal).to eq [:gfxterm]
         end
       end
     end
@@ -426,7 +426,7 @@
       subject.grub_default.default = "0"
       other.grub_default.default = "saved"
 
-      subject.grub_default.terminal = :gfxterm
+      subject.grub_default.terminal = [:gfxterm]
 
       subject.grub_default.os_prober.enable
       other.grub_default.os_prober.disable
@@ -434,7 +434,7 @@
       subject.merge(other)
 
       expect(subject.grub_default.default).to eq "saved"
-      expect(subject.grub_default.terminal).to eq :gfxterm
+      expect(subject.grub_default.terminal).to eq [:gfxterm]
       expect(subject.grub_default.os_prober).to be_disabled
     end
 
@@ -455,6 +455,16 @@
       expect(subject.password).to be_password
     end
 
+    it "use terminal configuration specified in the merged object" do
+      TERMINAL_DEFINITION = [:console, :serial].freeze
+
+      allow(other.grub_default).to 
receive(:terminal).and_return(TERMINAL_DEFINITION)
+
+      subject.merge(other)
+
+      expect(subject.grub_default.terminal).to eql TERMINAL_DEFINITION
+    end
+
     it "overwrites default section with merged one if specified" do
       allow(other.sections).to receive(:all).and_return(["Win crap", 
"openSUSE"])
       allow(subject.sections).to receive(:all).and_return(["Win crap", 
"openSUSE"])


Reply via email to