require 'liquid' require 'nokogiri' require_relative '../../_plugins/gallery_items' require_relative '../../_plugins/lazy_images' class GalleryRenderer include GalleryItems include LazyImages end renderer = GalleryRenderer.new batch = '
' + '

first

' + '

second

' + 'A & B
Caption
' items = renderer.gallery_items(renderer.lazy_images(batch)) raise 'Expected one item per uploaded photo' unless items.length == 2 items.each_with_index do |item, index| html = Nokogiri::HTML::DocumentFragment.parse(item) raise 'Each item must contain one photo' unless html.css('img').length == 1 raise 'Photo order changed' unless html.at_css('img')['src'].end_with?("0#{index}.jpg") raise 'Lazy loading lost' unless html.at_css('img')['loading'] == 'lazy' raise 'Caption lost' unless html.at_css('.image-details').text == 'A & BCaption' raise 'Anchor must occur on the first photo only' unless html.css('#photo-batch').length == (index.zero? ? 1 : 0) end single = '

' raise 'Single photo changed' unless renderer.gallery_items(single) == [single] legacy = '

Existing artwork content

' raise 'Legacy artwork changed' unless renderer.gallery_items(legacy) == [legacy] puts 'Gallery item regression checks passed'