fun data()

in intellij-plugin/educational-core/testSrc/com/jetbrains/edu/coursecreator/archive/FileAttributesTest.kt [76:161]


    fun data(): Collection<Array<Any>> {
      val excluded = expected(
        excludedFromArchive = true,
        archiveInclusionPolicy = ArchiveInclusionPolicy.MUST_EXCLUDE,
        visibility = CourseViewVisibility.AUTHOR_DECISION
      )
      val excludedButCanBeInside = expected(
        excludedFromArchive = true,
        archiveInclusionPolicy = ArchiveInclusionPolicy.EXCLUDED_BY_DEFAULT,
        visibility = CourseViewVisibility.AUTHOR_DECISION
      )
      val normal = expected(
        excludedFromArchive = false,
        archiveInclusionPolicy = ArchiveInclusionPolicy.INCLUDED_BY_DEFAULT,
        visibility = CourseViewVisibility.AUTHOR_DECISION
      )
      val excludedAndInvisible = excluded.copy(visibility = CourseViewVisibility.INVISIBLE_FOR_ALL)

      return listOf(
        arrayOf("regular-file", normal),
        arrayOf("regular-folder/", normal),
        arrayOf("regular-file/inside-a-folder", normal),
        arrayOf("regular-folder/inside-a-folder/", normal),

        //.idea contents
        arrayOf(".idea/", normal.copy(archiveInclusionPolicy = ArchiveInclusionPolicy.EXCLUDED_BY_DEFAULT)),
        arrayOf(".idea/subfile", excluded.copy(archiveInclusionPolicy = ArchiveInclusionPolicy.EXCLUDED_BY_DEFAULT)),
        arrayOf(".idea/subfolder/", excluded.copy(archiveInclusionPolicy = ArchiveInclusionPolicy.EXCLUDED_BY_DEFAULT)),
        arrayOf(".idea/inspectionProfiles/", normal.copy(archiveInclusionPolicy = ArchiveInclusionPolicy.EXCLUDED_BY_DEFAULT)),
        arrayOf(".idea/scopes/", normal.copy(archiveInclusionPolicy = ArchiveInclusionPolicy.EXCLUDED_BY_DEFAULT)),
        arrayOf(".idea/scopes/subfile", normal.copy(archiveInclusionPolicy = ArchiveInclusionPolicy.EXCLUDED_BY_DEFAULT)),
        arrayOf(".idea/workspace.xml", excluded),
        arrayOf(".idea/usage.statistics.xml", excluded),
        arrayOf(".idea/shelf/", excluded),
        arrayOf(".idea/shelf/a-file.txt", excluded),

        //.dot files and folders
        arrayOf(".folder/", excludedButCanBeInside),
        arrayOf(".file", excludedButCanBeInside),
        arrayOf(".folder/in/subfolder/", excludedButCanBeInside),
        arrayOf(".file/in/subfolder", excludedButCanBeInside),
        arrayOf("folder/.subfile", excludedButCanBeInside),
        arrayOf("folder/.subfolder/", excludedButCanBeInside),
        arrayOf("folder/.subfolder/subfile", excludedButCanBeInside),
        arrayOf(".idea/scopes/.excluded_with_dot", excludedButCanBeInside),

        // iml files
        arrayOf("project.iml", excludedAndInvisible),
        arrayOf("subfolder/project.iml", excludedAndInvisible),

        // task descriptions
        arrayOf("lesson/task/task.md", excluded),
        arrayOf("section/lesson/task/task.md", excluded),
        arrayOf("lesson/task/task.html", excluded),
        arrayOf("section/lesson/task/task.html", excluded),

        // configs
        arrayOf("course-info.yaml", excluded),
        arrayOf("section/section-info.yaml", excluded),
        arrayOf("lesson/lesson-info.yaml", excluded),
        arrayOf("section/lesson/lesson-info.yaml", excluded),
        arrayOf("lesson/task/task-info.yaml", excluded),
        arrayOf("section/lesson/task/task-info.yaml", excluded),

        // remote configs
        arrayOf("course-remote-info.yaml", excluded),
        arrayOf("section/section-remote-info.yaml", excluded),
        arrayOf("lesson/lesson-remote-info.yaml", excluded),
        arrayOf("section/lesson/lesson-remote-info.yaml", excluded),
        arrayOf("lesson/task/task-remote-info.yaml", excluded),
        arrayOf("section/lesson/task/task-remote-info.yaml", excluded),

        //.coursecreator
        arrayOf(".coursecreator/archive.zip", excludedAndInvisible),

        //vcs
        arrayOf(".git/objects/ha/hahaha42e136b17b7adfe79921a7a17def1185", excludedAndInvisible),
        arrayOf(".git/config", excludedAndInvisible),

        // other
        arrayOf("hints", normal.copy(excludedFromArchive = true)),
        arrayOf("stepik_ids.json", normal.copy(excludedFromArchive = true)),
        arrayOf(".courseignore", excluded),
        arrayOf("courseIcon.svg", excluded),
      )
    }