@@ -704,3 +704,36 @@ test_that("Strips can render custom elements", {
704
704
theme(strip.text = element_test())
705
705
expect_doppelganger(" custom strip elements can render" , plot )
706
706
})
707
+
708
+ test_that(" legend margins are correct when using relative key sizes" , {
709
+
710
+ df <- data_frame(x = 1 : 3 , y = 1 : 3 , a = letters [1 : 3 ])
711
+ p <- ggplot(df , aes(x , y , colour = x , shape = a )) +
712
+ geom_point() +
713
+ theme_test() +
714
+ theme(
715
+ legend.box.background = element_rect(colour = " blue" , fill = NA ),
716
+ legend.background = element_rect(colour = " red" , fill = NA )
717
+ )
718
+
719
+ vertical <- p + guides(
720
+ colour = guide_colourbar(barheight = unit(1 , " null" )),
721
+ shape = guide_legend(keyheight = unit(1 / 3 , " null" ))
722
+ ) + theme(
723
+ legend.box.margin = margin(t = 5 , b = 10 , unit = " mm" ),
724
+ legend.margin = margin(t = 10 , b = 5 , unit = " mm" )
725
+ )
726
+
727
+ expect_doppelganger(" stretched vertical legends" , vertical )
728
+
729
+ horizontal <- p + guides(
730
+ colour = guide_colourbar(barwidth = unit(1 , " null" )),
731
+ shape = guide_legend(keywidth = unit(1 / 3 , " null" ))
732
+ ) + theme(
733
+ legend.position = " top" ,
734
+ legend.box.margin = margin(l = 5 , r = 10 , unit = " mm" ),
735
+ legend.margin = margin(l = 10 , r = 5 , unit = " mm" )
736
+ )
737
+
738
+ expect_doppelganger(" stretched horizontal legends" , horizontal )
739
+ })
0 commit comments