From 68074be9d65e0f75befd5548b2cd3fc5468a0156 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 10 Jun 2013 13:46:42 -0700 Subject: [PATCH] Add initial archive viewer spec --- spec/fixtures/nested.tar | Bin 0 -> 6144 bytes .../spec/archive-view-spec.coffee | 90 ++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 spec/fixtures/nested.tar create mode 100644 src/packages/archive-view/spec/archive-view-spec.coffee diff --git a/spec/fixtures/nested.tar b/spec/fixtures/nested.tar new file mode 100644 index 0000000000000000000000000000000000000000..732692998026d9941bd33546503c20e29d39dc80 GIT binary patch literal 6144 zcmeHK!EVDK49$68!56HyG30wP5!9+u4_!93e?Ob7Ii}6QRSxC?3CIRN-m@uq=&Tz6 z^eKf-`#kqR+`i>kYXJ!pGsh$ofS5UTAz5!s?f-mF!&SC+9)C}l6^F8{)|L7HbLb(Z zg_V`NnkslGWPAlA9xNc>Qk)`(j)0uY;xdi>IghFEyXO r{}V?R;tT!}^!?}c-vX1_;5gpHbR4hahnWjE>=Ez?cmzBGJB+{|;se6v literal 0 HcmV?d00001 diff --git a/src/packages/archive-view/spec/archive-view-spec.coffee b/src/packages/archive-view/spec/archive-view-spec.coffee new file mode 100644 index 000000000..bb0199d1e --- /dev/null +++ b/src/packages/archive-view/spec/archive-view-spec.coffee @@ -0,0 +1,90 @@ +RootView = require 'root-view' + +describe "Archive viewer", -> + beforeEach -> + window.rootView = new RootView + atom.activatePackage('archive-view', sync: true) + + describe ".initialize()", -> + it "displays the files and folders in the archive file", -> + rootView.open('nested.tar') + + archiveView = rootView.find('.archive-view') + expect(rootView.find('.archive-view')).toExist() + + waitsFor -> archiveView.find('.entry').length > 0 + + runs -> + expect(archiveView.find('.directory').length).toBe 6 + expect(archiveView.find('.directory:eq(0)').text()).toBe 'd1' + expect(archiveView.find('.directory:eq(1)').text()).toBe 'd2' + expect(archiveView.find('.directory:eq(2)').text()).toBe 'd3' + expect(archiveView.find('.directory:eq(3)').text()).toBe 'd4' + expect(archiveView.find('.directory:eq(4)').text()).toBe 'da' + expect(archiveView.find('.directory:eq(5)').text()).toBe 'db' + + expect(archiveView.find('.file').length).toBe 3 + expect(archiveView.find('.file:eq(0)').text()).toBe 'f1.txt' + expect(archiveView.find('.file:eq(1)').text()).toBe 'f2.txt' + expect(archiveView.find('.file:eq(2)').text()).toBe 'fa.txt' + + it "selects the first file", -> + rootView.open('nested.tar') + + archiveView = rootView.find('.archive-view') + waitsFor -> archiveView.find('.entry').length > 0 + runs -> expect(archiveView.find('.selected').text()).toBe 'f1.txt' + + describe "when core:move-up/core:move-down is triggered", -> + it "selects the next/previous file", -> + rootView.open('nested.tar') + + archiveView = rootView.find('.archive-view') + + waitsFor -> archiveView.find('.entry').length > 0 + + runs -> + archiveView.find('.selected').trigger 'core:move-up' + expect(archiveView.find('.selected').text()).toBe 'f1.txt' + archiveView.find('.selected').trigger 'core:move-down' + expect(archiveView.find('.selected').text()).toBe 'f2.txt' + archiveView.find('.selected').trigger 'core:move-down' + expect(archiveView.find('.selected').text()).toBe 'fa.txt' + archiveView.find('.selected').trigger 'core:move-down' + expect(archiveView.find('.selected').text()).toBe 'fa.txt' + archiveView.find('.selected').trigger 'core:move-up' + expect(archiveView.find('.selected').text()).toBe 'f2.txt' + archiveView.find('.selected').trigger 'core:move-up' + expect(archiveView.find('.selected').text()).toBe 'f1.txt' + + describe "when a file is clicked", -> + it "copies the contents to a temp file and opens it in a new editor", -> + rootView.open('nested.tar') + + archiveView = rootView.find('.archive-view') + + waitsFor -> archiveView.find('.entry').length > 0 + + runs -> + spyOn(rootView, 'open').andCallThrough() + archiveView.find('.file:eq(2)').trigger 'click' + waitsFor -> rootView.open.callCount is 1 + runs -> + expect(rootView.getActiveView().getText()).toBe 'hey there\n' + expect(rootView.getActivePaneItem().getTitle()).toBe 'fa.txt' + + describe "when core:confirm is triggered", -> + it "copies the contents to a temp file and opens it in a new editor", -> + rootView.open('nested.tar') + + archiveView = rootView.find('.archive-view') + + waitsFor -> archiveView.find('.entry').length > 0 + + runs -> + spyOn(rootView, 'open').andCallThrough() + archiveView.find('.file:eq(0)').trigger 'core:confirm' + waitsFor -> rootView.open.callCount is 1 + runs -> + expect(rootView.getActiveView().getText()).toBe '' + expect(rootView.getActivePaneItem().getTitle()).toBe 'f1.txt'