summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2011-12-02 18:45:12 +0900
committerRandy Morgan <[email protected]>2011-12-02 18:45:12 +0900
commitb376e6eb11a9cec2589fe1495e6c61db066c92ab (patch)
treed8bb9484460ccaf1994d555a2a271fffb3a4ac2b
parent3def8f8895a62783cf2e36152d786429e25bb90e (diff)
downloadcaxlsx-b376e6eb11a9cec2589fe1495e6c61db066c92ab.tar.gz
caxlsx-b376e6eb11a9cec2589fe1495e6c61db066c92ab.zip
adding in the picture locking class and tests
-rw-r--r--lib/axlsx/drawing/picture_locking.rb72
-rw-r--r--test/drawing/tc_picture_locking.rb73
2 files changed, 145 insertions, 0 deletions
diff --git a/lib/axlsx/drawing/picture_locking.rb b/lib/axlsx/drawing/picture_locking.rb
new file mode 100644
index 00000000..b1c4850e
--- /dev/null
+++ b/lib/axlsx/drawing/picture_locking.rb
@@ -0,0 +1,72 @@
+module Axlsx
+ # The picture locking class defines the locking properties for pictures in your workbook.
+ class PictureLocking
+
+
+ attr_reader :noGrp
+ attr_reader :noSelect
+ attr_reader :noRot
+ attr_reader :noChangeAspect
+ attr_reader :noMove
+ attr_reader :noResize
+ attr_reader :noEditPoints
+ attr_reader :noAdjustHandles
+ attr_reader :noChangeArrowheads
+ attr_reader :noChangeShapeType
+
+ # Creates a new PictureLocking object
+ # @option options [Boolean] noGrp
+ # @option options [Boolean] noSelect
+ # @option options [Boolean] noRot
+ # @option options [Boolean] noChangeAspect
+ # @option options [Boolean] noMove
+ # @option options [Boolean] noResize
+ # @option options [Boolean] noEditPoints
+ # @option options [Boolean] noAdjustHandles
+ # @option options [Boolean] noChangeArrowheads
+ # @option options [Boolean] noChangeShapeType
+ def initialize(options={})
+ @noChangeAspect = true
+ options.each do |o|
+ self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
+ end
+ end
+
+ # @see noGrp
+ def noGrp=(v) Axlsx::validate_boolean v; @noGrp = v end
+
+ # @see noSelect
+ def noSelect=(v) Axlsx::validate_boolean v; @noSelect = v end
+
+ # @see noRot
+ def noRot=(v) Axlsx::validate_boolean v; @noRot = v end
+
+ # @see noChangeAspect
+ def noChangeAspect=(v) Axlsx::validate_boolean v; @noChangeAspect = v end
+
+ # @see noMove
+ def noMove=(v) Axlsx::validate_boolean v; @noMove = v end
+
+ # @see noResize
+ def noResize=(v) Axlsx::validate_boolean v; @noResize = v end
+
+ # @see noEditPoints
+ def noEditPoints=(v) Axlsx::validate_boolean v; @noEditPoints = v end
+
+ # @see noAdjustHandles
+ def noAdjustHandles=(v) Axlsx::validate_boolean v; @noAdjustHandles = v end
+
+ # @see noChangeArrowheads
+ def noChangeArrowheads=(v) Axlsx::validate_boolean v; @noChangeArrowheads = v end
+
+ # @see noChangeShapeType
+ def noChangeShapeType=(v) Axlsx::validate_boolean v; @noChangeShapeType = v end
+
+ # Serializes the picture locking
+ # @param [Nokogiri::XML::Builder] xml The document builder instance this objects xml will be added to.
+ # @return [String]
+ def to_xml(xml)
+ xml[:a].picLocks(self.instance_values)
+ end
+ end
+end
diff --git a/test/drawing/tc_picture_locking.rb b/test/drawing/tc_picture_locking.rb
new file mode 100644
index 00000000..15b89e22
--- /dev/null
+++ b/test/drawing/tc_picture_locking.rb
@@ -0,0 +1,73 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestPictureLocking < Test::Unit::TestCase
+ def setup
+ @item = Axlsx::PictureLocking.new
+ end
+ def teardown
+ end
+
+ def test_initialiation
+ assert_equal(@item.instance_values.size, 1)
+ assert_equal(@item.noChangeAspect, true)
+ end
+
+ def test_noGrp
+ assert_raise(ArgumentError) { @item.noGrp = -1 }
+ assert_nothing_raised { @item.noGrp = false }
+ assert_equal(@item.noGrp, false )
+ end
+
+ def test_noRot
+ assert_raise(ArgumentError) { @item.noRot = -1 }
+ assert_nothing_raised { @item.noRot = false }
+ assert_equal(@item.noRot, false )
+ end
+
+ def test_noChangeAspect
+ assert_raise(ArgumentError) { @item.noChangeAspect = -1 }
+ assert_nothing_raised { @item.noChangeAspect = false }
+ assert_equal(@item.noChangeAspect, false )
+ end
+
+ def test_noMove
+ assert_raise(ArgumentError) { @item.noMove = -1 }
+ assert_nothing_raised { @item.noMove = false }
+ assert_equal(@item.noMove, false )
+ end
+
+ def test_noResize
+ assert_raise(ArgumentError) { @item.noResize = -1 }
+ assert_nothing_raised { @item.noResize = false }
+ assert_equal(@item.noResize, false )
+ end
+
+ def test_noEditPoints
+ assert_raise(ArgumentError) { @item.noEditPoints = -1 }
+ assert_nothing_raised { @item.noEditPoints = false }
+ assert_equal(@item.noEditPoints, false )
+ end
+
+ def test_noAdjustHandles
+ assert_raise(ArgumentError) { @item.noAdjustHandles = -1 }
+ assert_nothing_raised { @item.noAdjustHandles = false }
+ assert_equal(@item.noAdjustHandles, false )
+ end
+
+ def test_noChangeArrowheads
+ assert_raise(ArgumentError) { @item.noChangeArrowheads = -1 }
+ assert_nothing_raised { @item.noChangeArrowheads = false }
+ assert_equal(@item.noChangeArrowheads, false )
+ end
+
+ def test_noChangeShapeType
+ assert_raise(ArgumentError) { @item.noChangeShapeType = -1 }
+ assert_nothing_raised { @item.noChangeShapeType = false }
+ assert_equal(@item.noChangeShapeType, false )
+ end
+
+
+
+
+end