API as java module (#34)

This commit is contained in:
Mikołaj Pich
2017-11-18 22:17:18 +01:00
committed by Rafał Borcz
parent 428b372827
commit 29d12b79ca
90 changed files with 352 additions and 34 deletions

View File

@ -44,33 +44,33 @@ greendao {
}
dependencies {
compile 'com.android.support:appcompat-v7:27.0.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:design:27.0.1'
compile 'com.android.support:support-vector-drawable:27.0.1'
compile 'com.android.support:support-v4:27.0.1'
compile 'com.android.support:recyclerview-v7:27.0.1'
compile 'com.android.support:cardview-v7:27.0.1'
compile 'com.android.support:customtabs:27.0.1'
compile 'com.firebase:firebase-jobdispatcher:0.8.4'
compile 'com.thoughtbot:expandablerecyclerview:1.3'
compile 'org.apache.commons:commons-lang3:3.6'
compile 'org.apache.commons:commons-collections4:4.1'
compile 'org.jsoup:jsoup:1.10.3'
compile 'org.greenrobot:greendao:3.2.2'
implementation project(":api")
implementation 'com.android.support:appcompat-v7:27.0.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:27.0.1'
implementation 'com.android.support:support-vector-drawable:27.0.1'
implementation 'com.android.support:support-v4:27.0.1'
implementation 'com.android.support:recyclerview-v7:27.0.1'
implementation 'com.android.support:cardview-v7:27.0.1'
implementation 'com.android.support:customtabs:27.0.1'
implementation 'com.firebase:firebase-jobdispatcher:0.8.4'
implementation 'com.thoughtbot:expandablerecyclerview:1.3'
implementation 'org.apache.commons:commons-lang3:3.6'
implementation 'org.apache.commons:commons-collections4:4.1'
implementation 'org.greenrobot:greendao:3.2.2'
debugCompile 'com.amitshekhar.android:debug-db:1.0.1'
debugCompile 'net.zetetic:android-database-sqlcipher:3.5.7@aar'
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.11.0'
debugImplementation 'com.amitshekhar.android:debug-db:1.0.1'
debugImplementation 'net.zetetic:android-database-sqlcipher:3.5.7@aar'
androidTestCompile('com.android.support.test.espresso:espresso-core:3.0.1', {
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.11.0'
androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', {
exclude group: 'com.android.support', module: 'support-annotations'
})
androidTestCompile 'com.android.support:support-annotations:27.0.1'
androidTestCompile 'com.android.support.test:runner:1.0.1'
androidTestCompile 'com.android.support.test:rules:1.0.1'
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
androidTestCompile 'org.mockito:mockito-android:2.11.0'
androidTestImplementation 'com.android.support:support-annotations:27.0.1'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test:rules:1.0.1'
androidTestImplementation 'org.hamcrest:hamcrest-library:1.3'
androidTestImplementation 'org.mockito:mockito-android:2.11.0'
}

View File

@ -1,49 +0,0 @@
package io.github.wulkanowy.api;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;
import java.util.Map;
public abstract class Api {
protected Cookies cookies = new Cookies();
public Cookies getCookiesObject() {
return cookies;
}
public Map<String, String> getCookies() {
return cookies.getItems();
}
public Document getPageByUrl(String url) throws IOException {
Connection.Response response = Jsoup.connect(url)
.followRedirects(true)
.cookies(getCookies())
.execute();
this.cookies.addItems(response.cookies());
return response.parse();
}
public Document postPageByUrl(String url, String[][] params) throws IOException {
Connection connection = Jsoup.connect(url);
for (String[] data : params) {
connection.data(data[0], data[1]);
}
Connection.Response response = connection.cookies(getCookies())
.followRedirects(true)
.method(Connection.Method.POST)
.execute();
this.cookies.addItems(response.cookies());
return response.parse();
}
}

View File

@ -1,23 +0,0 @@
package io.github.wulkanowy.api;
import java.util.HashMap;
import java.util.Map;
public class Cookies {
private Map<String, String> cookies = new HashMap<>();
public Map<String, String> getItems() {
return cookies;
}
public Cookies setItems(Map<String, String> items) {
this.cookies = items;
return this;
}
public Cookies addItems(Map<String, String> items) {
this.cookies.putAll(items);
return this;
}
}

View File

@ -1,37 +0,0 @@
package io.github.wulkanowy.api;
public class Semester {
private String number = "";
private String id = "";
private boolean isCurrent = false;
public String getNumber() {
return number;
}
public Semester setNumber(String number) {
this.number = number;
return this;
}
public String getId() {
return id;
}
public Semester setId(String id) {
this.id = id;
return this;
}
public boolean isCurrent() {
return isCurrent;
}
public Semester setCurrent(boolean current) {
isCurrent = current;
return this;
}
}

View File

@ -1,134 +0,0 @@
package io.github.wulkanowy.api;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.login.NotLoggedInErrorException;
public class StudentAndParent extends Api {
private String startPageUrl = "https://uonetplus.vulcan.net.pl/{symbol}/Start.mvc/Index";
private String baseUrl = "https://uonetplus-opiekun.vulcan.net.pl/{symbol}/{ID}/";
private String gradesPageUrl = baseUrl + "Oceny/Wszystkie";
private String symbol;
private String id;
public StudentAndParent(Cookies cookies, String symbol) {
this.cookies = cookies;
this.symbol = symbol;
}
public StudentAndParent(Cookies cookies, String symbol, String id) {
this(cookies, symbol);
this.id = id;
}
public String getGradesPageUrl() {
return gradesPageUrl;
}
public String getBaseUrl() {
return baseUrl;
}
public String getStartPageUrl() {
return startPageUrl;
}
public String getSymbol() {
return symbol;
}
public String getId() {
return id;
}
public void storeContextCookies() throws IOException, NotLoggedInErrorException {
getPageByUrl(getSnpPageUrl());
}
public String getSnpPageUrl() throws IOException, NotLoggedInErrorException {
if (null != getId()) {
return getBaseUrl().replace("{symbol}", getSymbol()).replace("{ID}", getId());
}
// get url to uonetplus-opiekun.vulcan.net.pl
Document startPage = getPageByUrl(getStartPageUrl().replace("{symbol}", getSymbol()));
Element studentTileLink = startPage.select(".panel.linkownia.pracownik.klient > a").first();
if (null == studentTileLink) {
throw new NotLoggedInErrorException();
}
String snpPageUrl = studentTileLink.attr("href");
this.id = getExtractedIdFromUrl(snpPageUrl);
return snpPageUrl;
}
public String getExtractedIdFromUrl(String snpPageUrl) throws NotLoggedInErrorException {
String[] path = snpPageUrl.split("vulcan.net.pl/")[1].split("/");
if (4 != path.length) {
throw new NotLoggedInErrorException();
}
return path[1];
}
public String getRowDataChildValue(Element e, int index) {
return e.select(".daneWiersz .wartosc").get(index - 1).text();
}
public Document getSnPPageDocument(String url) throws IOException {
return getPageByUrl(getBaseUrl()
.replace("{symbol}", getSymbol())
.replace("{ID}", getId()) + url);
}
public List<Semester> getSemesters() throws IOException {
return getSemesters(getSnPPageDocument(getGradesPageUrl()));
}
public List<Semester> getSemesters(Document gradesPage) {
Elements semesterOptions = gradesPage.select("#okresyKlasyfikacyjneDropDownList option");
List<Semester> semesters = new ArrayList<>();
for (Element e : semesterOptions) {
Semester semester = new Semester()
.setId(e.text())
.setNumber(e.attr("value"));
if ("selected".equals(e.attr("selected"))) {
semester.setCurrent(true);
}
semesters.add(semester);
}
return semesters;
}
public Semester getCurrentSemester(List<Semester> semesterList) {
Semester current = null;
for (Semester s : semesterList) {
if (s.isCurrent()) {
current = s;
break;
}
}
return current;
}
}

View File

@ -1,124 +0,0 @@
package io.github.wulkanowy.api;
import java.io.IOException;
import io.github.wulkanowy.api.attendance.AttendanceStatistics;
import io.github.wulkanowy.api.attendance.AttendanceTable;
import io.github.wulkanowy.api.exams.ExamsWeek;
import io.github.wulkanowy.api.grades.GradesList;
import io.github.wulkanowy.api.grades.SubjectsList;
import io.github.wulkanowy.api.login.AccountPermissionException;
import io.github.wulkanowy.api.login.BadCredentialsException;
import io.github.wulkanowy.api.login.Login;
import io.github.wulkanowy.api.login.LoginErrorException;
import io.github.wulkanowy.api.login.NotLoggedInErrorException;
import io.github.wulkanowy.api.notes.AchievementsList;
import io.github.wulkanowy.api.notes.NotesList;
import io.github.wulkanowy.api.school.SchoolInfo;
import io.github.wulkanowy.api.school.TeachersInfo;
import io.github.wulkanowy.api.timetable.Timetable;
import io.github.wulkanowy.api.user.BasicInformation;
import io.github.wulkanowy.api.user.FamilyInformation;
public class Vulcan extends Api {
private String id;
private String symbol;
private StudentAndParent snp;
public void login(Cookies cookies, String symbol) {
this.cookies = cookies;
this.symbol = symbol;
}
public void login(String email, String password, String symbol)
throws BadCredentialsException, AccountPermissionException, LoginErrorException, IOException {
Login login = new Login(new Cookies());
String realSymbol = login.login(email, password, symbol);
login(login.getCookiesObject(), realSymbol);
}
public void login(String email, String password, String symbol, String id)
throws BadCredentialsException, AccountPermissionException, LoginErrorException, IOException {
login(email, password, symbol);
this.id = id;
}
public StudentAndParent getStudentAndParent() throws IOException, NotLoggedInErrorException {
if (null == getCookiesObject()) {
throw new NotLoggedInErrorException();
}
if (null != snp) {
return snp;
}
snp = createSnp(cookies, symbol, id);
snp.storeContextCookies();
this.cookies = snp.getCookiesObject();
return snp;
}
public StudentAndParent createSnp(Cookies cookies, String symbol, String id) {
if (null == id) {
return new StudentAndParent(cookies, symbol);
}
return new StudentAndParent(cookies, symbol, id);
}
public AttendanceStatistics getAttendanceStatistics() throws IOException, NotLoggedInErrorException {
return new AttendanceStatistics(getStudentAndParent());
}
public AttendanceTable getAttendanceTable() throws IOException, NotLoggedInErrorException {
return new AttendanceTable(getStudentAndParent());
}
public ExamsWeek getExamsList() throws IOException, NotLoggedInErrorException {
return new ExamsWeek(getStudentAndParent());
}
public GradesList getGradesList() throws IOException, NotLoggedInErrorException {
return new GradesList(getStudentAndParent());
}
public SubjectsList getSubjectsList() throws IOException, NotLoggedInErrorException {
return new SubjectsList(getStudentAndParent());
}
public AchievementsList getAchievementsList() throws IOException, NotLoggedInErrorException {
return new AchievementsList(getStudentAndParent());
}
public NotesList getNotesList() throws IOException, NotLoggedInErrorException {
return new NotesList(getStudentAndParent());
}
public SchoolInfo getSchoolInfo() throws IOException, NotLoggedInErrorException {
return new SchoolInfo(getStudentAndParent());
}
public TeachersInfo getTeachersInfo() throws IOException, NotLoggedInErrorException {
return new TeachersInfo(getStudentAndParent());
}
public Timetable getTimetable() throws IOException, NotLoggedInErrorException {
return new Timetable(getStudentAndParent());
}
public BasicInformation getBasicInformation() throws IOException, NotLoggedInErrorException {
return new BasicInformation(getStudentAndParent());
}
public FamilyInformation getFamilyInformation() throws IOException, NotLoggedInErrorException {
return new FamilyInformation(getStudentAndParent());
}
}

View File

@ -1,86 +0,0 @@
package io.github.wulkanowy.api.attendance;
import org.apache.commons.lang3.math.NumberUtils;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParent;
public class AttendanceStatistics {
private StudentAndParent snp;
private String attendancePageUrl = "Frekwencja.mvc";
public AttendanceStatistics(StudentAndParent snp) {
this.snp = snp;
}
public Types getTypesTable() throws IOException {
return getTypesTable("");
}
public Types getTypesTable(String tick) throws IOException {
return getTypesTable(tick, -1);
}
public List<Subject> getSubjectList() throws IOException {
Element mainContainer = snp.getSnPPageDocument(attendancePageUrl)
.select(".mainContainer #idPrzedmiot").first();
List<Subject> subjectList = new ArrayList<>();
for (Element subject : mainContainer.select("option")) {
subjectList.add(new Subject()
.setId(Integer.parseInt(subject.attr("value")))
.setName(subject.text())
);
}
return subjectList;
}
public Types getTypesTable(String tick, Integer subjectId) throws IOException {
Element mainContainer = snp.getSnPPageDocument((attendancePageUrl
+ "?data={tick}&idPrzedmiot={subject}")
.replace("{tick}", tick)
.replace("{subject}", subjectId.toString())
).select(".mainContainer").first();
Element table = mainContainer.select("table:nth-of-type(2)").first();
Elements headerCells = table.select("thead th");
List<Type> typeList = new ArrayList<>();
Elements typesRows = table.select("tbody tr");
// fill types with months
for (Element row : typesRows) {
Elements monthsCells = row.select("td");
List<Month> monthList = new ArrayList<>();
// iterate over month in type, first column is empty, last is `total`; (0, n-1)
for (int i = 1; i < monthsCells.size() - 1; i++) {
monthList.add(new Month()
.setValue(NumberUtils.toInt(monthsCells.get(i).text(), 0))
.setName(headerCells.get(i).text()));
}
typeList.add(new Type()
.setTotal(NumberUtils.toInt(monthsCells.last().text(), 0))
.setName(monthsCells.get(0).text())
.setMonthList(monthList));
}
String total = mainContainer.select("h2").text().split(": ")[1];
return new Types()
.setTotal(NumberUtils.toDouble(total.replace("%", "").replace(",", ".")))
.setTypeList(typeList);
}
}

View File

@ -1,98 +0,0 @@
package io.github.wulkanowy.api.attendance;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParent;
public class AttendanceTable {
private StudentAndParent snp;
private String attendancePageUrl = "Frekwencja.mvc?data=";
public AttendanceTable(StudentAndParent snp) {
this.snp = snp;
}
public Week getWeekTable() throws IOException {
return getWeekTable("");
}
public Week getWeekTable(String tick) throws IOException {
Element table = snp.getSnPPageDocument(attendancePageUrl + tick)
.select(".mainContainer .presentData").first();
Elements headerCells = table.select("thead th");
List<Day> days = new ArrayList<>();
for (int i = 1; i < headerCells.size(); i++) {
days.add(new Day().setDate(headerCells.get(i).html().split("<br>")[1]));
}
Elements hoursInDays = table.select("tbody tr");
// fill days in week with lessons
for (Element row : hoursInDays) {
Elements hours = row.select("td");
// fill hours in day
int size = hours.size();
for (int i = 1; i < size; i++) {
days.get(i - 1).setLesson(getNewLesson(hours.get(i)));
}
}
String[] dayDescription = headerCells.get(1).html().split("<br>");
return new Week()
.setStartDayDate(dayDescription[1])
.setDays(days);
}
private Lesson getNewLesson(Element cell) {
Lesson lesson = new Lesson();
lesson.setSubject(cell.select("span").text());
if (Lesson.CLASS_NOT_EXIST.equals(cell.attr("class"))) {
lesson.setNotExist(true);
lesson.setEmpty(true);
return lesson;
}
switch (cell.select("div").attr("class")) {
case Lesson.CLASS_PRESENCE:
lesson.setPresence(true);
break;
case Lesson.CLASS_ABSENCE_UNEXCUSED:
lesson.setAbsenceUnexcused(true);
break;
case Lesson.CLASS_ABSENCE_EXCUSED:
lesson.setAbsenceExcused(true);
break;
case Lesson.CLASS_ABSENCE_FOR_SCHOOL_REASONS:
lesson.setAbsenceForSchoolReasons(true);
break;
case Lesson.CLASS_UNEXCUSED_LATENESS:
lesson.setUnexcusedLateness(true);
break;
case Lesson.CLASS_EXCUSED_LATENESS:
lesson.setExcusedLateness(true);
break;
case Lesson.CLASS_EXEMPTION:
lesson.setExemption(true);
break;
default:
lesson.setEmpty(true);
break;
}
return lesson;
}
}

View File

@ -1,34 +0,0 @@
package io.github.wulkanowy.api.attendance;
import java.util.ArrayList;
import java.util.List;
public class Day {
private List<Lesson> lessons = new ArrayList<>();
private String date = "";
public Lesson getLesson(int index) {
return lessons.get(index);
}
public List<Lesson> getLessons() {
return lessons;
}
public Day setLesson(Lesson lesson) {
this.lessons.add(lesson);
return this;
}
public String getDate() {
return date;
}
public Day setDate(String date) {
this.date = date;
return this;
}
}

View File

@ -1,120 +0,0 @@
package io.github.wulkanowy.api.attendance;
public class Lesson {
protected static final String CLASS_NOT_EXIST = "x-sp-nieobecny-w-oddziale";
protected static final String CLASS_PRESENCE = "x-obecnosc";
protected static final String CLASS_ABSENCE_UNEXCUSED = "x-nieobecnosc-nieuspr";
protected static final String CLASS_ABSENCE_EXCUSED = "x-nieobecnosc-uspr";
protected static final String CLASS_ABSENCE_FOR_SCHOOL_REASONS = "x-nieobecnosc-przycz-szkol";
protected static final String CLASS_UNEXCUSED_LATENESS = "x-sp-nieusprawiedliwione";
protected static final String CLASS_EXCUSED_LATENESS = "x-sp-spr";
protected static final String CLASS_EXEMPTION = "x-sp-zwolnienie";
private String subject = "";
private boolean isNotExist = false;
private boolean isPresence = false;
private boolean isAbsenceUnexcused = false;
private boolean isAbsenceExcused = false;
private boolean isUnexcusedLateness = false;
private boolean isAbsenceForSchoolReasons = false;
private boolean isExcusedLateness = false;
private boolean isExemption = false;
private boolean isEmpty = false;
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public boolean isNotExist() {
return isNotExist;
}
public void setNotExist(boolean notExist) {
isNotExist = notExist;
}
public boolean isPresence() {
return isPresence;
}
public void setPresence(boolean presence) {
isPresence = presence;
}
public boolean isAbsenceUnexcused() {
return isAbsenceUnexcused;
}
public void setAbsenceUnexcused(boolean absenceUnexcused) {
isAbsenceUnexcused = absenceUnexcused;
}
public boolean isAbsenceExcused() {
return isAbsenceExcused;
}
public void setAbsenceExcused(boolean absenceExcused) {
isAbsenceExcused = absenceExcused;
}
public boolean isUnexcusedLateness() {
return isUnexcusedLateness;
}
public void setUnexcusedLateness(boolean unexcusedLateness) {
isUnexcusedLateness = unexcusedLateness;
}
public boolean isAbsenceForSchoolReasons() {
return isAbsenceForSchoolReasons;
}
public void setAbsenceForSchoolReasons(boolean absenceForSchoolReasons) {
isAbsenceForSchoolReasons = absenceForSchoolReasons;
}
public boolean isExcusedLateness() {
return isExcusedLateness;
}
public void setExcusedLateness(boolean excusedLateness) {
isExcusedLateness = excusedLateness;
}
public boolean isExemption() {
return isExemption;
}
public void setExemption(boolean exemption) {
isExemption = exemption;
}
public boolean isEmpty() {
return isEmpty;
}
public void setEmpty(boolean empty) {
isEmpty = empty;
}
}

View File

@ -1,26 +0,0 @@
package io.github.wulkanowy.api.attendance;
public class Month {
private String name = "";
private int value = 0;
public String getName() {
return name;
}
public Month setName(String name) {
this.name = name;
return this;
}
public int getValue() {
return value;
}
public Month setValue(int value) {
this.value = value;
return this;
}
}

View File

@ -1,26 +0,0 @@
package io.github.wulkanowy.api.attendance;
public class Subject {
private int id = -1;
private String name = "";
public int getId() {
return id;
}
public Subject setId(int id) {
this.id = id;
return this;
}
public String getName() {
return name;
}
public Subject setName(String name) {
this.name = name;
return this;
}
}

View File

@ -1,40 +0,0 @@
package io.github.wulkanowy.api.attendance;
import java.util.ArrayList;
import java.util.List;
public class Type {
private String name = "";
private int total = 0;
private List<Month> monthList = new ArrayList<>();
public String getName() {
return name;
}
public Type setName(String name) {
this.name = name;
return this;
}
public int getTotal() {
return total;
}
public Type setTotal(int total) {
this.total = total;
return this;
}
public List<Month> getMonthList() {
return monthList;
}
public Type setMonthList(List<Month> monthList) {
this.monthList = monthList;
return this;
}
}

View File

@ -1,29 +0,0 @@
package io.github.wulkanowy.api.attendance;
import java.util.ArrayList;
import java.util.List;
public class Types {
private double total = 0;
private List<Type> typeList = new ArrayList<>();
public double getTotal() {
return total;
}
public Types setTotal(double total) {
this.total = total;
return this;
}
public List<Type> getTypeList() {
return typeList;
}
public Types setTypeList(List<Type> typeList) {
this.typeList = typeList;
return this;
}
}

View File

@ -1,33 +0,0 @@
package io.github.wulkanowy.api.attendance;
import java.util.ArrayList;
import java.util.List;
public class Week {
private List<Day> days = new ArrayList<>();
private String startDayDate = "";
public Day getDay(int index) {
return days.get(index);
}
public List<Day> getDays() {
return days;
}
public Week setDays(List<Day> days) {
this.days = days;
return this;
}
public String getStartDayDate() {
return startDayDate;
}
public Week setStartDayDate(String startDayDate) {
this.startDayDate = startDayDate;
return this;
}
}

View File

@ -1,29 +0,0 @@
package io.github.wulkanowy.api.exams;
import java.util.ArrayList;
import java.util.List;
public class Day {
private List<Exam> examList = new ArrayList<>();
private String date = "";
public String getDate() {
return date;
}
public Day setDate(String date) {
this.date = date;
return this;
}
public List<Exam> getExamList() {
return examList;
}
public Day addExam(Exam exam) {
this.examList.add(exam);
return this;
}
}

View File

@ -1,59 +0,0 @@
package io.github.wulkanowy.api.exams;
public class Exam {
private String subjectAndGroup = "";
private String type = "";
private String description = "";
private String teacher = "";
private String entryDate = "";
public String getSubjectAndGroup() {
return subjectAndGroup;
}
public Exam setSubjectAndGroup(String subjectAndGroup) {
this.subjectAndGroup = subjectAndGroup;
return this;
}
public String getType() {
return type;
}
public Exam setType(String type) {
this.type = type;
return this;
}
public String getDescription() {
return description;
}
public Exam setDescription(String description) {
this.description = description;
return this;
}
public String getTeacher() {
return teacher;
}
public Exam setTeacher(String teacher) {
this.teacher = teacher;
return this;
}
public String getEntryDate() {
return entryDate;
}
public Exam setEntryDate(String entryDate) {
this.entryDate = entryDate;
return this;
}
}

View File

@ -1,65 +0,0 @@
package io.github.wulkanowy.api.exams;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParent;
public class ExamsWeek {
private final StudentAndParent snp;
private final String examsPageUrl = "Sprawdziany.mvc/Terminarz?rodzajWidoku=2&data=";
public ExamsWeek(StudentAndParent snp) {
this.snp = snp;
}
public Week getCurrent() throws IOException {
return getWeek("", true);
}
public Week getWeek(String tick, final boolean onlyNotEmpty) throws IOException {
Document examsPage = snp.getSnPPageDocument(examsPageUrl + tick);
Elements examsDays = examsPage.select(".mainContainer > div:not(.navigation)");
List<Day> days = new ArrayList<>();
for (Element item : examsDays) {
Day day = new Day();
Element dayHeading = item.select("h2").first();
if (null == dayHeading && onlyNotEmpty) {
continue;
}
if (null != dayHeading) {
day = new Day().setDate(dayHeading.text().split(", ")[1]);
}
Elements exams = item.select("article");
for (Element e : exams) {
day.addExam(new Exam()
.setSubjectAndGroup(snp.getRowDataChildValue(e, 1))
.setType(snp.getRowDataChildValue(e, 2))
.setDescription(snp.getRowDataChildValue(e, 3))
.setTeacher(snp.getRowDataChildValue(e, 4).split(", ")[0])
.setEntryDate(snp.getRowDataChildValue(e, 4).split(", ")[1])
);
}
days.add(day);
}
Week week = new Week();
week.setStartDate(examsDays.select("h2").first().text().split(" ")[1]);
week.setDayList(days);
return week;
}
}

View File

@ -1,28 +0,0 @@
package io.github.wulkanowy.api.exams;
import java.util.ArrayList;
import java.util.List;
public class Week {
private List<Day> dayList = new ArrayList<>();
private String startDate = "";
public List<Day> getDayList() {
return dayList;
}
public Week setDayList(List<Day> dayList) {
this.dayList = dayList;
return this;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
}

View File

@ -1,112 +0,0 @@
package io.github.wulkanowy.api.grades;
public class Grade {
protected String value = "";
private String subject = "";
private String color = "";
private String symbol = "";
private String description = "";
private String weight = "";
private String date = "";
private String teacher = "";
private String semester = "";
public String getSubject() {
return subject;
}
public Grade setSubject(String subject) {
this.subject = subject;
return this;
}
public String getValue() {
return value;
}
public Grade setValue(String value) {
this.value = value;
return this;
}
public String getColor() {
return color;
}
public Grade setColor(String color) {
this.color = color;
return this;
}
public String getSymbol() {
return symbol;
}
public Grade setSymbol(String symbol) {
this.symbol = symbol;
return this;
}
public String getDescription() {
return description;
}
public Grade setDescription(String description) {
this.description = description;
return this;
}
public String getWeight() {
return weight;
}
public Grade setWeight(String weight) {
this.weight = weight;
return this;
}
public String getDate() {
return date;
}
public Grade setDate(String date) {
this.date = date;
return this;
}
public String getTeacher() {
return teacher;
}
public Grade setTeacher(String teacher) {
this.teacher = teacher;
return this;
}
public String getSemester() {
return semester;
}
public Grade setSemester(String semester) {
this.semester = semester;
return this;
}
}

View File

@ -1,83 +0,0 @@
package io.github.wulkanowy.api.grades;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import io.github.wulkanowy.api.Semester;
import io.github.wulkanowy.api.StudentAndParent;
import io.github.wulkanowy.api.login.LoginErrorException;
public class GradesList {
private StudentAndParent snp = null;
private String gradesPageUrl = "Oceny/Wszystkie?details=2&okres=";
private List<Grade> grades = new ArrayList<>();
public GradesList(StudentAndParent snp) {
this.snp = snp;
}
public String getGradesPageUrl() {
return gradesPageUrl;
}
public List<Grade> getAll() throws IOException, LoginErrorException, ParseException {
return getAll("");
}
public List<Grade> getAll(String semester) throws IOException, ParseException {
Document gradesPage = snp.getSnPPageDocument(getGradesPageUrl() + semester);
Elements gradesRows = gradesPage.select(".ocenySzczegoly-table > tbody > tr");
Semester currentSemester = snp.getCurrentSemester(snp.getSemesters(gradesPage));
for (Element row : gradesRows) {
if ("Brak ocen".equals(row.select("td:nth-child(2)").text())) {
continue;
}
String descriptions = row.select("td:nth-child(3)").text();
String symbol = descriptions.split(", ")[0];
String description = descriptions.replaceFirst(symbol, "").replaceFirst(", ", "");
Pattern pattern = Pattern.compile("#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})");
Matcher matcher = pattern.matcher(row.select("td:nth-child(2) span.ocenaCzastkowa")
.attr("style"));
String color = "";
while (matcher.find()) {
color = matcher.group(1);
}
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy", Locale.ROOT);
Date d = sdf.parse(row.select("td:nth-child(5)").text());
sdf.applyPattern("yyyy-MM-dd");
grades.add(new Grade()
.setSubject(row.select("td:nth-child(1)").text())
.setValue(row.select("td:nth-child(2)").text())
.setColor(color)
.setSymbol(symbol)
.setDescription(description)
.setWeight(row.select("td:nth-child(4)").text())
.setDate(sdf.format(d))
.setTeacher(row.select("td:nth-child(6)").text())
.setSemester(currentSemester.getNumber())
);
}
return grades;
}
}

View File

@ -1,40 +0,0 @@
package io.github.wulkanowy.api.grades;
public class Subject {
private String name;
private String predictedRating;
private String finalRating;
public String getName() {
return name;
}
public Subject setName(String name) {
this.name = name;
return this;
}
public String getPredictedRating() {
return predictedRating;
}
public Subject setPredictedRating(String predictedRating) {
this.predictedRating = predictedRating;
return this;
}
public String getFinalRating() {
return finalRating;
}
public Subject setFinalRating(String finalRating) {
this.finalRating = finalRating;
return this;
}
}

View File

@ -1,40 +0,0 @@
package io.github.wulkanowy.api.grades;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParent;
public class SubjectsList {
private StudentAndParent snp = null;
private String subjectsPageUrl = "Oceny/Wszystkie?details=1";
public SubjectsList(StudentAndParent snp) {
this.snp = snp;
}
public List<Subject> getAll() throws IOException {
Document subjectPage = snp.getSnPPageDocument(subjectsPageUrl);
Elements rows = subjectPage.select(".ocenyZwykle-table > tbody > tr");
List<Subject> subjects = new ArrayList<>();
for (Element subjectRow : rows) {
subjects.add(new Subject()
.setName(subjectRow.select("td:nth-child(1)").text())
.setPredictedRating(subjectRow.select("td:nth-last-child(2)").text())
.setFinalRating(subjectRow.select("td:nth-last-child(1)").text())
);
}
return subjects;
}
}

View File

@ -1,4 +0,0 @@
package io.github.wulkanowy.api.login;
public class AccountPermissionException extends Exception {
}

View File

@ -1,4 +0,0 @@
package io.github.wulkanowy.api.login;
public class BadCredentialsException extends Exception {
}

View File

@ -1,99 +0,0 @@
package io.github.wulkanowy.api.login;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.parser.Parser;
import org.jsoup.select.Elements;
import java.io.IOException;
import io.github.wulkanowy.api.Api;
import io.github.wulkanowy.api.Cookies;
public class Login extends Api {
private String loginPageUrl = "https://cufs.vulcan.net.pl/{symbol}/Account/LogOn" +
"?ReturnUrl=%2F{symbol}%2FFS%2FLS%3Fwa%3Dwsignin1.0%26wtrealm%3D" +
"https%253a%252f%252fuonetplus.vulcan.net.pl%252f{symbol}%252fLoginEndpoint.aspx%26wctx%3D" +
"https%253a%252f%252fuonetplus.vulcan.net.pl%252f{symbol}%252fLoginEndpoint.aspx";
private String loginEndpointPageUrl =
"https://uonetplus.vulcan.net.pl/{symbol}/LoginEndpoint.aspx";
public Login(Cookies cookies) {
this.cookies = cookies;
}
public String getLoginPageUrl() {
return loginPageUrl;
}
public String getLoginEndpointPageUrl() {
return loginEndpointPageUrl;
}
public String login(String email, String password, String symbol)
throws BadCredentialsException, LoginErrorException, AccountPermissionException, IOException {
String certificate = sendCredentials(email, password, symbol);
return sendCertificate(certificate, symbol);
}
public String sendCredentials(String email, String password, String symbol)
throws IOException, BadCredentialsException {
loginPageUrl = getLoginPageUrl().replace("{symbol}", symbol);
Document html = postPageByUrl(loginPageUrl, new String[][]{
{"LoginName", email},
{"Password", password}
});
if (null != html.select(".ErrorMessage").first()) {
throw new BadCredentialsException();
}
return html.select("input[name=wresult]").attr("value");
}
public String sendCertificate(String certificate, String defaultSymbol)
throws IOException, LoginErrorException, AccountPermissionException {
String symbol = findSymbol(defaultSymbol, certificate);
loginEndpointPageUrl = getLoginEndpointPageUrl()
.replace("{symbol}", symbol);
Document html = postPageByUrl(loginEndpointPageUrl, new String[][]{
{"wa", "wsignin1.0"},
{"wresult", certificate}
});
if (html.getElementsByTag("title").text().equals("Logowanie")) {
throw new AccountPermissionException();
}
if (!html.select("title").text().equals("Uonet+")) {
throw new LoginErrorException();
}
return symbol;
}
public String findSymbol(String symbol, String certificate) {
if ("Default".equals(symbol)) {
return findSymbolInCertificate(certificate);
}
return symbol;
}
public String findSymbolInCertificate(String certificate) {
Elements els = Jsoup.parse(certificate.replaceAll(":", ""), "", Parser.xmlParser())
.select("[AttributeName=\"UserInstance\"] samlAttributeValue");
if (0 == els.size()) {
return "";
}
return els.get(1).text();
}
}

View File

@ -1,4 +0,0 @@
package io.github.wulkanowy.api.login;
public class LoginErrorException extends NotLoggedInErrorException {
}

View File

@ -1,5 +0,0 @@
package io.github.wulkanowy.api.login;
public class NotLoggedInErrorException extends Exception {
}

View File

@ -1,35 +0,0 @@
package io.github.wulkanowy.api.notes;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParent;
public class AchievementsList {
private StudentAndParent snp = null;
private List<String> achievementsList = new ArrayList<>();
private String notesPageUrl = "UwagiOsiagniecia.mvc/Wszystkie";
public AchievementsList(StudentAndParent snp) {
this.snp = snp;
}
public List<String> getAllAchievements() throws IOException {
Element pageFragment = snp.getSnPPageDocument(notesPageUrl)
.select(".mainContainer > div").get(1);
Elements items = pageFragment.select("article");
for (Element item : items) {
achievementsList.add(item.text());
}
return achievementsList;
}
}

View File

@ -1,48 +0,0 @@
package io.github.wulkanowy.api.notes;
public class Note {
private String date;
private String teacher;
private String category;
private String content;
public String getDate() {
return date;
}
public Note setDate(String date) {
this.date = date;
return this;
}
public String getTeacher() {
return teacher;
}
public Note setTeacher(String teacher) {
this.teacher = teacher;
return this;
}
public String getCategory() {
return category;
}
public Note setCategory(String category) {
this.category = category;
return this;
}
public String getContent() {
return content;
}
public Note setContent(String content) {
this.content = content;
return this;
}
}

View File

@ -1,42 +0,0 @@
package io.github.wulkanowy.api.notes;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParent;
public class NotesList {
private StudentAndParent snp = null;
private List<Note> notesList = new ArrayList<>();
private String notesPageUrl = "UwagiOsiagniecia.mvc/Wszystkie";
public NotesList(StudentAndParent snp) {
this.snp = snp;
}
public List<Note> getAllNotes() throws IOException {
Element pageFragment = snp.getSnPPageDocument(notesPageUrl)
.select(".mainContainer > div").get(0);
Elements items = pageFragment.select("article");
Elements dates = pageFragment.select("h2");
int index = 0;
for (Element item : items) {
notesList.add(new Note()
.setDate(dates.get(index++).text())
.setTeacher(snp.getRowDataChildValue(item, 1))
.setCategory(snp.getRowDataChildValue(item, 2))
.setContent(snp.getRowDataChildValue(item, 3))
);
}
return notesList;
}
}

View File

@ -1,59 +0,0 @@
package io.github.wulkanowy.api.school;
public class SchoolData {
private String name = "";
private String address = "";
private String phoneNumber = "";
private String headmaster = "";
private String[] pedagogue;
public String getName() {
return name;
}
public SchoolData setName(String name) {
this.name = name;
return this;
}
public String getAddress() {
return address;
}
public SchoolData setAddress(String address) {
this.address = address;
return this;
}
public String getPhoneNumber() {
return phoneNumber;
}
public SchoolData setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
public String getHeadmaster() {
return headmaster;
}
public SchoolData setHeadmaster(String headmaster) {
this.headmaster = headmaster;
return this;
}
public String[] getPedagogues() {
return pedagogue;
}
public SchoolData setPedagogue(String[] pedagogue) {
this.pedagogue = pedagogue;
return this;
}
}

View File

@ -1,30 +0,0 @@
package io.github.wulkanowy.api.school;
import org.jsoup.nodes.Element;
import java.io.IOException;
import io.github.wulkanowy.api.StudentAndParent;
public class SchoolInfo {
private StudentAndParent snp = null;
private String schoolPageUrl = "Szkola.mvc/Nauczyciele";
public SchoolInfo(StudentAndParent snp) {
this.snp = snp;
}
public SchoolData getSchoolData() throws IOException {
Element e = snp.getSnPPageDocument(schoolPageUrl)
.select(".mainContainer > article").get(0);
return new SchoolData()
.setName(snp.getRowDataChildValue(e, 1))
.setAddress(snp.getRowDataChildValue(e, 2))
.setPhoneNumber(snp.getRowDataChildValue(e, 3))
.setHeadmaster(snp.getRowDataChildValue(e, 4))
.setPedagogue(snp.getRowDataChildValue(e, 5).split(", "));
}
}

View File

@ -1,26 +0,0 @@
package io.github.wulkanowy.api.school;
public class Subject {
private String name = "";
private String[] teachers;
public String getName() {
return name;
}
public Subject setName(String name) {
this.name = name;
return this;
}
public String[] getTeachers() {
return teachers;
}
public Subject setTeachers(String[] teachers) {
this.teachers = teachers;
return this;
}
}

View File

@ -1,39 +0,0 @@
package io.github.wulkanowy.api.school;
import java.util.List;
public class TeachersData {
private String className = "";
private String[] classTeacher;
private List<Subject> subjects;
public String getClassName() {
return className;
}
public TeachersData setClassName(String className) {
this.className = className;
return this;
}
public String[] getClassTeacher() {
return classTeacher;
}
public TeachersData setClassTeacher(String[] classTeacher) {
this.classTeacher = classTeacher;
return this;
}
public List<Subject> getSubjects() {
return subjects;
}
public TeachersData setSubjects(List<Subject> subjects) {
this.subjects = subjects;
return this;
}
}

View File

@ -1,42 +0,0 @@
package io.github.wulkanowy.api.school;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParent;
public class TeachersInfo {
private StudentAndParent snp = null;
private String schoolPageUrl = "Szkola.mvc/Nauczyciele";
public TeachersInfo(StudentAndParent snp) {
this.snp = snp;
}
public TeachersData getTeachersData() throws IOException {
Document doc = snp.getSnPPageDocument(schoolPageUrl);
Elements rows = doc.select(".mainContainer > table tbody tr");
String description = doc.select(".mainContainer > p").first().text();
List<Subject> subjects = new ArrayList<>();
for (Element subject : rows) {
subjects.add(new Subject()
.setName(subject.select("td").get(1).text())
.setTeachers(subject.select("td").get(2).text().split(", "))
);
}
return new TeachersData()
.setClassName(description.split(", ")[0].split(": ")[1].trim())
.setClassTeacher(description.split("Wychowawcy:")[1].trim().split(", "))
.setSubjects(subjects);
}
}

View File

@ -1,55 +0,0 @@
package io.github.wulkanowy.api.timetable;
import java.util.ArrayList;
import java.util.List;
public class Day {
private List<Lesson> lessons = new ArrayList<>();
private String date = "";
private boolean isFreeDay = false;
private String freeDayName = "";
public Lesson getLesson(int index) {
return lessons.get(index);
}
public List<Lesson> getLessons() {
return lessons;
}
public Day setLesson(Lesson lesson) {
this.lessons.add(lesson);
return this;
}
public String getDate() {
return date;
}
public Day setDate(String date) {
this.date = date;
return this;
}
public boolean isFreeDay() {
return isFreeDay;
}
public Day setFreeDay(boolean freeDay) {
isFreeDay = freeDay;
return this;
}
public String getFreeDayName() {
return freeDayName;
}
public Day setFreeDayName(String freeDayName) {
this.freeDayName = freeDayName;
return this;
}
}

View File

@ -1,155 +0,0 @@
package io.github.wulkanowy.api.timetable;
public class Lesson {
public static final String CLASS_PLANNING = "x-treelabel-ppl";
public static final String CLASS_REALIZED = "x-treelabel-rlz";
public static final String CLASS_MOVED_OR_CANCELED = "x-treelabel-inv";
public static final String CLASS_NEW_MOVED_IN_OR_CHANGED = "x-treelabel-zas";
private String subject = "";
private String teacher = "";
private String room = "";
private String description = "";
private String groupName = "";
private String startTime = "";
private String endTime = "";
private boolean isEmpty = false;
private boolean isDivisionIntoGroups = false;
private boolean isPlanning = false;
private boolean isRealized = false;
private boolean isMovedOrCanceled = false;
private boolean isNewMovedInOrChanged = false;
public String getSubject() {
return subject;
}
public Lesson setSubject(String subject) {
this.subject = subject;
return this;
}
public String getTeacher() {
return teacher;
}
public Lesson setTeacher(String teacher) {
this.teacher = teacher;
return this;
}
public String getRoom() {
return room;
}
public Lesson setRoom(String room) {
this.room = room;
return this;
}
public String getDescription() {
return description;
}
public Lesson setDescription(String description) {
this.description = description;
return this;
}
public String getGroupName() {
return groupName;
}
public Lesson setGroupName(String groupName) {
this.groupName = groupName;
return this;
}
public String getStartTime() {
return startTime;
}
public Lesson setStartTime(String startTime) {
this.startTime = startTime;
return this;
}
public String getEndTime() {
return endTime;
}
public Lesson setEndTime(String endTime) {
this.endTime = endTime;
return this;
}
public boolean isEmpty() {
return isEmpty;
}
public Lesson setEmpty(boolean empty) {
isEmpty = empty;
return this;
}
public boolean isDivisionIntoGroups() {
return isDivisionIntoGroups;
}
public Lesson setDivisionIntoGroups(boolean divisionIntoGroups) {
isDivisionIntoGroups = divisionIntoGroups;
return this;
}
public boolean isPlanning() {
return isPlanning;
}
public Lesson setPlanning(boolean planning) {
isPlanning = planning;
return this;
}
public boolean isRealized() {
return isRealized;
}
public Lesson setRealized(boolean realized) {
isRealized = realized;
return this;
}
public boolean isMovedOrCanceled() {
return isMovedOrCanceled;
}
public Lesson setMovedOrCanceled(boolean movedOrCanceled) {
isMovedOrCanceled = movedOrCanceled;
return this;
}
public boolean isNewMovedInOrChanged() {
return isNewMovedInOrChanged;
}
public Lesson setNewMovedInOrChanged(boolean newMovedInOrChanged) {
isNewMovedInOrChanged = newMovedInOrChanged;
return this;
}
}

View File

@ -1,151 +0,0 @@
package io.github.wulkanowy.api.timetable;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParent;
import io.github.wulkanowy.api.login.LoginErrorException;
public class Timetable {
private StudentAndParent snp;
private String timetablePageUrl = "Lekcja.mvc/PlanLekcji?data=";
public Timetable(StudentAndParent snp) {
this.snp = snp;
}
public Week getWeekTable() throws IOException, LoginErrorException {
return getWeekTable("");
}
public Week getWeekTable(String tick) throws IOException {
Element table = snp.getSnPPageDocument(timetablePageUrl + tick)
.select(".mainContainer .presentData").first();
Elements tableHeaderCells = table.select("thead th");
List<Day> days = new ArrayList<>();
for (int i = 2; i < 7; i++) {
String[] dayHeaderCell = tableHeaderCells.get(i).html().split("<br>");
boolean isFreeDay = tableHeaderCells.get(i).hasClass("free-day");
Day day = new Day();
day.setDate(dayHeaderCell[1]);
if (isFreeDay) {
day.setFreeDay(isFreeDay);
day.setFreeDayName(dayHeaderCell[2]);
}
days.add(day);
}
Elements hoursInDays = table.select("tbody tr");
// fill days in week with lessons
for (Element row : hoursInDays) {
Elements hours = row.select("td");
// fill hours in day
for (int i = 2; i < hours.size(); i++) {
Lesson lesson = new Lesson();
Elements e = hours.get(i).select("div");
switch (e.size()) {
case 1:
lesson = getLessonFromElement(e.first());
break;
case 3:
lesson = getLessonFromElement(e.get(1));
break;
default:
lesson.setEmpty(true);
break;
}
String[] startEndEnd = hours.get(1).text().split(" ");
lesson.setStartTime(startEndEnd[0]);
lesson.setEndTime(startEndEnd[1]);
days.get(i - 2).setLesson(lesson);
}
}
Element startDayCellHeader = tableHeaderCells.get(2);
String[] dayDescription = startDayCellHeader.html().split("<br>");
return new Week()
.setStartDayDate(dayDescription[1])
.setDays(days);
}
private Lesson getLessonFromElement(Element e) {
Lesson lesson = new Lesson();
Elements spans = e.select("span");
lesson.setSubject(spans.get(0).text());
lesson.setTeacher(spans.get(1).text());
lesson.setRoom(spans.get(2).text());
// okienko dla uczniów
if (5 == spans.size()) {
lesson.setTeacher(spans.get(2).text());
lesson.setRoom(spans.get(3).text());
}
lesson = getLessonGroupDivisionInfo(lesson, spans);
lesson = getLessonTypeInfo(lesson, spans);
lesson = getLessonDescriptionInfo(lesson, spans);
return lesson;
}
private Lesson getLessonGroupDivisionInfo(Lesson lesson, Elements e) {
if ((4 == e.size() && (e.first().attr("class").equals("")) ||
(5 == e.size() && e.first().hasClass(Lesson.CLASS_NEW_MOVED_IN_OR_CHANGED)))) {
lesson.setDivisionIntoGroups(true);
String[] subjectNameArray = lesson.getSubject().split(" ");
String groupName = subjectNameArray[subjectNameArray.length - 1];
lesson.setSubject(lesson.getSubject().replace(" " + groupName, ""));
lesson.setGroupName(StringUtils.substringBetween(groupName, "[", "]"));
lesson.setTeacher(e.get(2).text());
lesson.setRoom(e.get(3).text());
}
return lesson;
}
private Lesson getLessonTypeInfo(Lesson lesson, Elements e) {
if (e.first().hasClass(Lesson.CLASS_MOVED_OR_CANCELED)) {
lesson.setMovedOrCanceled(true);
} else if (e.first().hasClass(Lesson.CLASS_NEW_MOVED_IN_OR_CHANGED)) {
lesson.setNewMovedInOrChanged(true);
} else if (e.first().hasClass(Lesson.CLASS_PLANNING)) {
lesson.setPlanning(true);
}
if (e.last().hasClass(Lesson.CLASS_REALIZED)
|| e.first().attr("class").equals("")) {
lesson.setRealized(true);
}
return lesson;
}
private Lesson getLessonDescriptionInfo(Lesson lesson, Elements e) {
if ((4 == e.size() || 5 == e.size())
&& (e.first().hasClass(Lesson.CLASS_MOVED_OR_CANCELED)
|| e.first().hasClass(Lesson.CLASS_NEW_MOVED_IN_OR_CHANGED))) {
lesson.setDescription(StringUtils.substringBetween(e.last().text(), "(", ")"));
}
return lesson;
}
}

View File

@ -1,33 +0,0 @@
package io.github.wulkanowy.api.timetable;
import java.util.ArrayList;
import java.util.List;
public class Week {
private List<Day> days = new ArrayList<>();
private String startDayDate = "";
public Day getDay(int index) {
return days.get(index);
}
public List<Day> getDays() {
return days;
}
public Week setDays(List<Day> days) {
this.days = days;
return this;
}
public String getStartDayDate() {
return startDayDate;
}
public Week setStartDayDate(String startDayDate) {
this.startDayDate = startDayDate;
return this;
}
}

View File

@ -1,40 +0,0 @@
package io.github.wulkanowy.api.user;
public class AddressData {
private String address = "";
private String registeredAddress = "";
private String correspondenceAddress = "";
public String getAddress() {
return address;
}
public AddressData setAddress(String address) {
this.address = address;
return this;
}
public String getRegisteredAddress() {
return registeredAddress;
}
public AddressData setRegisteredAddress(String registeredAddress) {
this.registeredAddress = registeredAddress;
return this;
}
public String getCorrespondenceAddress() {
return correspondenceAddress;
}
public AddressData setCorrespondenceAddress(String correspondenceAddress) {
this.correspondenceAddress = correspondenceAddress;
return this;
}
}

View File

@ -1,68 +0,0 @@
package io.github.wulkanowy.api.user;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import java.io.IOException;
import io.github.wulkanowy.api.StudentAndParent;
import io.github.wulkanowy.api.login.LoginErrorException;
public class BasicInformation {
private static Document studentDataPageDocument;
private StudentAndParent snp;
private String studentDataPageUrl = "Uczen.mvc/DanePodstawowe";
public BasicInformation(StudentAndParent snp) {
this.snp = snp;
}
public Document getStudentDataPageDocument() throws IOException {
if (null == studentDataPageDocument) {
studentDataPageDocument = snp.getSnPPageDocument(studentDataPageUrl);
}
return studentDataPageDocument;
}
public PersonalData getPersonalData() throws IOException, LoginErrorException {
Element e = getStudentDataPageDocument().select(".mainContainer > article").get(0);
String name = snp.getRowDataChildValue(e, 1);
String[] names = name.split(" ");
return new PersonalData()
.setName(name)
.setFirstName(names[0])
.setSurname(names[names.length - 1])
.setFirstAndLastName(names[0] + " " + names[names.length - 1])
.setDateAndBirthPlace(snp.getRowDataChildValue(e, 2))
.setPesel(snp.getRowDataChildValue(e, 3))
.setGender(snp.getRowDataChildValue(e, 4))
.setPolishCitizenship("Tak".equals(snp.getRowDataChildValue(e, 5)))
.setFamilyName(snp.getRowDataChildValue(e, 6))
.setParentsNames(snp.getRowDataChildValue(e, 7));
}
public AddressData getAddressData() throws IOException, LoginErrorException {
Element e = getStudentDataPageDocument().select(".mainContainer > article").get(1);
return new AddressData()
.setAddress(snp.getRowDataChildValue(e, 1))
.setRegisteredAddress(snp.getRowDataChildValue(e, 2))
.setCorrespondenceAddress(snp.getRowDataChildValue(e, 3));
}
public ContactDetails getContactDetails() throws IOException, LoginErrorException {
Element e = getStudentDataPageDocument().select(".mainContainer > article").get(2);
return new ContactDetails()
.setPhoneNumber(snp.getRowDataChildValue(e, 1))
.setCellPhoneNumber(snp.getRowDataChildValue(e, 2))
.setEmail(snp.getRowDataChildValue(e, 3));
}
}

View File

@ -1,37 +0,0 @@
package io.github.wulkanowy.api.user;
public class ContactDetails {
private String phoneNumber = "";
private String cellPhoneNumber = "";
private String email = "";
public String getPhoneNumber() {
return phoneNumber;
}
public ContactDetails setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
public String getCellPhoneNumber() {
return cellPhoneNumber;
}
public ContactDetails setCellPhoneNumber(String cellPhoneNumber) {
this.cellPhoneNumber = cellPhoneNumber;
return this;
}
public String getEmail() {
return email;
}
public ContactDetails setEmail(String email) {
this.email = email;
return this;
}
}

View File

@ -1,40 +0,0 @@
package io.github.wulkanowy.api.user;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParent;
public class FamilyInformation {
private StudentAndParent snp;
private String studentDataPageUrl = "Uczen.mvc/DanePodstawowe";
public FamilyInformation(StudentAndParent snp) {
this.snp = snp;
}
public List<FamilyMember> getFamilyMembers() throws IOException {
Elements membersElements = snp.getSnPPageDocument(studentDataPageUrl)
.select(".mainContainer > article:nth-of-type(n+4)");
List<FamilyMember> familyMembers = new ArrayList<>();
for (Element e : membersElements) {
familyMembers.add(new FamilyMember()
.setName(snp.getRowDataChildValue(e, 1))
.setKinship(snp.getRowDataChildValue(e, 2))
.setAddress(snp.getRowDataChildValue(e, 3))
.setTelephones(snp.getRowDataChildValue(e, 4))
.setEmail(snp.getRowDataChildValue(e, 5))
);
}
return familyMembers;
}
}

View File

@ -1,59 +0,0 @@
package io.github.wulkanowy.api.user;
public class FamilyMember {
private String name = "";
private String kinship = "";
private String address = "";
private String telephones = "";
private String email = "";
public String getName() {
return name;
}
public FamilyMember setName(String name) {
this.name = name;
return this;
}
public String getKinship() {
return kinship;
}
public FamilyMember setKinship(String kinship) {
this.kinship = kinship;
return this;
}
public String getAddress() {
return address;
}
public FamilyMember setAddress(String address) {
this.address = address;
return this;
}
public String getTelephones() {
return telephones;
}
public FamilyMember setTelephones(String telephones) {
this.telephones = telephones;
return this;
}
public String getEmail() {
return email;
}
public FamilyMember setEmail(String email) {
this.email = email;
return this;
}
}

View File

@ -1,114 +0,0 @@
package io.github.wulkanowy.api.user;
public class PersonalData {
private String name = "";
private String firstName = "";
private String surname = "";
private String firstAndLastName = "";
private String dateAndBirthPlace = "";
private String pesel = "";
private String gender = "";
private boolean isPolishCitizenship;
private String familyName = "";
private String parentsNames = "";
public String getName() {
return name;
}
public PersonalData setName(String name) {
this.name = name;
return this;
}
public String getFirstName() {
return firstName;
}
public PersonalData setFirstName(String firstName) {
this.firstName = firstName;
return this;
}
public String getSurname() {
return surname;
}
public PersonalData setSurname(String surname) {
this.surname = surname;
return this;
}
public String getFirstAndLastName() {
return firstAndLastName;
}
public PersonalData setFirstAndLastName(String firstAndLastName) {
this.firstAndLastName = firstAndLastName;
return this;
}
public String getDateAndBirthPlace() {
return dateAndBirthPlace;
}
public PersonalData setDateAndBirthPlace(String dateAndBirthPlace) {
this.dateAndBirthPlace = dateAndBirthPlace;
return this;
}
public String getPesel() {
return pesel;
}
public PersonalData setPesel(String pesel) {
this.pesel = pesel;
return this;
}
public String getGender() {
return gender;
}
public PersonalData setGender(String gender) {
this.gender = gender;
return this;
}
public boolean isPolishCitizenship() {
return isPolishCitizenship;
}
public PersonalData setPolishCitizenship(boolean polishCitizenship) {
isPolishCitizenship = polishCitizenship;
return this;
}
public String getFamilyName() {
return familyName;
}
public PersonalData setFamilyName(String familyName) {
this.familyName = familyName;
return this;
}
public String getParentsNames() {
return parentsNames;
}
public PersonalData setParentsNames(String parentsNames) {
this.parentsNames = parentsNames;
return this;
}
}

View File

@ -1,12 +0,0 @@
package io.github.wulkanowy.api;
import java.io.InputStream;
import java.util.Scanner;
public class FixtureHelper {
public static String getAsString(InputStream inputStream) {
Scanner s = new Scanner(inputStream).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}
}

View File

@ -1,131 +0,0 @@
package io.github.wulkanowy.api;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import java.util.ArrayList;
import java.util.List;
import io.github.wulkanowy.api.login.NotLoggedInErrorException;
public class StudentAndParentTest {
private StudentAndParent snp;
@Before
public void setUp() throws Exception {
String input = FixtureHelper.getAsString(
getClass().getResourceAsStream("OcenyWszystkie-semester.html"));
Document gradesPageDocument = Jsoup.parse(input);
snp = Mockito.mock(StudentAndParent.class);
Mockito.when(snp.getSnPPageDocument(Mockito.anyString())).thenReturn(gradesPageDocument);
Mockito.when(snp.getExtractedIdFromUrl(Mockito.anyString())).thenCallRealMethod();
Mockito.when(snp.getBaseUrl()).thenReturn("https://uonetplus-opiekun.vulcan.net.pl/{symbol}/{ID}/");
Mockito.when(snp.getSymbol()).thenReturn("symbol");
Mockito.when(snp.getId()).thenReturn("123456");
Mockito.when(snp.getSemesters()).thenCallRealMethod();
Mockito.when(snp.getGradesPageUrl()).thenReturn("http://wulkanowy.null");
Mockito.when(snp.getSemesters(Mockito.any(Document.class))).thenCallRealMethod();
Mockito.when(snp.getCurrentSemester(Mockito.<Semester>anyList())).thenCallRealMethod();
}
@Test
public void snpTest() throws Exception {
StudentAndParent snp = new StudentAndParent(new Cookies(), "demo123", "id123");
Assert.assertEquals("demo123", snp.getSymbol());
Assert.assertEquals("id123", snp.getId());
}
@Test
public void getSnpPageUrlWithIdTest() throws Exception {
Mockito.when(snp.getSnpPageUrl()).thenCallRealMethod();
Assert.assertEquals("https://uonetplus-opiekun.vulcan.net.pl/symbol/123456/",
snp.getSnpPageUrl());
}
@Test
public void getSnpPageUrlWithoutIdTest() throws Exception {
String input = FixtureHelper.getAsString(getClass().getResourceAsStream("Start.html"));
Document startPageDocument = Jsoup.parse(input);
Mockito.when(snp.getPageByUrl(Mockito.anyString())).thenReturn(startPageDocument);
Mockito.when(snp.getStartPageUrl()).thenReturn("http://wulkan.io");
Mockito.when(snp.getId()).thenCallRealMethod();
Mockito.when(snp.getSnpPageUrl()).thenCallRealMethod();
Assert.assertEquals("https://uonetplus-opiekun.vulcan.net.pl/symbol/534213/Start/Index/",
snp.getSnpPageUrl());
}
@Test(expected = NotLoggedInErrorException.class)
public void getSnpPageUrlWithWrongPage() throws Exception {
Document wrongPageDocument = Jsoup.parse(
FixtureHelper.getAsString(getClass().getResourceAsStream("OcenyWszystkie-semester.html"))
);
Mockito.when(snp.getPageByUrl(Mockito.anyString())).thenReturn(wrongPageDocument);
Mockito.when(snp.getStartPageUrl()).thenReturn("http://wulkan.io");
Mockito.when(snp.getId()).thenCallRealMethod();
Mockito.when(snp.getSnpPageUrl()).thenCallRealMethod();
snp.getSnpPageUrl();
}
@Test
public void getExtractedIDStandardTest() throws Exception {
Assert.assertEquals("123456", snp.getExtractedIdFromUrl("https://uonetplus-opiekun"
+ ".vulcan.net.pl/powiat/123456/Start/Index/"));
}
@Test
public void getExtractedIDDemoTest() throws Exception {
Assert.assertEquals("demo12345", snp.getExtractedIdFromUrl("https://uonetplus-opiekundemo"
+ ".vulcan.net.pl/demoupowiat/demo12345/Start/Index/"));
}
@Test(expected = NotLoggedInErrorException.class)
public void getExtractedIDNotLoggedTest() throws Exception {
Assert.assertEquals("123", snp.getExtractedIdFromUrl("https://uonetplus"
+ ".vulcan.net.pl/powiat/"));
}
@Test
public void getSemestersTest() throws Exception {
List<Semester> semesters = snp.getSemesters();
Assert.assertEquals(2, semesters.size());
Assert.assertEquals("1", semesters.get(0).getId());
Assert.assertEquals("1234", semesters.get(0).getNumber());
Assert.assertFalse(semesters.get(0).isCurrent());
Assert.assertEquals("2", semesters.get(1).getId());
Assert.assertEquals("1235", semesters.get(1).getNumber());
Assert.assertTrue(semesters.get(1).isCurrent());
}
@Test
public void getCurrentSemesterTest() throws Exception {
List<Semester> semesters = new ArrayList<>();
semesters.add(new Semester().setNumber("1500100900").setId("1").setCurrent(false));
semesters.add(new Semester().setNumber("1500100901").setId("2").setCurrent(true));
Assert.assertTrue(snp.getCurrentSemester(semesters).isCurrent());
Assert.assertEquals("2", snp.getCurrentSemester(semesters).getId());
Assert.assertEquals("1500100901", snp.getCurrentSemester(semesters).getNumber());
}
@Test
public void getCurrentSemesterFromEmptyTest() throws Exception {
List<Semester> semesters = new ArrayList<>();
Assert.assertNull(snp.getCurrentSemester(semesters));
}
}

View File

@ -1,26 +0,0 @@
package io.github.wulkanowy.api;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.mockito.Mockito;
public abstract class StudentAndParentTestCase {
protected StudentAndParent getSnp(String fixtureFileName) throws Exception {
String input = FixtureHelper.getAsString(getClass().getResourceAsStream(fixtureFileName));
Document tablePageDocument = Jsoup.parse(input);
StudentAndParent snp = Mockito.mock(StudentAndParent.class);
Mockito.when(snp.getSnPPageDocument(Mockito.anyString()))
.thenReturn(tablePageDocument);
Mockito.when(snp.getSemesters(Mockito.any(Document.class))).thenCallRealMethod();
Mockito.when(snp.getCurrentSemester(Mockito.<Semester>anyList()))
.thenCallRealMethod();
Mockito.when(snp.getRowDataChildValue(Mockito.any(Element.class),
Mockito.anyInt())).thenCallRealMethod();
return snp;
}
}

View File

@ -1,158 +0,0 @@
package io.github.wulkanowy.api;
import org.hamcrest.CoreMatchers;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import io.github.wulkanowy.api.attendance.AttendanceStatistics;
import io.github.wulkanowy.api.attendance.AttendanceTable;
import io.github.wulkanowy.api.grades.GradesList;
import io.github.wulkanowy.api.grades.SubjectsList;
import io.github.wulkanowy.api.login.NotLoggedInErrorException;
import io.github.wulkanowy.api.notes.AchievementsList;
import io.github.wulkanowy.api.notes.NotesList;
import io.github.wulkanowy.api.school.SchoolInfo;
import io.github.wulkanowy.api.school.TeachersInfo;
import io.github.wulkanowy.api.timetable.Timetable;
import io.github.wulkanowy.api.user.BasicInformation;
import io.github.wulkanowy.api.user.FamilyInformation;
public class VulcanTest extends Vulcan {
private Vulcan vulcan;
@Before
public void setUp() throws Exception {
StudentAndParent snp = Mockito.mock(StudentAndParent.class);
vulcan = Mockito.mock(Vulcan.class);
Mockito.when(vulcan.getStudentAndParent())
.thenReturn(snp);
}
@Test
public void getStudentAndParentTest() throws Exception {
Cookies cookies = new Cookies();
Vulcan vulcan = Mockito.mock(Vulcan.class);
Mockito.when(vulcan.getCookiesObject()).thenReturn(cookies);
StudentAndParent snp = Mockito.mock(StudentAndParent.class);
Mockito.doNothing().when(snp).storeContextCookies();
Mockito.when(snp.getCookiesObject()).thenReturn(cookies);
Mockito.when(vulcan.createSnp( // nullable because method uses class vars, refactor?
Mockito.nullable(Cookies.class), Mockito.nullable(String.class), Mockito.nullable(String.class)
)).thenReturn(snp);
Mockito.when(vulcan.getStudentAndParent()).thenCallRealMethod();
StudentAndParent vulcanSnP = vulcan.getStudentAndParent();
Assert.assertEquals(snp, vulcanSnP);
Assert.assertEquals(vulcanSnP, vulcan.getStudentAndParent());
}
@Test(expected = NotLoggedInErrorException.class)
public void getStudentAndParentNotLoggedInTest() throws Exception {
Mockito.when(vulcan.getStudentAndParent()).thenCallRealMethod();
vulcan.getStudentAndParent();
}
@Test
public void createSnPTest() throws Exception {
Vulcan vulcan = new Vulcan();
vulcan.login(new Cookies(), "testSymbol");
Assert.assertThat(vulcan.createSnp(new Cookies(), "testSymbol", null),
CoreMatchers.instanceOf(StudentAndParent.class));
Assert.assertThat(vulcan.createSnp(new Cookies(), "testSymbol", "testId"),
CoreMatchers.instanceOf(StudentAndParent.class));
}
@Test(expected = NotLoggedInErrorException.class)
public void getAttendanceExceptionText() throws Exception {
Mockito.when(vulcan.getAttendanceTable()).thenCallRealMethod();
Mockito.when(vulcan.getStudentAndParent()).thenThrow(NotLoggedInErrorException.class);
vulcan.getAttendanceTable();
}
@Test
public void getAttendanceTest() throws Exception {
Mockito.when(vulcan.getAttendanceTable()).thenCallRealMethod();
Assert.assertThat(vulcan.getAttendanceTable(),
CoreMatchers.instanceOf(AttendanceTable.class));
}
@Test
public void getAttendanceStatisticTest() throws Exception {
Mockito.when(vulcan.getAttendanceStatistics()).thenCallRealMethod();
Assert.assertThat(vulcan.getAttendanceStatistics(),
CoreMatchers.instanceOf(AttendanceStatistics.class));
}
@Test
public void getGradesListTest() throws Exception {
Mockito.when(vulcan.getGradesList()).thenCallRealMethod();
Assert.assertThat(vulcan.getGradesList(),
CoreMatchers.instanceOf(GradesList.class));
}
@Test
public void getSubjectListTest() throws Exception {
Mockito.when(vulcan.getSubjectsList()).thenCallRealMethod();
Assert.assertThat(vulcan.getSubjectsList(),
CoreMatchers.instanceOf(SubjectsList.class));
}
@Test
public void getAchievementsListTest() throws Exception {
Mockito.when(vulcan.getAchievementsList()).thenCallRealMethod();
Assert.assertThat(vulcan.getAchievementsList(),
CoreMatchers.instanceOf(AchievementsList.class));
}
@Test
public void getNotesListTest() throws Exception {
Mockito.when(vulcan.getNotesList()).thenCallRealMethod();
Assert.assertThat(vulcan.getNotesList(),
CoreMatchers.instanceOf(NotesList.class));
}
@Test
public void getSchoolInfoTest() throws Exception {
Mockito.when(vulcan.getSchoolInfo()).thenCallRealMethod();
Assert.assertThat(vulcan.getSchoolInfo(),
CoreMatchers.instanceOf(SchoolInfo.class));
}
@Test
public void getTeachersInfoTest() throws Exception {
Mockito.when(vulcan.getTeachersInfo()).thenCallRealMethod();
Assert.assertThat(vulcan.getTeachersInfo(),
CoreMatchers.instanceOf(TeachersInfo.class));
}
@Test
public void getTimetableTest() throws Exception {
Mockito.when(vulcan.getTimetable()).thenCallRealMethod();
Assert.assertThat(vulcan.getTimetable(),
CoreMatchers.instanceOf(Timetable.class));
}
@Test
public void getBasicInformationTest() throws Exception {
Mockito.when(vulcan.getBasicInformation()).thenCallRealMethod();
Assert.assertThat(vulcan.getBasicInformation(),
CoreMatchers.instanceOf(BasicInformation.class));
}
@Test
public void getFamilyInformationTest() throws Exception {
Mockito.when(vulcan.getFamilyInformation()).thenCallRealMethod();
Assert.assertThat(vulcan.getFamilyInformation(),
CoreMatchers.instanceOf(FamilyInformation.class));
}
}

View File

@ -1,143 +0,0 @@
package io.github.wulkanowy.api.attendance;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class AttendanceStatisticsTest extends StudentAndParentTestCase {
private AttendanceStatistics excellent;
private AttendanceStatistics full;
@Before
public void setUp() throws Exception {
this.excellent = new AttendanceStatistics(getSnp("Frekwencja-excellent.html"));
this.full = new AttendanceStatistics(getSnp("Frekwencja-full.html"));
}
@Test
public void getSubjectList() throws Exception {
Assert.assertEquals(26, excellent.getSubjectList().size());
Assert.assertEquals(23, full.getSubjectList().size());
}
@Test
public void getSubjectListId() throws Exception {
Assert.assertEquals(-1, excellent.getSubjectList().get(0).getId());
Assert.assertEquals(63, excellent.getSubjectList().get(10).getId());
Assert.assertEquals(0, excellent.getSubjectList().get(25).getId());
Assert.assertEquals(-1, full.getSubjectList().get(0).getId());
Assert.assertEquals(108, full.getSubjectList().get(14).getId());
Assert.assertEquals(492, full.getSubjectList().get(21).getId());
}
@Test
public void getSubjectListName() throws Exception {
Assert.assertEquals("Wszystkie", excellent.getSubjectList().get(0).getName());
Assert.assertEquals("Fizyka", excellent.getSubjectList().get(8).getName());
Assert.assertEquals("Sieci komputerowe i administrowanie sieciami",
excellent.getSubjectList().get(21).getName());
Assert.assertEquals("Praktyka zawodowa", full.getSubjectList().get(11).getName());
Assert.assertEquals("Użytkowanie urządzeń peryferyjnych komputera",
full.getSubjectList().get(16).getName());
Assert.assertEquals("Brak opisu lekcji", full.getSubjectList().get(22).getName());
}
@Test
public void getTypesTotal() throws Exception {
Assert.assertEquals(100.0, excellent.getTypesTable().getTotal(), 0);
Assert.assertEquals(80.94, full.getTypesTable().getTotal(), 0);
}
@Test
public void getTypeName() throws Exception {
List<Type> typeList1 = excellent.getTypesTable().getTypeList();
Assert.assertEquals("Obecność", typeList1.get(0).getName());
Assert.assertEquals("Nieobecność nieusprawiedliwiona", typeList1.get(1).getName());
Assert.assertEquals("Nieobecność usprawiedliwiona", typeList1.get(2).getName());
Assert.assertEquals("Nieobecność z przyczyn szkolnych", typeList1.get(3).getName());
List<Type> typeList2 = full.getTypesTable().getTypeList();
Assert.assertEquals("Spóźnienie nieusprawiedliwione", typeList2.get(4).getName());
Assert.assertEquals("Spóźnienie usprawiedliwione", typeList2.get(5).getName());
Assert.assertEquals("Zwolnienie", typeList2.get(6).getName());
}
@Test
public void getTypeTotal() throws Exception {
List<Type> typeList1 = excellent.getTypesTable().getTypeList();
Assert.assertEquals(1211, typeList1.get(0).getTotal());
Assert.assertEquals(0, typeList1.get(1).getTotal());
Assert.assertEquals(0, typeList1.get(2).getTotal());
Assert.assertEquals(0, typeList1.get(3).getTotal());
Assert.assertEquals(0, typeList1.get(4).getTotal());
Assert.assertEquals(0, typeList1.get(5).getTotal());
Assert.assertEquals(0, typeList1.get(6).getTotal());
List<Type> typeList2 = full.getTypesTable().getTypeList();
Assert.assertEquals(822, typeList2.get(0).getTotal());
Assert.assertEquals(6, typeList2.get(1).getTotal());
Assert.assertEquals(192, typeList2.get(2).getTotal());
Assert.assertEquals(7, typeList2.get(3).getTotal());
Assert.assertEquals(12, typeList2.get(4).getTotal());
Assert.assertEquals(1, typeList2.get(5).getTotal());
Assert.assertEquals(2, typeList2.get(6).getTotal());
}
@Test
public void getTypeList() throws Exception {
List<Type> typesList1 = excellent.getTypesTable().getTypeList();
Assert.assertEquals(12, typesList1.get(0).getMonthList().size());
Assert.assertEquals(12, typesList1.get(5).getMonthList().size());
List<Type> typesList2 = full.getTypesTable().getTypeList();
Assert.assertEquals(12, typesList2.get(0).getMonthList().size());
Assert.assertEquals(12, typesList2.get(5).getMonthList().size());
}
@Test
public void getMonthList() throws Exception {
List<Type> typeList1 = excellent.getTypesTable().getTypeList();
Assert.assertEquals(12, typeList1.get(0).getMonthList().size());
List<Type> typeList2 = full.getTypesTable().getTypeList();
Assert.assertEquals(12, typeList2.get(0).getMonthList().size());
}
@Test
public void getMonthName() throws Exception {
List<Month> monthsList1 = excellent.getTypesTable().getTypeList().get(0).getMonthList();
Assert.assertEquals("IX", monthsList1.get(0).getName());
Assert.assertEquals("III", monthsList1.get(6).getName());
Assert.assertEquals("VIII", monthsList1.get(11).getName());
List<Month> monthsList2 = full.getTypesTable().getTypeList().get(0).getMonthList();
Assert.assertEquals("XI", monthsList2.get(2).getName());
Assert.assertEquals("II", monthsList2.get(5).getName());
Assert.assertEquals("VI", monthsList2.get(9).getName());
}
@Test
public void getMonthValue() throws Exception {
List<Month> monthsList1 = excellent.getTypesTable().getTypeList().get(0).getMonthList();
Assert.assertEquals(142, monthsList1.get(0).getValue());
Assert.assertEquals(131, monthsList1.get(4).getValue());
Assert.assertEquals(139, monthsList1.get(7).getValue());
Assert.assertEquals(114, monthsList1.get(9).getValue());
Assert.assertEquals(0, monthsList1.get(11).getValue());
List<Type> typeList1 = full.getTypesTable().getTypeList();
Assert.assertEquals(135, typeList1.get(0).getMonthList().get(0).getValue());
Assert.assertEquals(7, typeList1.get(3).getMonthList().get(5).getValue());
Assert.assertEquals(1, typeList1.get(5).getMonthList().get(0).getValue());
Assert.assertEquals(27, typeList1.get(2).getMonthList().get(9).getValue());
Assert.assertEquals(0, typeList1.get(0).getMonthList().get(11).getValue());
}
}

View File

@ -1,165 +0,0 @@
package io.github.wulkanowy.api.attendance;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class AttendanceTableTest extends StudentAndParentTestCase {
private AttendanceTable excellent;
private AttendanceTable full;
@Before
public void setUp() throws Exception {
excellent = new AttendanceTable(getSnp("Frekwencja-excellent.html"));
full = new AttendanceTable(getSnp("Frekwencja-full.html"));
}
@Test
public void getWeekStartByDate() throws Exception {
Assert.assertEquals("31.08.2015", excellent.getWeekTable().getStartDayDate());
Assert.assertEquals("05.09.2016", full.getWeekTable().getStartDayDate());
}
@Test
public void getWeekDaysNumber() throws Exception {
Assert.assertEquals(5, excellent.getWeekTable().getDays().size());
Assert.assertEquals(5, full.getWeekTable().getDays().size());
}
@Test
public void getDayLessonsNumber() throws Exception {
Assert.assertEquals(14, excellent.getWeekTable().getDay(0).getLessons().size());
Assert.assertEquals(14, full.getWeekTable().getDay(0).getLessons().size());
}
@Test
public void getDayDate() throws Exception {
Assert.assertEquals("31.08.2015", excellent.getWeekTable().getDay(0).getDate());
Assert.assertEquals("02.09.2015", excellent.getWeekTable().getDay(2).getDate());
Assert.assertEquals("04.09.2015", excellent.getWeekTable().getDay(4).getDate());
Assert.assertEquals("05.09.2016", full.getWeekTable().getDay(0).getDate());
Assert.assertEquals("07.09.2016", full.getWeekTable().getDay(2).getDate());
Assert.assertEquals("09.09.2016", full.getWeekTable().getDay(4).getDate());
}
@Test
public void getLessonSubject() throws Exception {
Assert.assertEquals("",
excellent.getWeekTable().getDay(0).getLesson(7).getSubject());
Assert.assertEquals("Uroczyste rozpoczęcie roku szkolnego 2015/2016",
excellent.getWeekTable().getDay(1).getLesson(1).getSubject());
Assert.assertEquals("Geografia",
excellent.getWeekTable().getDay(3).getLesson(4).getSubject());
Assert.assertEquals("Naprawa komputera",
full.getWeekTable().getDay(1).getLesson(8).getSubject());
Assert.assertEquals("Religia",
full.getWeekTable().getDay(3).getLesson(1).getSubject());
Assert.assertEquals("Metodologia programowania",
full.getWeekTable().getDay(4).getLesson(5).getSubject());
}
@Test
public void getLessonIsNotExist() throws Exception {
Assert.assertTrue(excellent.getWeekTable().getDay(0).getLesson(5).isNotExist());
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(1).isNotExist());
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isNotExist());
Assert.assertFalse(full.getWeekTable().getDay(1).getLesson(12).isAbsenceUnexcused());
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isAbsenceUnexcused());
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(5).isAbsenceUnexcused());
}
@Test
public void getLessonIsEmpty() throws Exception {
Assert.assertTrue(excellent.getWeekTable().getDay(0).getLesson(0).isEmpty());
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(6).isEmpty());
Assert.assertTrue(excellent.getWeekTable().getDay(4).getLesson(12).isEmpty());
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(9).isEmpty());
Assert.assertFalse(full.getWeekTable().getDay(2).getLesson(5).isEmpty());
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(2).isEmpty());
}
@Test
public void getLessonIsPresence() throws Exception {
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(7).isPresence());
Assert.assertTrue(excellent.getWeekTable().getDay(1).getLesson(1).isPresence());
Assert.assertTrue(excellent.getWeekTable().getDay(3).getLesson(7).isPresence());
Assert.assertTrue(full.getWeekTable().getDay(0).getLesson(1).isPresence());
Assert.assertTrue(full.getWeekTable().getDay(2).getLesson(6).isPresence());
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(7).isPresence());
}
@Test
public void getLessonIsAbsenceUnexcused() throws Exception {
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(7).isAbsenceUnexcused());
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(0).isAbsenceUnexcused());
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(4).isAbsenceUnexcused());
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(8).isAbsenceUnexcused());
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isAbsenceUnexcused());
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(8).isAbsenceUnexcused());
}
@Test
public void getLessonIsAbsenceExcused() throws Exception {
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(7).isAbsenceExcused());
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(0).isAbsenceExcused());
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(4).isAbsenceExcused());
Assert.assertFalse(full.getWeekTable().getDay(2).getLesson(5).isAbsenceExcused());
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isAbsenceExcused());
Assert.assertTrue(full.getWeekTable().getDay(4).getLesson(3).isAbsenceExcused());
}
@Test
public void getLessonIsAbsenceForSchoolReasons() throws Exception {
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(4).isAbsenceForSchoolReasons());
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(8).isAbsenceForSchoolReasons());
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isAbsenceForSchoolReasons());
Assert.assertTrue(full.getWeekTable().getDay(2).getLesson(5).isAbsenceForSchoolReasons());
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isAbsenceForSchoolReasons());
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(8).isAbsenceForSchoolReasons());
}
@Test
public void getLessonIsUnexcusedLateness() throws Exception {
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(4).isUnexcusedLateness());
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(8).isUnexcusedLateness());
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isUnexcusedLateness());
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(6).isUnexcusedLateness());
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isUnexcusedLateness());
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(8).isUnexcusedLateness());
}
@Test
public void getLessonIsExcusedLateness() throws Exception {
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(4).isExcusedLateness());
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(8).isExcusedLateness());
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isExcusedLateness());
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(7).isExcusedLateness());
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isExcusedLateness());
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(8).isExcusedLateness());
}
@Test
public void getLessonIsExemption() throws Exception {
Assert.assertFalse(excellent.getWeekTable().getDay(0).getLesson(4).isExemption());
Assert.assertFalse(excellent.getWeekTable().getDay(2).getLesson(8).isExemption());
Assert.assertFalse(excellent.getWeekTable().getDay(4).getLesson(12).isExemption());
Assert.assertFalse(full.getWeekTable().getDay(2).getLesson(5).isExemption());
Assert.assertFalse(full.getWeekTable().getDay(3).getLesson(1).isExemption());
Assert.assertTrue(full.getWeekTable().getDay(4).getLesson(8).isExemption());
}
}

View File

@ -1,97 +0,0 @@
package io.github.wulkanowy.api.exams;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class ExamsWeekTest extends StudentAndParentTestCase {
private ExamsWeek onePerDay;
@Before
public void getCurrent() throws Exception {
onePerDay = new ExamsWeek(getSnp("Sprawdziany-one-per-day.html"));
}
@Test
public void getWeekTest() throws Exception {
Assert.assertEquals("23.10.2017", onePerDay.getCurrent().getStartDate());
}
@Test
public void getDaysListTest() throws Exception {
Assert.assertEquals(3, onePerDay.getCurrent().getDayList().size());
Assert.assertEquals(7, onePerDay.getWeek("", false).getDayList().size());
}
@Test
public void getExamsListTest() throws Exception {
List<Day> notEmpty = onePerDay.getCurrent().getDayList();
Assert.assertEquals(1, notEmpty.get(0).getExamList().size());
Assert.assertEquals(1, notEmpty.get(1).getExamList().size());
Assert.assertEquals(1, notEmpty.get(2).getExamList().size());
List<Day> emptyToo = onePerDay.getWeek("", false).getDayList();
Assert.assertEquals(1, emptyToo.get(0).getExamList().size());
Assert.assertEquals(1, emptyToo.get(1).getExamList().size());
Assert.assertEquals(1, emptyToo.get(4).getExamList().size());
}
@Test
public void getDayDateTest() throws Exception {
List<Day> dayList = onePerDay.getCurrent().getDayList();
Assert.assertEquals("23.10.2017", dayList.get(0).getDate());
Assert.assertEquals("24.10.2017", dayList.get(1).getDate());
Assert.assertEquals("27.10.2017", dayList.get(2).getDate());
}
@Test
public void getExamSubjectAndGroupTest() throws Exception {
List<Day> dayList = onePerDay.getCurrent().getDayList();
Assert.assertEquals("Sieci komputerowe 3Ti|zaw2", dayList.get(0).getExamList().get(0).getSubjectAndGroup());
Assert.assertEquals("Język angielski 3Ti|J1", dayList.get(1).getExamList().get(0).getSubjectAndGroup());
Assert.assertEquals("Metodologia programowania 3Ti|zaw2", dayList.get(2).getExamList().get(0).getSubjectAndGroup());
}
@Test
public void getExamTypeTest() throws Exception {
List<Day> dayList = onePerDay.getCurrent().getDayList();
Assert.assertEquals("Sprawdzian", dayList.get(0).getExamList().get(0).getType());
Assert.assertEquals("Sprawdzian", dayList.get(1).getExamList().get(0).getType());
Assert.assertEquals("Sprawdzian", dayList.get(2).getExamList().get(0).getType());
}
@Test
public void getExamDescriptionTest() throws Exception {
List<Day> dayList = onePerDay.getCurrent().getDayList();
Assert.assertEquals("Łącza danych", dayList.get(0).getExamList().get(0).getDescription());
Assert.assertEquals("Czasy teraźniejsze", dayList.get(1).getExamList().get(0).getDescription());
Assert.assertEquals("", dayList.get(2).getExamList().get(0).getDescription());
}
@Test
public void getExamTeacherTest() throws Exception {
List<Day> dayList = onePerDay.getCurrent().getDayList();
Assert.assertEquals("Adam Wiśniewski [AW]", dayList.get(0).getExamList().get(0).getTeacher());
Assert.assertEquals("Natalia Nowak [NN]", dayList.get(1).getExamList().get(0).getTeacher());
Assert.assertEquals("Małgorzata Nowacka [MN]", dayList.get(2).getExamList().get(0).getTeacher());
}
@Test
public void getExamEntryDateTest() throws Exception {
List<Day> dayList = onePerDay.getCurrent().getDayList();
Assert.assertEquals("16.10.2017", dayList.get(0).getExamList().get(0).getEntryDate());
Assert.assertEquals("17.10.2017", dayList.get(1).getExamList().get(0).getEntryDate());
Assert.assertEquals("16.10.2017", dayList.get(2).getExamList().get(0).getEntryDate());
}
}

View File

@ -1,114 +0,0 @@
package io.github.wulkanowy.api.grades;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class GradesListTest extends StudentAndParentTestCase {
private GradesList filled;
@Before
public void setUp() throws Exception {
filled = new GradesList(getSnp("OcenyWszystkie-filled.html"));
}
@Test
public void getAllTest() throws Exception {
Assert.assertEquals(6, filled.getAll().size()); // 2 items are skipped
}
@Test
public void getSubjectTest() throws Exception {
List<Grade> list = filled.getAll();
Assert.assertEquals("Zajęcia z wychowawcą", list.get(0).getSubject());
Assert.assertEquals("Język angielski", list.get(3).getSubject());
Assert.assertEquals("Wychowanie fizyczne", list.get(4).getSubject());
Assert.assertEquals("Język polski", list.get(5).getSubject());
}
@Test
public void getValueTest() throws Exception {
List<Grade> list = filled.getAll();
Assert.assertEquals("5", list.get(0).getValue());
Assert.assertEquals("5", list.get(3).getValue());
Assert.assertEquals("1", list.get(4).getValue());
Assert.assertEquals("1", list.get(5).getValue());
}
@Test
public void getColorTest() throws Exception {
List<Grade> list = filled.getAll();
Assert.assertEquals("000000", list.get(0).getColor());
Assert.assertEquals("1289F7", list.get(3).getColor());
Assert.assertEquals("6ECD07", list.get(4).getColor());
Assert.assertEquals("6ECD07", list.get(5).getColor());
}
@Test
public void getSymbolTest() throws Exception {
List<Grade> list = filled.getAll();
Assert.assertEquals("A1", list.get(0).getSymbol());
Assert.assertEquals("BW3", list.get(3).getSymbol());
Assert.assertEquals("STR", list.get(4).getSymbol());
Assert.assertEquals("K", list.get(5).getSymbol());
}
@Test
public void getDescriptionTest() throws Exception {
List<Grade> list = filled.getAll();
Assert.assertEquals("Dzień Kobiet w naszej klasie", list.get(0).getDescription());
Assert.assertEquals("Writing", list.get(3).getDescription());
Assert.assertEquals("", list.get(4).getDescription());
Assert.assertEquals("Kordian", list.get(5).getDescription());
}
@Test
public void getWeightTest() throws Exception {
List<Grade> list = filled.getAll();
Assert.assertEquals("1,00", list.get(0).getWeight());
Assert.assertEquals("3,00", list.get(3).getWeight());
Assert.assertEquals("8,00", list.get(4).getWeight());
Assert.assertEquals("5,00", list.get(5).getWeight());
}
@Test
public void getDateTest() throws Exception {
List<Grade> list = filled.getAll();
Assert.assertEquals("2017-03-21", list.get(0).getDate());
Assert.assertEquals("2017-06-02", list.get(3).getDate());
Assert.assertEquals("2017-04-02", list.get(4).getDate());
Assert.assertEquals("2017-02-06", list.get(5).getDate());
}
@Test
public void getTeacherTest() throws Exception {
List<Grade> list = filled.getAll();
Assert.assertEquals("Patryk Maciejewski", list.get(0).getTeacher());
Assert.assertEquals("Oliwia Woźniak", list.get(3).getTeacher());
Assert.assertEquals("Klaudia Dziedzic", list.get(4).getTeacher());
Assert.assertEquals("Amelia Stępień", list.get(5).getTeacher());
}
@Test
public void getSemesterTest() throws Exception {
List<Grade> list = filled.getAll();
Assert.assertEquals("7654321", list.get(0).getSemester());
Assert.assertEquals("7654321", list.get(3).getSemester());
Assert.assertEquals("7654321", list.get(4).getSemester());
Assert.assertEquals("7654321", list.get(5).getSemester());
}
}

View File

@ -1,82 +0,0 @@
package io.github.wulkanowy.api.grades;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class SubjectsListTest extends StudentAndParentTestCase {
private SubjectsList std;
private SubjectsList average;
@Before
public void setUp() throws Exception {
std = new SubjectsList(getSnp("OcenyWszystkie-subjects.html"));
average = new SubjectsList(getSnp("OcenyWszystkie-subjects-average.html"));
}
@Test
public void getAllTest() throws Exception {
Assert.assertEquals(5, std.getAll().size());
Assert.assertEquals(5, average.getAll().size());
}
@Test
public void getNameTest() throws Exception {
List<Subject> stdList = std.getAll();
Assert.assertEquals("Zachowanie", stdList.get(0).getName());
Assert.assertEquals("Praktyka zawodowa", stdList.get(1).getName());
Assert.assertEquals("Metodologia programowania", stdList.get(2).getName());
Assert.assertEquals("Podstawy przedsiębiorczości", stdList.get(3).getName());
Assert.assertEquals("Wychowanie do życia w rodzinie", stdList.get(4).getName());
List<Subject> averageList = average.getAll();
Assert.assertEquals("Zachowanie", averageList.get(0).getName());
Assert.assertEquals("Język polski", averageList.get(1).getName());
Assert.assertEquals("Wychowanie fizyczne", averageList.get(2).getName());
Assert.assertEquals("Język angielski", averageList.get(3).getName());
Assert.assertEquals("Wiedza o społeczeństwie", averageList.get(4).getName());
}
@Test
public void getPredictedRatingTest() throws Exception {
List<Subject> stdList = std.getAll();
Assert.assertEquals("bardzo dobre", stdList.get(0).getPredictedRating());
Assert.assertEquals("-", stdList.get(1).getPredictedRating());
Assert.assertEquals("bardzo dobry", stdList.get(2).getPredictedRating());
Assert.assertEquals("3/4", stdList.get(3).getPredictedRating());
Assert.assertEquals("-", stdList.get(4).getPredictedRating());
List<Subject> averageList = average.getAll();
Assert.assertEquals("bardzo dobre", averageList.get(0).getPredictedRating());
Assert.assertEquals("-", averageList.get(1).getPredictedRating());
Assert.assertEquals("bardzo dobry", averageList.get(2).getPredictedRating());
Assert.assertEquals("4/5", averageList.get(3).getPredictedRating());
Assert.assertEquals("-", averageList.get(4).getPredictedRating());
}
@Test
public void getFinalRatingTest() throws Exception {
List<Subject> stdList = std.getAll();
Assert.assertEquals("bardzo dobre", stdList.get(0).getFinalRating());
Assert.assertEquals("celujący", stdList.get(1).getFinalRating());
Assert.assertEquals("celujący", stdList.get(2).getFinalRating());
Assert.assertEquals("dostateczny", stdList.get(3).getFinalRating());
Assert.assertEquals("-", stdList.get(4).getFinalRating());
List<Subject> averageList = average.getAll();
Assert.assertEquals("bardzo dobre", averageList.get(0).getFinalRating());
Assert.assertEquals("dobry", averageList.get(1).getFinalRating());
Assert.assertEquals("celujący", averageList.get(2).getFinalRating());
Assert.assertEquals("bardzo dobry", averageList.get(3).getFinalRating());
Assert.assertEquals("-", averageList.get(4).getFinalRating());
}
}

View File

@ -1,126 +0,0 @@
package io.github.wulkanowy.api.login;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;
import io.github.wulkanowy.api.Cookies;
import io.github.wulkanowy.api.FixtureHelper;
public class LoginTest {
public String getFixtureAsString(String fixtureFileName) {
return FixtureHelper.getAsString(getClass().getResourceAsStream(fixtureFileName));
}
public Login getSetUpLogin(String fixtureFileName) throws Exception {
Document tablePageDocument = Jsoup.parse(getFixtureAsString(fixtureFileName));
Login login = Mockito.mock(Login.class);
Mockito.when(login.postPageByUrl(Mockito.anyString(), Mockito.any(String[][].class))
).thenReturn(tablePageDocument);
Mockito.when(login.getLoginPageUrl()).thenReturn("");
Mockito.when(login.getLoginEndpointPageUrl()).thenReturn("asdf");
return login;
}
@Test
public void loginTest() throws Exception {
Login login = getSetUpLogin("Logowanie-success.html");
Mockito.when(login.login(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))
.thenCallRealMethod();
Mockito.when(login.sendCredentials(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))
.thenReturn("<xml>");
Mockito.when(login.sendCertificate(Mockito.anyString(), Mockito.anyString())).thenReturn("d123");
Assert.assertEquals("d123", login.login("a@a", "pswd", "d123"));
}
@Test
public void loginDefaultTest() throws Exception {
Login login = getSetUpLogin("Logowanie-success.html");
Mockito.when(login.getLoginEndpointPageUrl()).thenReturn("asdf");
Mockito.when(login.login(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))
.thenCallRealMethod();
Mockito.when(login.sendCredentials(Mockito.anyString(), Mockito.anyString(), Mockito.eq("Default")))
.thenReturn(getFixtureAsString("cert.xml"));
Mockito.when(login.findSymbol(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
Mockito.when(login.sendCertificate(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
Mockito.when(login.findSymbolInCertificate(Mockito.anyString())).thenCallRealMethod();
Assert.assertEquals("demo12345", login.login("a@a", "pswd", "Default"));
}
@Test(expected = BadCredentialsException.class)
public void sendWrongCredentialsTest() throws Exception {
Login login = getSetUpLogin("Logowanie-error.html");
Mockito.when(login.sendCredentials(
Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
login.sendCredentials("a@a", "pswd", "d123");
}
@Test
public void sendCredentialsCertificateTest() throws Exception {
Login login = getSetUpLogin("Logowanie-certyfikat.html");
Mockito.when(login.sendCredentials(
Mockito.anyString(), Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
Mockito.when(login.getLoginPageUrl()).thenReturn("http://a.a");
Assert.assertEquals(
getFixtureAsString("cert.xml").replaceAll("\\s+",""),
login.sendCredentials("a@a", "passwd", "d123").replaceAll("\\s+","")
);
}
@Test
public void sendCertificateNotDefaultSymbolSuccessTest() throws Exception {
Login login = getSetUpLogin("Logowanie-success.html");
Mockito.when(login.findSymbol(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
Mockito.when(login.sendCertificate(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
Assert.assertEquals("wulkanowyschool321", login.sendCertificate("", "wulkanowyschool321"));
}
@Test
public void sendCertificateDefaultSymbolSuccessTest() throws Exception {
Login login = getSetUpLogin("Logowanie-success.html");
Mockito.when(login.findSymbol(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
Mockito.when(login.findSymbolInCertificate(Mockito.anyString())).thenCallRealMethod();
Mockito.when(login.sendCertificate(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
Assert.assertEquals("demo12345",
login.sendCertificate(getFixtureAsString("cert.xml"), "Default"));
}
@Test(expected = AccountPermissionException.class)
public void sendCertificateAccountPermissionTest() throws Exception {
Login login = getSetUpLogin("Logowanie-brak-dostepu.html");
Mockito.when(login.findSymbol(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
Mockito.when(login.sendCertificate(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
login.sendCertificate(getFixtureAsString("cert.xml"), "demo123");
}
@Test(expected = LoginErrorException.class)
public void sendCertificateLoginErrorTest() throws Exception {
Login login = getSetUpLogin("Logowanie-certyfikat.html"); // change to other document
Mockito.when(login.findSymbol(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
Mockito.when(login.sendCertificate(Mockito.anyString(), Mockito.anyString())).thenCallRealMethod();
login.sendCertificate(getFixtureAsString("cert.xml"), "demo123");
}
@Test
public void findSymbolInCertificateTest() throws Exception {
Login login = new Login(new Cookies());
String certificate = getFixtureAsString("cert.xml");
Assert.assertEquals("demo12345", login.findSymbolInCertificate(certificate));
}
@Test
public void findSymbolInInvalidCertificateTest() throws Exception {
Login login = new Login(new Cookies());
Assert.assertEquals("", login.findSymbolInCertificate("<xml></xml>")); // change to real cert with empty symbols
}
}

View File

@ -1,36 +0,0 @@
package io.github.wulkanowy.api.notes;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class AchievementsListTest extends StudentAndParentTestCase {
private AchievementsList filledAchievementsList;
private AchievementsList emptyAchievementsList;
@Before
public void setUp() throws Exception {
filledAchievementsList = new AchievementsList(getSnp("UwagiOsiagniecia-filled.html"));
emptyAchievementsList = new AchievementsList(getSnp("UwagiOsiagniecia-empty.html"));
}
@Test
public void getAllAchievementsTest() throws Exception {
Assert.assertEquals(2, filledAchievementsList.getAllAchievements().size());
Assert.assertEquals(0, emptyAchievementsList.getAllAchievements().size());
}
@Test
public void getAchievements() throws Exception {
List<String> filledList = filledAchievementsList.getAllAchievements();
Assert.assertEquals("I miejsce w ogólnopolskim konkursie ortograficznym", filledList.get(0));
Assert.assertEquals("III miejsce w ogólnopolskim konkursie plastycznym", filledList.get(1));
}
}

View File

@ -1,60 +0,0 @@
package io.github.wulkanowy.api.notes;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class NotesListTest extends StudentAndParentTestCase {
private NotesList filled;
private NotesList empty;
@Before
public void setUp() throws Exception {
filled = new NotesList(getSnp("UwagiOsiagniecia-filled.html"));
empty = new NotesList(getSnp("UwagiOsiagniecia-empty.html"));
}
@Test
public void getAllNotesTest() throws Exception {
Assert.assertEquals(3, filled.getAllNotes().size());
Assert.assertEquals(0, empty.getAllNotes().size());
}
@Test
public void getDateTest() throws Exception {
List<Note> filledList = filled.getAllNotes();
Assert.assertEquals("06.06.2017", filledList.get(0).getDate());
Assert.assertEquals("01.10.2016", filledList.get(2).getDate());
}
@Test
public void getTeacherTest() throws Exception {
List<Note> filledList = filled.getAllNotes();
Assert.assertEquals("Jan Kowalski [JK]", filledList.get(0).getTeacher());
Assert.assertEquals("Kochański Leszek [KL]", filledList.get(2).getTeacher());
}
@Test
public void getCategoryTest() throws Exception {
List<Note> filledList = filled.getAllNotes();
Assert.assertEquals("Zaangażowanie społeczne", filledList.get(0).getCategory());
Assert.assertEquals("Zachowanie na lekcji", filledList.get(2).getCategory());
}
@Test
public void getContentTest() throws Exception {
List<Note> filledList = filled.getAllNotes();
Assert.assertEquals("Pomoc przy pikniku charytatywnym", filledList.get(0).getContent());
Assert.assertEquals("Przeszkadzanie w prowadzeniu lekcji", filledList.get(2).getContent());
}
}

View File

@ -1,48 +0,0 @@
package io.github.wulkanowy.api.school;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class SchoolInfoTest extends StudentAndParentTestCase {
private SchoolInfo schoolInfo;
@Before
public void setUp() throws Exception {
schoolInfo = new SchoolInfo(getSnp("Szkola.html"));
}
@Test
public void getNameTest() throws Exception {
Assert.assertEquals("Zespół Szkół nr 64", schoolInfo.getSchoolData().getName());
}
@Test
public void getAddressTest() throws Exception {
Assert.assertEquals("ul. Wiśniowa 128, 01-234 Rogalowo, Nibylandia",
schoolInfo.getSchoolData().getAddress());
}
@Test
public void getPhoneNumberTest() throws Exception {
Assert.assertEquals("55 5555555", schoolInfo.getSchoolData().getPhoneNumber());
}
@Test
public void getHeadmasterTest() throws Exception {
Assert.assertEquals("Antoni Sobczyk", schoolInfo.getSchoolData().getHeadmaster());
}
@Test
public void getPedagoguesTest() throws Exception {
Assert.assertArrayEquals(new String[]{
"Zofia Czerwińska [ZC]",
"Aleksander Krzemiński [AK]",
"Karolina Kowalska [KK]",
"Bartek Dąbrowski [BD]"
}, schoolInfo.getSchoolData().getPedagogues());
}
}

View File

@ -1,56 +0,0 @@
package io.github.wulkanowy.api.school;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class TeachersInfoTest extends StudentAndParentTestCase {
private TeachersInfo teachersInfo;
@Before
public void setUp() throws Exception {
teachersInfo = new TeachersInfo(getSnp("Szkola.html"));
}
@Test
public void getClassNameTest() throws Exception {
Assert.assertEquals("1a", teachersInfo.getTeachersData().getClassName());
}
@Test
public void getClassTeacherTest() throws Exception {
Assert.assertArrayEquals(new String[]{
"Karolina Kowalska [AN]",
"Antoni Sobczyk [AS]"
}, teachersInfo.getTeachersData().getClassTeacher());
}
@Test
public void getTeachersDataSubjectsNameTest() throws Exception {
List<Subject> subjects = teachersInfo.getTeachersData().getSubjects();
Assert.assertEquals("Biologia", subjects.get(0).getName());
Assert.assertEquals("Język angielski", subjects.get(6).getName());
}
@Test
public void getTeachersDataSubjectsTeachersTest() throws Exception {
List<Subject> subjects = teachersInfo.getTeachersData().getSubjects();
Assert.assertArrayEquals(new String[]{"Karolina Kowalska [AN]"},
subjects.get(0).getTeachers());
Assert.assertEquals("Karolina Kowalska [AN]",
subjects.get(0).getTeachers()[0]);
Assert.assertArrayEquals(new String[]{
"Karolina Kowalska [AN]",
"Mateusz Kowal [MK]",
"Amelia Mazur [AM]"
}, subjects.get(6).getTeachers());
}
}

View File

@ -1,195 +0,0 @@
package io.github.wulkanowy.api.timetable;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class TimetableTest extends StudentAndParentTestCase {
private Timetable std;
private Timetable full;
private Timetable holidays;
@Before
public void setUp() throws Exception {
std = new Timetable(getSnp("PlanLekcji-std.html"));
full = new Timetable(getSnp("PlanLekcji-full.html"));
holidays = new Timetable(getSnp("PlanLekcji-holidays.html"));
}
// Week
@Test
public void getWeekTableTest() throws Exception {
Assert.assertEquals(5, std.getWeekTable().getDays().size());
Assert.assertEquals(5, full.getWeekTable().getDays().size());
Assert.assertEquals(5, holidays.getWeekTable().getDays().size());
}
@Test
public void getStartDayDateTest() throws Exception {
Assert.assertEquals("19.06.2017", std.getWeekTable().getStartDayDate());
Assert.assertEquals("19.06.2017", full.getWeekTable().getStartDayDate());
Assert.assertEquals("31.07.2017", holidays.getWeekTable().getStartDayDate());
}
// Day
@Test
public void getDayDateTest() throws Exception {
Assert.assertEquals("19.06.2017", std.getWeekTable().getDay(0).getDate());
Assert.assertEquals("23.06.2017", std.getWeekTable().getDay(4).getDate());
Assert.assertEquals("20.06.2017", full.getWeekTable().getDay(1).getDate());
Assert.assertEquals("22.06.2017", full.getWeekTable().getDay(3).getDate());
Assert.assertEquals("02.08.2017", holidays.getWeekTable().getDay(2).getDate());
}
@Test
public void getDayIsFreeTest() throws Exception {
Assert.assertFalse(std.getWeekTable().getDay(0).isFreeDay());
Assert.assertFalse(full.getWeekTable().getDay(2).isFreeDay());
Assert.assertTrue(holidays.getWeekTable().getDay(4).isFreeDay());
}
@Test
public void getDayFreeDayName() throws Exception {
Assert.assertNotEquals("Wakacje", std.getWeekTable().getDay(0).getFreeDayName());
Assert.assertNotEquals("Ferie letnie", full.getWeekTable().getDay(1).getFreeDayName());
Assert.assertNotEquals("Wakacje", holidays.getWeekTable().getDay(2).getFreeDayName());
Assert.assertEquals("Ferie letnie", holidays.getWeekTable().getDay(4).getFreeDayName());
}
@Test
public void getDayLessonsTest() throws Exception {
Assert.assertEquals(8, std.getWeekTable().getDay(0).getLessons().size());
Assert.assertEquals(14, full.getWeekTable().getDay(2).getLessons().size());
Assert.assertEquals(14, holidays.getWeekTable().getDay(4).getLessons().size());
}
// Lesson
@Test
public void getLessonSubjectTest() throws Exception {
Assert.assertEquals("Historia", std.getWeekTable().getDay(0).getLesson(1).getSubject());
Assert.assertEquals("Zajęcia techniczne", std.getWeekTable().getDay(2).getLesson(4).getSubject());
Assert.assertEquals("Język angielski", full.getWeekTable().getDay(0).getLesson(1).getSubject());
Assert.assertEquals("Uroczyste zakończenie roku szkolnego", full.getWeekTable().getDay(4).getLesson(0).getSubject());
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getSubject());
}
@Test
public void getLessonTeacherTest() throws Exception {
Assert.assertEquals("Bogatka Katarzyna", std.getWeekTable().getDay(0).getLesson(1).getTeacher());
Assert.assertEquals("Chlebowski Stanisław", std.getWeekTable().getDay(2).getLesson(4).getTeacher());
Assert.assertEquals("Kobczyk Iwona", full.getWeekTable().getDay(0).getLesson(1).getTeacher());
Assert.assertEquals("Bączek Grzegorz", full.getWeekTable().getDay(0).getLesson(7).getTeacher());
Assert.assertEquals("Baran Małgorzata", full.getWeekTable().getDay(4).getLesson(0).getTeacher());
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getTeacher());
}
@Test
public void getLessonRoomTest() throws Exception {
Assert.assertEquals("", std.getWeekTable().getDay(3).getLesson(3).getRoom());
Assert.assertEquals("33", full.getWeekTable().getDay(0).getLesson(7).getRoom());
Assert.assertEquals("32", full.getWeekTable().getDay(1).getLesson(8).getRoom());
Assert.assertEquals("37", full.getWeekTable().getDay(4).getLesson(0).getRoom());
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getRoom());
}
@Test
public void getLessonDescriptionTest() throws Exception {
Assert.assertEquals("", std.getWeekTable().getDay(3).getLesson(3).getDescription());
Assert.assertEquals("okienko dla uczniów", full.getWeekTable().getDay(0).getLesson(7).getDescription());
Assert.assertEquals("przeniesiona z lekcji 7, 20.06.2017", full.getWeekTable().getDay(1).getLesson(2).getDescription());
Assert.assertEquals("przeniesiona z lekcji 4, 20.06.2017", full.getWeekTable().getDay(1).getLesson(3).getDescription());
Assert.assertEquals("", full.getWeekTable().getDay(4).getLesson(0).getDescription());
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getDescription());
}
@Test
public void getLessonGroupNameTest() throws Exception {
Assert.assertEquals("CH", std.getWeekTable().getDay(0).getLesson(2).getGroupName());
Assert.assertEquals("JNPW", std.getWeekTable().getDay(4).getLesson(0).getGroupName());
Assert.assertEquals("", full.getWeekTable().getDay(0).getLesson(7).getGroupName());
Assert.assertEquals("wf2", full.getWeekTable().getDay(1).getLesson(3).getGroupName());
Assert.assertEquals("", holidays.getWeekTable().getDay(3).getLesson(3).getGroupName());
}
@Test
public void getLessonStartTimeTest() throws Exception {
Assert.assertEquals("08:00", std.getWeekTable().getDay(0).getLesson(0).getStartTime());
Assert.assertEquals("14:10", std.getWeekTable().getDay(3).getLesson(7).getStartTime());
Assert.assertEquals("07:10", full.getWeekTable().getDay(0).getLesson(0).getStartTime());
Assert.assertEquals("12:20", full.getWeekTable().getDay(2).getLesson(6).getStartTime());
Assert.assertEquals("12:20", holidays.getWeekTable().getDay(2).getLesson(6).getStartTime());
}
@Test
public void getLessonEndTimeTest() throws Exception {
Assert.assertEquals("08:45", std.getWeekTable().getDay(1).getLesson(0).getEndTime());
Assert.assertEquals("12:15", std.getWeekTable().getDay(2).getLesson(4).getEndTime());
Assert.assertEquals("07:55", full.getWeekTable().getDay(1).getLesson(0).getEndTime());
Assert.assertEquals("19:00", full.getWeekTable().getDay(3).getLesson(13).getEndTime());
Assert.assertEquals("19:00", holidays.getWeekTable().getDay(3).getLesson(13).getEndTime());
}
@Test
public void getLessonIsEmptyTest() throws Exception {
Assert.assertFalse(std.getWeekTable().getDay(1).getLesson(4).isEmpty());
Assert.assertTrue(std.getWeekTable().getDay(3).getLesson(7).isEmpty());
Assert.assertFalse(full.getWeekTable().getDay(1).getLesson(2).isEmpty());
Assert.assertFalse(full.getWeekTable().getDay(0).getLesson(7).isEmpty());
Assert.assertTrue(full.getWeekTable().getDay(2).getLesson(9).isEmpty());
Assert.assertTrue(holidays.getWeekTable().getDay(0).getLesson(5).isEmpty());
Assert.assertTrue(holidays.getWeekTable().getDay(4).getLesson(13).isEmpty());
}
@Test
public void getLessonIsDivisionIntoGroupsTest() throws Exception {
Assert.assertTrue(std.getWeekTable().getDay(0).getLesson(2).isDivisionIntoGroups());
Assert.assertTrue(std.getWeekTable().getDay(4).getLesson(0).isDivisionIntoGroups());
Assert.assertFalse(full.getWeekTable().getDay(0).getLesson(7).isDivisionIntoGroups());
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(3).isDivisionIntoGroups());
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isDivisionIntoGroups());
}
@Test
public void getLessonIsPlanningTest() throws Exception {
Assert.assertFalse(std.getWeekTable().getDay(4).getLesson(4).isPlanning());
Assert.assertFalse(full.getWeekTable().getDay(0).getLesson(1).isPlanning());
Assert.assertFalse(full.getWeekTable().getDay(1).getLesson(3).isPlanning());
Assert.assertTrue(full.getWeekTable().getDay(4).getLesson(0).isPlanning());
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isPlanning());
}
@Test
public void getLessonIsRealizedTest() throws Exception {
Assert.assertTrue(std.getWeekTable().getDay(3).getLesson(3).isRealized());
Assert.assertTrue(full.getWeekTable().getDay(0).getLesson(1).isRealized());
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(3).isRealized());
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(0).isRealized());
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isRealized());
}
@Test
public void getLessonIsMovedOrCanceledTest() throws Exception {
Assert.assertFalse(std.getWeekTable().getDay(3).getLesson(3).isMovedOrCanceled());
Assert.assertTrue(full.getWeekTable().getDay(0).getLesson(7).isMovedOrCanceled());
Assert.assertFalse(full.getWeekTable().getDay(1).getLesson(3).isMovedOrCanceled());
Assert.assertFalse(full.getWeekTable().getDay(4).getLesson(0).isMovedOrCanceled());
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isMovedOrCanceled());
}
@Test
public void getLessonIsNewMovedInOrChangedTest() throws Exception {
Assert.assertFalse(std.getWeekTable().getDay(3).getLesson(3).isNewMovedInOrChanged());
Assert.assertFalse(full.getWeekTable().getDay(0).getLesson(1).isNewMovedInOrChanged());
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(2).isNewMovedInOrChanged());
Assert.assertTrue(full.getWeekTable().getDay(1).getLesson(3).isNewMovedInOrChanged());
Assert.assertFalse(holidays.getWeekTable().getDay(3).getLesson(3).isNewMovedInOrChanged());
}
}

View File

@ -1,106 +0,0 @@
package io.github.wulkanowy.api.user;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class BasicInformationTest extends StudentAndParentTestCase {
private BasicInformation basicInformation;
@Before
public void setUp() throws Exception {
basicInformation = new BasicInformation(getSnp("UczenDanePodstawowe.html"));
}
@Test
public void getPersonalFirstNameTest() throws Exception {
Assert.assertEquals("Maria", basicInformation.getPersonalData().getFirstName());
}
@Test
public void getPersonalSurnameTest() throws Exception {
Assert.assertEquals("Kamińska", basicInformation.getPersonalData().getSurname());
}
@Test
public void getPersonalFirstAndLastNameTest() throws Exception {
Assert.assertEquals("Maria Kamińska",
basicInformation.getPersonalData().getFirstAndLastName());
}
@Test
public void getPersonalNameTest() throws Exception {
Assert.assertEquals("Maria Aneta Kamińska", basicInformation.getPersonalData().getName());
}
@Test
public void getPersonalDateAndBirthPlaceTest() throws Exception {
Assert.assertEquals("01.01.1900, Warszawa",
basicInformation.getPersonalData().getDateAndBirthPlace());
}
@Test
public void getPersonalPeselTest() throws Exception {
Assert.assertEquals("12345678900", basicInformation.getPersonalData().getPesel());
}
@Test
public void getPersonalGenderTest() throws Exception {
Assert.assertEquals("Kobieta", basicInformation.getPersonalData().getGender());
}
@Test
public void isPersonalPolishCitizenshipTest() throws Exception {
Assert.assertTrue(basicInformation.getPersonalData().isPolishCitizenship());
}
@Test
public void getPersonalFamilyNameTest() throws Exception {
Assert.assertEquals("Nowak", basicInformation.getPersonalData().getFamilyName());
}
@Test
public void getPersonalParentsNames() throws Exception {
Assert.assertEquals("Gabriela, Kamil",
basicInformation.getPersonalData().getParentsNames());
}
@Test
public void getBasicAddressTest() throws Exception {
Assert.assertEquals("ul. Sportowa 16, 00-123 Warszawa",
basicInformation.getAddressData().getAddress());
}
@Test
public void getBasicRegisteredAddressTest() throws Exception {
Assert.assertEquals("ul. Sportowa 17, 00-123 Warszawa",
basicInformation.getAddressData().getRegisteredAddress());
}
@Test
public void getBasicCorrespondenceAddressTest() throws Exception {
Assert.assertEquals("ul. Sportowa 18, 00-123 Warszawa",
basicInformation.getAddressData().getCorrespondenceAddress());
}
@Test
public void getContactPhoneNumberTest() throws Exception {
Assert.assertEquals("005554433",
basicInformation.getContactDetails().getPhoneNumber());
}
@Test
public void getContactCellPhoneNumberTest() throws Exception {
Assert.assertEquals("555444333",
basicInformation.getContactDetails().getCellPhoneNumber());
}
@Test
public void getContactEmailTest() throws Exception {
Assert.assertEquals("wulkanowy@example.null",
basicInformation.getContactDetails().getEmail());
}
}

View File

@ -1,59 +0,0 @@
package io.github.wulkanowy.api.user;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import io.github.wulkanowy.api.StudentAndParentTestCase;
public class FamilyInformationTest extends StudentAndParentTestCase {
private FamilyInformation familyInformation;
@Before
public void setUp() throws Exception {
familyInformation = new FamilyInformation(getSnp("UczenDanePodstawowe.html"));
}
@Test
public void getFamilyMembers() throws Exception {
Assert.assertEquals(2, familyInformation.getFamilyMembers().size());
}
@Test
public void getNameTest() throws Exception {
List<FamilyMember> list = familyInformation.getFamilyMembers();
Assert.assertEquals("Marianna Pająk", list.get(0).getName());
Assert.assertEquals("Dawid Świątek", list.get(1).getName());
}
@Test
public void getKinshipTest() throws Exception {
List<FamilyMember> list = familyInformation.getFamilyMembers();
Assert.assertEquals("matka", list.get(0).getKinship());
Assert.assertEquals("ojciec", list.get(1).getKinship());
}
@Test
public void getAddressTest() throws Exception {
List<FamilyMember> list = familyInformation.getFamilyMembers();
Assert.assertEquals("ul. Sportowa 16, 00-123 Warszawa", list.get(0).getAddress());
Assert.assertEquals("ul. Sportowa 18, 00-123 Warszawa", list.get(1).getAddress());
}
@Test
public void getTelephonesTest() throws Exception {
List<FamilyMember> list = familyInformation.getFamilyMembers();
Assert.assertEquals("555111222", list.get(0).getTelephones());
Assert.assertEquals("555222111", list.get(1).getTelephones());
}
@Test
public void getEmailTest() throws Exception {
List<FamilyMember> list = familyInformation.getFamilyMembers();
Assert.assertEquals("wulkanowy@example.null", list.get(0).getEmail());
Assert.assertEquals("wulkanowy@example.null", list.get(1).getEmail());
}
}

View File

@ -1,21 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Oceny</title>
</head>
<body>
<main class="mainContainer">
<h1>Oceny</h1>
<div class="filters">
<div>
<label for="okresyKlasyfikacyjneDropDownList">Okres klasyfikacyjny:</label>
<select id="okresyKlasyfikacyjneDropDownList" name="okresyKlasyfikacyjneDropDownList">
<option value="1234">1</option>
<option selected="selected" value="1235">2</option>
</select>
</div>
</main>
<footer>wersja: 17.05.0000.24042</footer>
</body>
</html>

View File

@ -1,24 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Uonet+</title>
</head>
<body>
<div class="startScreen">
<div class="holder">
<div class="content">
<div class="panel linkownia pracownik klient">
<a href="https://uonetplus-opiekun.vulcan.net.pl/symbol/534213/Start/Index/">
<div class="imagedHeader directLink">
<div id="idEmptyAppUczeń">
<div class="name">Uczeń</div>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -1,408 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Frekwencja</title>
<style>
.x-sp-nieobecny-w-oddziale:before {
content: 'nieobecny w oddziale';
background: grey;
}
.x-obecnosc:before {
content: 'obecność';
background: green;
}
.presentData td:not(.padding-zero):not(.x-sp-nieobecny-w-oddziale):not(:first-child):before {
content: 'pusta';
background: grey;
}
</style>
</head>
<body>
<main class="mainContainer">
<h1>Frekwencja</h1>
<table class="presentData">
<thead>
<tr>
<th>Lekcja</th>
<th>poniedziałek<br>31.08.2015</th>
<th>wtorek<br>01.09.2015</th>
<th>środa<br>02.09.2015</th>
<th>czwartek<br>03.09.2015</th>
<th>piątek<br>04.09.2015</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>1</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Uroczyste rozpoczęcie roku szkolnego 2015/2016</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Wychowanie do życia w rodzinie</span>
</div>
</td>
<td></td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Urządzenia techniki komputerowej</span>
</div>
</td>
</tr>
<tr>
<td>2</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Język angielski</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Język niemiecki</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Urządzenia techniki komputerowej</span>
</div>
</td>
</tr>
<tr>
<td>3</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Systemy operacyjne</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Chemia</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Urządzenia techniki komputerowej</span>
</div>
</td>
</tr>
<tr>
<td>4</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Systemy operacyjne</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Geografia</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Urządzenia techniki komputerowej</span>
</div>
</td>
</tr>
<tr>
<td>5</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Tworzenie stron internetowych</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Matematyka</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Język polski</span>
</div>
</td>
</tr>
<tr>
<td>6</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Tworzenie stron internetowych</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Fizyka</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Matematyka</span>
</div>
</td>
</tr>
<tr>
<td>7</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Wychowanie fizyczne</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Język polski</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Historia</span>
</div>
</td>
</tr>
<tr>
<td>8</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Wychowanie fizyczne</span>
</div>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>9</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>10</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>11</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>13</td>
<td class="x-sp-nieobecny-w-oddziale"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h1 id="statystyki">Statystyki</h1>
<div>
<label for="idPrzedmiot">Przedmiot:</label>
<select id="idPrzedmiot" name="idPrzedmiot">
<option value="-1">Wszystkie</option>
<option value="1">Religia</option>
<option value="4">Język polski</option>
<option value="5">Język angielski</option>
<option value="9">Język niemiecki</option>
<option value="50">Historia</option>
<option value="56">Wiedza o społeczeństwie</option>
<option value="58">Matematyka</option>
<option value="59">Fizyka</option>
<option value="61">Chemia</option>
<option value="63">Biologia</option>
<option value="64">Geografia</option>
<option value="71">Informatyka</option>
<option value="75">Wychowanie fizyczne</option>
<option value="88">Edukacja dla bezpieczeństwa</option>
<option value="91">Wychowanie do życia w rodzinie</option>
<option value="94">Zajęcia z wychowawcą</option>
<option value="106">Techniki biurowe</option>
<option value="108">Urządzenia techniki komputerowej</option>
<option value="109">Naprawa komputera</option>
<option value="113">Systemy operacyjne</option>
<option value="114">Sieci komputerowe i administrowanie sieciami</option>
<option value="118">Tworzenie stron internetowych</option>
<option value="492">Opieka nad uczniami</option>
<option value="664">Fizyka doświadczalna</option>
<option value="0">Brak opisu lekcji</option>
</select>
</div>
<h2>Frekwencja od początku roku szkolnego: 100,00%</h2>
<table>
<thead>
<tr>
<th></th>
<th>IX</th>
<th>X</th>
<th>XI</th>
<th>XII</th>
<th>I</th>
<th>II</th>
<th>III</th>
<th>IV</th>
<th>V</th>
<th>VI</th>
<th>VII</th>
<th>VIII</th>
<th>Razem</th>
</tr>
</thead>
<tbody>
<tr>
<td>Obecność</td>
<td>142</td>
<td>143</td>
<td>139</td>
<td>110</td>
<td>131</td>
<td>75</td>
<td>126</td>
<td>139</td>
<td>92</td>
<td>114</td>
<td></td>
<td></td>
<td>1211</td>
</tr>
<tr>
<td>Nieobecność nieusprawiedliwiona</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Nieobecność usprawiedliwiona</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Nieobecność z przyczyn szkolnych</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Spóźnienie nieusprawiedliwione</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Spóźnienie usprawiedliwione</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Zwolnienie</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</main>
<footer>wersja: 17.07.0002.24480</footer>
</body>
</html>

View File

@ -1,498 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Frekwencja</title>
<style>
.x-obecnosc:before {
content: 'obecność';
background: green;
}
.x-nieobecnosc-nieuspr:before {
content: 'nieobecność nieusprawiedliwiona';
background: red;
}
.x-nieobecnosc-uspr:before {
content: 'nieobecność usprawiedliwiona';
background: orange;
}
.x-nieobecnosc-przycz-szkol:before {
content: 'nieobecność z przyczyn szkolnych';
background: lightblue;
}
.x-sp-nieusprawiedliwione:before {
content: 'spóźnienie nieusprawiedliwione';
background: yellow;
}
.x-sp-spr:before {
content: 'spóźnienie usprawiedliwione';
background: black;
color: white;
}
.x-sp-zwolnienie:before {
content: 'zwolnienie';
background: purple;
}
.x-sp-nieobecny-w-oddziale:before {
content: 'nieobecny w oddziale';
background: grey;
}
.x-obecnosc:before {
content: 'obecność';
background: green;
}
.presentData td:not(.padding-zero):not(.x-sp-nieobecny-w-oddziale):not(:first-child):before {
content: 'pusta';
background: grey;
}
</style>
</head>
<body>
<main class="mainContainer">
<h1>Frekwencja</h1>
<table class="presentData">
<thead>
<tr>
<th>Lekcja</th>
<th>poniedziałek<br>05.09.2016</th>
<th>wtorek<br>06.09.2016</th>
<th>środa<br>07.09.2016</th>
<th>czwartek<br>08.09.2016</th>
<th>piątek<br>09.09.2016</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>1</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Urządzenia techniki komputerowej</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Multimedia i grafika komputerowa</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Użytkowanie urządzeń peryferyjnych komputera</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Religia</span>
</div>
</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Urządzenia techniki komputerowej</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Język niemiecki</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Użytkowanie urządzeń peryferyjnych komputera</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Język niemiecki</span>
</div>
</td>
<td class="padding-zero">
<div class="x-nieobecnosc-uspr">
<span>Sieci komputerowe i administrowanie sieciami</span>
</div>
</td>
</tr>
<tr>
<td>3</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Urządzenia techniki komputerowej</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Fizyka</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Historia</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Wychowanie fizyczne</span>
</div>
</td>
<td class="padding-zero">
<div class="x-nieobecnosc-uspr">
<span>Wiedza o kulturze</span>
</div>
</td>
</tr>
<tr>
<td>4</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Naprawa komputera</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Wychowanie fizyczne</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Język angielski</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Wychowanie fizyczne</span>
</div>
</td>
<td class="padding-zero">
<div class="x-nieobecnosc-uspr">
<span>Język polski</span>
</div>
</td>
</tr>
<tr>
<td>5</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Sieci komputerowe i administrowanie sieciami</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Metodologia programowania</span>
</div>
</td>
<td class="padding-zero">
<div class="x-nieobecnosc-przycz-szkol">
<span>Urządzenia techniki komputerowej</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Matematyka</span>
</div>
</td>
<td class="padding-zero">
<div class="x-nieobecnosc-uspr">
<span>Metodologia programowania</span>
</div>
</td>
</tr>
<tr>
<td>6</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Język niemiecki</span>
</div>
</td>
<td class="padding-zero">
<div class="x-sp-nieusprawiedliwione">
<span>Sieci komputerowe i administrowanie sieciami</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Język polski</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Podstawy przedsiębiorczości</span>
</div>
</td>
<td class="padding-zero">
<div class="x-nieobecnosc-uspr">
<span>Matematyka</span>
</div>
</td>
</tr>
<tr>
<td>7</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Fizyka</span>
</div>
</td>
<td class="padding-zero">
<div class="x-sp-spr">
<span>Język polski</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Systemy operacyjne</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Zajęcia z wychowawcą</span>
</div>
</td>
<td class="padding-zero">
<div class="x-nieobecnosc-uspr">
<span>Religia</span>
</div>
</td>
</tr>
<tr>
<td>8</td>
<td></td>
<td class="padding-zero">
<div class="x-nieobecnosc-nieuspr">
<span>Naprawa komputera</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Systemy operacyjne</span>
</div>
</td>
<td class="padding-zero">
<div class="x-obecnosc">
<span>Urządzenia techniki komputerowej</span>
</div>
</td>
<td class="padding-zero">
<div class="x-sp-zwolnienie">
<span>Zajęcia z wychowawcą</span>
</div>
</td>
</tr>
<tr>
<td>9</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>10</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>11</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>13</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h1 id="statystyki">Statystyki</h1>
<div>
<label for="idPrzedmiot">Przedmiot:</label>
<select id="idPrzedmiot" name="idPrzedmiot">
<option value="-1">Wszystkie</option>
<option value="1">Religia</option>
<option value="4">Język polski</option>
<option value="5">Język angielski</option>
<option value="9">Język niemiecki</option>
<option value="50">Historia</option>
<option value="57">Wiedza o kulturze</option>
<option value="58">Matematyka</option>
<option value="59">Fizyka</option>
<option value="70">Podstawy przedsiębiorczości</option>
<option value="75">Wychowanie fizyczne</option>
<option value="77">Praktyka zawodowa</option>
<option value="91">Wychowanie do życia w rodzinie</option>
<option value="94">Zajęcia z wychowawcą</option>
<option value="108">Urządzenia techniki komputerowej</option>
<option value="109">Naprawa komputera</option>
<option value="110">Użytkowanie urządzeń peryferyjnych komputera</option>
<option value="113">Systemy operacyjne</option>
<option value="114">Sieci komputerowe i administrowanie sieciami</option>
<option value="116">Multimedia i grafika komputerowa</option>
<option value="120">Metodologia programowania</option>
<option value="492">Opieka nad uczniami</option>
<option value="0">Brak opisu lekcji</option>
</select>
</div>
<h2>Frekwencja od początku roku szkolnego: 80,94%</h2>
<table>
<thead>
<tr>
<th></th>
<th>IX</th>
<th>X</th>
<th>XI</th>
<th>XII</th>
<th>I</th>
<th>II</th>
<th>III</th>
<th>IV</th>
<th>V</th>
<th>VI</th>
<th>VII</th>
<th>VIII</th>
<th>Razem</th>
</tr>
</thead>
<tbody>
<tr>
<td>Obecność</td>
<td>135</td>
<td>103</td>
<td>108</td>
<td>54</td>
<td>37</td>
<td>100</td>
<td>33</td>
<td>90</td>
<td>103</td>
<td>59</td>
<td></td>
<td></td>
<td>822</td>
</tr>
<tr>
<td>Nieobecność nieusprawiedliwiona</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>2</td>
<td></td>
<td></td>
<td></td>
<td>4</td>
<td></td>
<td></td>
<td>6</td>
</tr>
<tr>
<td>Nieobecność usprawiedliwiona</td>
<td>6</td>
<td>27</td>
<td>29</td>
<td>30</td>
<td>44</td>
<td></td>
<td></td>
<td>16</td>
<td>13</td>
<td>27</td>
<td></td>
<td></td>
<td>192</td>
</tr>
<tr>
<td>Nieobecność z przyczyn szkolnych</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>7</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>7</td>
</tr>
<tr>
<td>Spóźnienie nieusprawiedliwione</td>
<td>4</td>
<td></td>
<td>1</td>
<td></td>
<td></td>
<td>2</td>
<td>2</td>
<td></td>
<td>2</td>
<td>1</td>
<td></td>
<td></td>
<td>12</td>
</tr>
<tr>
<td>Spóźnienie usprawiedliwione</td>
<td>1</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>1</td>
</tr>
<tr>
<td>Zwolnienie</td>
<td></td>
<td>1</td>
<td></td>
<td></td>
<td></td>
<td>1</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>2</td>
</tr>
</tbody>
</table>
</main>
<footer>wersja: 17.07.0002.24480</footer>
</body>
</html>

View File

@ -1,85 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Terminarz sprawdzianów</title>
</head>
<body>
<main class="mainContainer">
<h1>Sprawdziany</h1>
<h2>Tydzień 23.10.2017 - 29.10.2017</h2>
<div>
<h2>poniedziałek, 23.10.2017</h2>
<article>
<div class="daneWiersz">
<div class="tytul">Przedmiot i grupa:</div>
<div class="wartosc">Sieci komputerowe 3Ti|zaw2</div>
</div>
<div class="daneWiersz">
<div class="tytul">Rodzaj sprawdzianu:</div>
<div class="wartosc">Sprawdzian</div>
</div>
<div class="daneWiersz">
<div class="tytul">Opis:</div>
<div class="wartosc">Łącza danych</div>
</div>
<div class="daneWiersz">
<div class="tytul">Nauczyciel i data wpisu:</div>
<div class="wartosc">Adam Wiśniewski [AW], 16.10.2017</div>
</div>
</article>
</div>
<div>
<h2>wtorek, 24.10.2017</h2>
<article>
<div class="daneWiersz">
<div class="tytul">Przedmiot i grupa:</div>
<div class="wartosc">Język angielski 3Ti|J1</div>
</div>
<div class="daneWiersz">
<div class="tytul">Rodzaj sprawdzianu:</div>
<div class="wartosc">Sprawdzian</div>
</div>
<div class="daneWiersz">
<div class="tytul">Opis:</div>
<div class="wartosc">Czasy teraźniejsze</div>
</div>
<div class="daneWiersz">
<div class="tytul">Nauczyciel i data wpisu:</div>
<div class="wartosc">Natalia Nowak [NN], 17.10.2017</div>
</div>
</article>
</div>
<div></div>
<div></div>
<div>
<h2>piątek, 27.10.2017</h2>
<article>
<div class="daneWiersz">
<div class="tytul">Przedmiot i grupa:</div>
<div class="wartosc">Metodologia programowania 3Ti|zaw2</div>
</div>
<div class="daneWiersz">
<div class="tytul">Rodzaj sprawdzianu:</div>
<div class="wartosc">Sprawdzian</div>
</div>
<div class="daneWiersz">
<div class="tytul">Opis:</div>
<div class="wartosc"></div>
</div>
<div class="daneWiersz">
<div class="tytul">Nauczyciel i data wpisu:</div>
<div class="wartosc">Małgorzata Nowacka [MN], 16.10.2017</div>
</div>
</article>
</div>
<div></div>
<div></div>
<div class="navigation">
<a href="/symbol/123456/Sprawdziany.mvc/Terminarz?data=636437088000000000&amp;rokSzkolny=2017&amp;rodzajWidoku=2" class="button-prev">Poprzedni tydzień</a>
<a href="/symbol/123456/Sprawdziany.mvc/Terminarz?data=636449184000000000&amp;rokSzkolny=2017&amp;rodzajWidoku=2" class="button-next">Następny tydzień</a>
</div>
</main>
<footer>wersja: 17.08.0001.24874</footer>
</body>
</html>

View File

@ -1,108 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Oceny</title>
</head>
<body>
<main class="mainContainer">
<h1>Oceny</h1>
<div class="filters">
<div>
<label for="okresyKlasyfikacyjneDropDownList">Okres klasyfikacyjny:</label>
<select id="okresyKlasyfikacyjneDropDownList" name="okresyKlasyfikacyjneDropDownList">
<option value="1234567">1</option>
<option selected="selected" value="7654321">2</option>
</select>
</div>
</div>
<table class="ocenySzczegoly-table">
<thead>
<tr>
<th>Przedmiot</th>
<th>Ocena cząstkowa</th>
<th>Opis</th>
<th>Waga</th>
<th>Data</th>
<th>Nauczyciel</th>
</tr>
</thead>
<tbody>
<tr>
<td>Zachowanie</td>
<td>Brak ocen</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Zajęcia z wychowawcą</td>
<td class="break-word">
<span class="ocenaCzastkowa" style="color:#000000;">5</span>
</td>
<td class="break-word">A1, Dzień Kobiet w naszej klasie</td>
<td>1,00</td>
<td>21.03.2017</td>
<td>Patryk Maciejewski</td>
</tr>
<tr>
<td>Edukacja dla bezpieczeństwa</td>
<td class="break-word">
<span class="ocenaCzastkowa" style="color:#F04C4C;">4-</span>
</td>
<td class="break-word">S1, PIERWSZA POMOC I RESUSCYTACJA</td>
<td>5,00</td>
<td>31.03.2017</td>
<td>Weronika Ratajczak</td>
</tr>
<tr>
<td>Fizyka</td>
<td class="break-word">
<span class="ocenaCzastkowa" style="color:#6ECD07;">2</span>
</td>
<td class="break-word">O, Odpowiedź</td>
<td>3,00</td>
<td>25.06.2017</td>
<td>Jakub Michalak</td>
</tr>
<tr>
<td>Język angielski</td>
<td class="break-word">
<span class="ocenaCzastkowa" style="color:#1289F7;">5</span>
</td>
<td class="break-word">BW3, Writing</td>
<td>3,00</td>
<td>02.06.2017</td>
<td>Oliwia Woźniak</td>
</tr>
<tr>
<td>Wiedza o społeczeństwie</td>
<td>Brak ocen</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Wychowanie fizyczne</td>
<td class="break-word"><span class="ocenaCzastkowa" style="color:#6ECD07;">1</span></td>
<td class="break-word">STR</td>
<td>8,00</td>
<td>02.04.2017</td>
<td>Klaudia Dziedzic</td>
</tr>
<tr>
<td>Język polski</td>
<td class="break-word"><span class="ocenaCzastkowa" style="color:#6ECD07;">1</span></td>
<td class="break-word">K, Kordian</td>
<td>5,00</td>
<td>06.02.2017</td>
<td>Amelia Stępień</td>
</tr>
</tbody>
</table>
</main>
<footer>wersja: 17.02.0000.23328</footer>
</body>
</html>

View File

@ -1,70 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Oceny</title>
</head>
<body>
<main class="mainContainer">
<h1>Oceny</h1>
<div class="filters">
<div>
<label for="okresyKlasyfikacyjneDropDownList">Okres klasyfikacyjny:</label>
<select id="okresyKlasyfikacyjneDropDownList" name="okresyKlasyfikacyjneDropDownList">
<option selected="selected" value="1234">1</option>
<option value="1235">2</option>
</select>
</div>
</div>
<table class="ocenyZwykle-table">
<thead>
<tr>
<th>Przedmiot</th>
<th>Oceny cząstkowe</th>
<th>Średnia</th>
<th>Przewidywana ocena roczna</th>
<th>Ocena roczna</th>
</tr>
</thead>
<tbody>
<tr>
<td>Zachowanie</td>
<td class="break-word">Brak ocen</td>
<td>-</td>
<td>bardzo dobre</td>
<td>bardzo dobre</td>
</tr>
<tr>
<td>Język polski</td>
<td class="break-word">0</td>
<td>3,53</td>
<td>-</td>
<td>dobry</td>
</tr>
<tr>
<td>Wychowanie fizyczne</td>
<td class="break-word">0</td>
<td>5,05</td>
<td>bardzo dobry</td>
<td>celujący</td>
</tr>
<tr>
<td>Język angielski</td>
<td class="break-word">0</td>
<td>4,4</td>
<td>4/5</td>
<td>bardzo dobry</td>
</tr>
<tr>
<td>Wiedza o społeczeństwie</td>
<td class="break-word">Brak ocen</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
</tbody>
</table>
</main>
<footer>wersja: 17.02.0000.23328</footer>
</body>
</html>

View File

@ -1,64 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Oceny</title>
</head>
<body>
<main class="mainContainer">
<h1>Oceny</h1>
<div class="filters">
<div>
<label for="okresyKlasyfikacyjneDropDownList">Okres klasyfikacyjny:</label>
<select id="okresyKlasyfikacyjneDropDownList" name="okresyKlasyfikacyjneDropDownList">
<option value="1234">1</option>
<option selected="selected" value="1235">2</option>
</select>
</div>
</div>
<table class="ocenyZwykle-table">
<thead>
<tr>
<th>Przedmiot</th>
<th>Oceny cząstkowe</th>
<th>Przewidywana ocena roczna</th>
<th>Ocena roczna</th>
</tr>
</thead>
<tbody>
<tr>
<td>Zachowanie</td>
<td class="break-word">-</td>
<td>bardzo dobre</td>
<td>bardzo dobre</td>
</tr>
<tr>
<td>Praktyka zawodowa</td>
<td class="break-word">-</td>
<td>-</td>
<td>celujący</td>
</tr>
<tr>
<td>Metodologia programowania</td>
<td class="break-word">-</td>
<td>bardzo dobry</td>
<td>celujący</td>
</tr>
<tr>
<td>Podstawy przedsiębiorczości</td>
<td class="break-word">-</td>
<td>3/4</td>
<td>dostateczny</td>
</tr>
<tr>
<td>Wychowanie do życia w rodzinie</td>
<td class="break-word">-</td>
<td>-</td>
<td>-</td>
</tr>
</tbody>
</table>
</main>
<footer>wersja: 17.05.0000.24042</footer>
</body>
</html>

View File

@ -1,15 +0,0 @@
<!doctype html>
<html>
<head>
<title>Logowanie</title>
</head>
<body>
<form id="form1">
<div>
Adres <b>example@wulkanowy.io</b> nie został zarejestrowany w dzienniku uczniowskim jako adres rodzica, bądź ucznia.
Jeśli jesteś rodzicem (prawnym opiekunem) ucznia (lub uczniem) szkoły korzystającej z dziennika „UONET +” udaj się do
wychowawcy i poproś o wprowadzenie Twojego adresu e-mail do Twoich danych.
</div>
</form>
</body>
</html>

View File

@ -1,17 +0,0 @@
<html>
<head>
<title>Working...</title>
</head>
<body>
<form method="POST" name="hiddenform" action="https://fake-log.com/Default/LoginEndpoint.aspx">
<input type="hidden" name="wa" value="wsignin1.0">
<input type="hidden" name="wresult" value="<trust:RequestSecurityTokenResponseCollection xmlns:trust=&quot;http://docs.oasis-open.org/ws-sx/ws-trust/200512&quot;><trust:RequestSecurityTokenResponse Context=&quot;https://uonetplus.fake-log.com/Default/LoginEndpoint.aspx&quot;><trust:RequestedSecurityToken><saml:Assertion AssertionID=&quot;_12345678-1234-1234-1234-1234567890ab&quot; IssueInstant=&quot;2017-10-18T22:00:29.006Z&quot; Issuer=&quot;CUFSTokenService&quot; MajorVersion=&quot;1&quot; MinorVersion=&quot;1&quot; xmlns:saml=&quot;urn:oasis:names:tc:SAML:1.0:assertion&quot;><saml:AttributeStatement><saml:Attribute AttributeName=&quot;UserInstance&quot; AttributeNamespace=&quot;http://schemas.fake-log.com/ws/identity/claims&quot;><saml:AttributeValue>Default</saml:AttributeValue><saml:AttributeValue>demo12345</saml:AttributeValue><saml:AttributeValue>incorrect value</saml:AttributeValue><saml:AttributeValue>warszawa</saml:AttributeValue><saml:AttributeValue>asdf</saml:AttributeValue><saml:AttributeValue>asdfsdf</saml:AttributeValue></saml:Attribute></saml:AttributeStatement></saml:Assertion></trust:RequestedSecurityToken></trust:RequestSecurityTokenResponse></trust:RequestSecurityTokenResponseCollection>">
<input type="hidden" name="wctx" value="https://fake-log.com/Default/LoginEndpoint.aspx">
<noscript>
<p>Script is disabled. Click Submit to continue.</p>
<input type="submit" value="Submit">
</noscript>
</form>
<script language="javascript">window.setTimeout('document.forms[0].submit()', 0);</script>
</body>
</html>

View File

@ -1,18 +0,0 @@
<!doctype html>
<html>
<head>
<title>Logowanie (demo123)</title>
</head>
<body>
<div id="MainDiv">
<form>
<div class="ErrorMessage center">
Zła nazwa użytkownika lub hasło
</div>
</form>
</div>
<div id="globalfooter">
<div id="left">16.2.0.4450</div>
</div>
</body>
</html>

View File

@ -1,16 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Uonet+</title>
</head>
<body>
<div class="startScreen">
<div class="topBar">
<div class="panelTopBar">
<span class="userdata">example@wulkanowy.io (<a href="/demo123/LoginEndpoint.aspx?logout=true">wyloguj</a>)</span>
</div>
</div>
</div>
</body>
</html>

View File

@ -1,18 +0,0 @@
<trust:RequestSecurityTokenResponseCollection xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
<trust:RequestSecurityTokenResponse Context="https://uonetplus.fake-log.com/Default/LoginEndpoint.aspx">
<trust:RequestedSecurityToken>
<saml:Assertion AssertionID="_12345678-1234-1234-1234-1234567890ab" IssueInstant="2017-10-18T22:00:29.006Z" Issuer="CUFSTokenService" MajorVersion="1" MinorVersion="1" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
<saml:AttributeStatement>
<saml:Attribute AttributeName="UserInstance" AttributeNamespace="http://schemas.fake-log.com/ws/identity/claims">
<saml:AttributeValue>Default</saml:AttributeValue>
<saml:AttributeValue>demo12345</saml:AttributeValue>
<saml:AttributeValue>incorrect value</saml:AttributeValue>
<saml:AttributeValue>warszawa</saml:AttributeValue>
<saml:AttributeValue>asdf</saml:AttributeValue>
<saml:AttributeValue>asdfsdf</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</trust:RequestedSecurityToken>
</trust:RequestSecurityTokenResponse>
</trust:RequestSecurityTokenResponseCollection>

View File

@ -1,20 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Uwagi i osiągnięcia</title>
</head>
<body>
<main class="mainContainer">
<div>
<h1>Uwagi</h1>
<h2>Brak informacji do wyświetlenia</h2>
</div>
<div>
<h1>Osiągnięcia</h1>
<h2>Brak informacji do wyświetlenia</h2>
</div>
</main>
<footer>wersja: 17.05.0000.24042</footer>
</body>
</html>

View File

@ -1,65 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Uwagi i osiągnięcia</title>
</head>
<body>
<main class="mainContainer">
<div>
<h1>Uwagi</h1>
<h2>06.06.2017</h2>
<article>
<div class="daneWiersz">
<div class="tytul">Nauczyciel:</div>
<div class="wartosc">Jan Kowalski [JK]</div>
</div>
<div class="daneWiersz">
<div class="tytul">Kategoria:</div>
<div class="wartosc">Zaangażowanie społeczne</div>
</div>
<div class="daneWiersz">
<div class="tytul">Treść:</div>
<div class="wartosc">Pomoc przy pikniku charytatywnym</div>
</div>
</article>
<h2>01.12.2016</h2>
<article>
<div class="daneWiersz">
<div class="tytul">Nauczyciel:</div>
<div class="wartosc">Ochocka Zofia [PZ]</div>
</div>
<div class="daneWiersz">
<div class="tytul">Kategoria:</div>
<div class="wartosc">Reprezentowanie szkoły</div>
</div>
<div class="daneWiersz">
<div class="tytul">Treść:</div>
<div class="wartosc">Udział w przygotowaniu spektaklu</div>
</div>
</article>
<h2>01.10.2016</h2>
<article>
<div class="daneWiersz">
<div class="tytul">Nauczyciel:</div>
<div class="wartosc">Kochański Leszek [KL]</div>
</div>
<div class="daneWiersz">
<div class="tytul">Kategoria:</div>
<div class="wartosc">Zachowanie na lekcji</div>
</div>
<div class="daneWiersz">
<div class="tytul">Treść:</div>
<div class="wartosc">Przeszkadzanie w prowadzeniu lekcji</div>
</div>
</article>
</div>
<div>
<h1>Osiągnięcia</h1>
<article>I miejsce w ogólnopolskim konkursie ortograficznym</article>
<article>III miejsce w ogólnopolskim konkursie plastycznym</article>
</div>
</main>
<footer>wersja: 17.05.0000.24042</footer>
</body>
</html>

View File

@ -1,136 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Szkoła i nauczyciele</title>
</head>
<body>
<main class="mainContainer">
<h1>Szkoła</h1>
<article>
<div class="daneWiersz">
<span class="tytul">Nazwa szkoły:</span>
<span class="wartosc">Zesp&#243;ł Szk&#243;ł nr 64</span>
</div>
<div class="daneWiersz">
<span class="tytul">Adres szkoły:</span>
<span class="wartosc">ul. Wiśniowa 128, 01-234 Rogalowo, Nibylandia</span>
</div>
<div class="daneWiersz">
<span class="tytul">Telefon:</span>
<span class="wartosc">55 5555555</span>
</div>
<div class="daneWiersz">
<span class="tytul">Imię i nazwisko dyrektora:</span>
<span class="wartosc">Antoni Sobczyk</span>
</div>
<div class="daneWiersz">
<span class="tytul">Imię i nazwisko pedagoga:</span>
<span class="wartosc">Zofia Czerwińska [ZC], Aleksander Krzemiński [AK], Karolina Kowalska [KK], Bartek Dąbrowski [BD]</span>
</div>
</article>
<h1>Nauczyciele</h1>
<p>
Klasa: 1a, Wychowawcy:
Karolina Kowalska [AN], Antoni Sobczyk [AS]</p>
<br/>
<table>
<thead>
<tr class="title">
<th>Lp.</th>
<th>Przedmiot</th>
<th>Nauczyciel</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Biologia</td>
<td>Karolina Kowalska [AN]</td>
</tr>
<tr>
<td>2</td>
<td>Chemia</td>
<td>Zofia Czerwińska [NA]</td>
</tr>
<tr>
<td>3</td>
<td>Edukacja dla bezpieczeństwa</td>
<td>Aleksandra Krajewska [AK]</td>
</tr>
<tr>
<td>4</td>
<td>Fizyka</td>
<td>Stanisław Krupa [BS]</td>
</tr>
<tr>
<td>5</td>
<td>Geografia</td>
<td>Aleksandra Wójtowicz [AW]</td>
</tr>
<tr>
<td>6</td>
<td>Historia</td>
<td>Sara Wierzbicka [KB]</td>
</tr>
<tr>
<td>7</td>
<td>Język angielski</td>
<td>Karolina Kowalska [AN], Mateusz Kowal [MK], Amelia Mazur [AM]</td>
</tr>
<tr>
<td>8</td>
<td>Język niemiecki</td>
<td>Mateusz Kowal [MK], Barbara Markowska [BM]</td>
</tr>
<tr>
<td>9</td>
<td>Język polski</td>
<td>Michał Mazur [MM]</td>
</tr>
<tr>
<td>10</td>
<td>Matematyka</td>
<td>Szymon Wojciechowski [SW]</td>
</tr>
<tr>
<td>11</td>
<td>Plastyka</td>
<td>Michał Mazur [MM]</td>
</tr>
<tr>
<td>12</td>
<td>Religia</td>
<td>Maja Wiśniewska [M]</td>
</tr>
<tr>
<td>13</td>
<td>Wiedza o społeczeństwie</td>
<td>Karolina Kowalska [AN]</td>
</tr>
<tr>
<td>14</td>
<td>Wychowanie do życia w rodzinie</td>
<td>Zofia Czerwińska [NA]</td>
</tr>
<tr>
<td>15</td>
<td>Wychowanie fizyczne</td>
<td>Karolina Kowalska [AN], Liliana Kowal [LK]</td>
</tr>
<tr>
<td>16</td>
<td>Zajęcia techniczne</td>
<td>Bartek Dąbrowski [BD]</td>
</tr>
<tr>
<td>17</td>
<td>Zajęcia z wychowawcą</td>
<td>Karolina Kowalska [AN]</td>
</tr>
</tbody>
</table>
</main>
<footer>wersja: 17.02.0000.23328</footer>
</body>
</html>

View File

@ -1,405 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Plan lekcji</title>
</head>
<body>
<main class="mainContainer">
<h1>Plan lekcji</h1>
<div>
<table class="presentData">
<thead>
<tr>
<th>Lekcja</th>
<th>Pora lekcji</th>
<th>poniedziałek<br>19.06.2017</th>
<th>wtorek<br>20.06.2017</th>
<th>środa<br>21.06.2017</th>
<th>czwartek<br>22.06.2017</th>
<th>piątek<br>23.06.2017</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>07:10 07:55</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>
<div>
<span class="x-treelabel-ppl">Uroczyste zakończenie roku szkolnego</span>
<span class="x-treelabel-ppl">Baran Małgorzata</span>
<span class="x-treelabel-ppl">37</span>
</div>
</td>
</tr>
<tr>
<td>1</td>
<td>08:00 08:45</td>
<td>
<div>
<span>Język angielski [J1]</span>
<span></span>
<span>Kobczyk Iwona</span>
<span></span>
</div>
</td>
<td></td>
<td>
<div>
<span>Użytkowanie urządzeń peryferyjnych komputera [zaw2]</span>
<span></span>
<span>Bączek Robert</span>
<span></span>
</div>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>08:50 09:35</td>
<td>
<div>
<span>Język polski</span>
<span>Bocian Natalia</span>
<span></span>
</div>
</td>
<td>
<div>
<span class="x-treelabel-ppl x-treelabel-inv">Język niemiecki [J1]</span>
<span class="x-treelabel-ppl x-treelabel-inv"></span>
<span class="x-treelabel-ppl x-treelabel-inv">Rożeniec Honorata</span>
<span class="x-treelabel-ppl x-treelabel-inv"> 25</span>
<span class="x-treelabel-rlz">(okienko dla uczniów)</span>
</div>
<div>
<span class="x-treelabel-ppl x-treelabel-zas">Język polski</span>
<span class="x-treelabel-ppl x-treelabel-zas">Bocian Natalia</span>
<span class="x-treelabel-ppl x-treelabel-zas"></span>
<span class="x-treelabel-rlz">(przeniesiona z lekcji 7, 20.06.2017)</span>
</div>
<div>
<span>Język polski</span>
<span>Bocian Natalia</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Urządzenia techniki komputerowej [zaw2]</span>
<span></span>
<span>Bocian Grzegorz</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Matematyka</span>
<span>Baran Małgorzata</span>
<span></span>
</div>
</td>
<td></td>
</tr>
<tr>
<td>3</td>
<td>09:40 10:25</td>
<td>
<div>
<span>Język polski</span>
<span>Bocian Natalia</span>
<span></span>
</div>
</td>
<td>
<div>
<span class="x-treelabel-ppl x-treelabel-inv">Fizyka</span>
<span class="x-treelabel-ppl x-treelabel-inv">Bączek Grzegorz</span>
<span class="x-treelabel-ppl x-treelabel-inv">19</span>
<span class="x-treelabel-rlz">(okienko dla uczniów)</span>
</div>
<div>
<span class="x-treelabel-ppl x-treelabel-zas">Wychowanie fizyczne [wf2]</span>
<span class="x-treelabel-ppl x-treelabel-zas"></span>
<span class="x-treelabel-ppl x-treelabel-zas">Nowicka Irena</span>
<span class="x-treelabel-ppl x-treelabel-zas"></span>
<span class="x-treelabel-rlz">(przeniesiona z lekcji 4, 20.06.2017)</span>
</div>
<div>
<span>Wychowanie fizyczne [wf2]</span>
<span></span>
<span>Nowicka Irena</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Metodologia programowania [zaw2]</span>
<span></span>
<span>Baran Małgorzata</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Wychowanie fizyczne [wf2]</span>
<span></span>
<span>Nowicka Irena</span>
<span></span>
</div>
</td>
<td></td>
</tr>
<tr>
<td>4</td>
<td>10:40 11:25</td>
<td>
<div>
<span>Urządzenia techniki komputerowej [zaw2]</span>
<span></span>
<span>Bocian Grzegorz</span>
<span></span>
</div>
</td>
<td>
<div>
<span class="x-treelabel-ppl x-treelabel-inv">Wychowanie fizyczne [wf2]</span>
<span class="x-treelabel-ppl x-treelabel-inv"></span>
<span class="x-treelabel-ppl x-treelabel-inv">Nowicka Irena</span>
<span class="x-treelabel-ppl x-treelabel-inv"></span>
<span class="x-treelabel-rlz">(przeniesiona na lekcję 3, 20.06.2017)</span>
</div>
</td>
<td>
<div>
<span>Matematyka</span>
<span>Baran Małgorzata</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Wychowanie fizyczne [wf2]</span>
<span></span>
<span>Nowicka Irena</span>
<span></span>
</div>
</td>
<td></td>
</tr>
<tr>
<td>5</td>
<td>11:30 12:15</td>
<td>
<div>
<span>Urządzenia techniki komputerowej [zaw2]</span>
<span></span>
<span>Bocian Grzegorz</span>
<span></span>
</div>
</td>
<td>
<div>
<span class="x-treelabel-ppl x-treelabel-inv">Podstawy przedsiębiorczości</span>
<span class="x-treelabel-ppl x-treelabel-inv">Bogatka Anna</span>
<span class="x-treelabel-ppl x-treelabel-inv">W12</span>
<span class="x-treelabel-rlz">(okienko dla uczniów)</span>
</div>
</td>
<td>
<div>
<span>Religia</span>
<span>Cyranka Krystian</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Sieci komputerowe i administrowanie sieciami [zaw2]</span>
<span></span>
<span>Rożeniec Piotr</span>
<span></span>
</div>
</td>
<td></td>
</tr>
<tr>
<td>6</td>
<td>12:20 13:05</td>
<td>
<div>
<span>Matematyka</span>
<span>Baran Małgorzata</span>
<span></span>
</div>
</td>
<td>
<div>
<span class="x-treelabel-ppl x-treelabel-inv">Podstawy przedsiębiorczości</span>
<span class="x-treelabel-ppl x-treelabel-inv">Bogatka Anna</span>
<span class="x-treelabel-ppl x-treelabel-inv">W12</span>
<span class="x-treelabel-rlz">(okienko dla uczniów)</span>
</div>
</td>
<td>
<div>
<span>Język angielski [J1]</span>
<span></span>
<span>Brodziec Sylwia</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Religia</span>
<span>Cyranka Krystian</span>
<span></span>
</div>
</td>
<td></td>
</tr>
<tr>
<td>7</td>
<td>13:10 13:55</td>
<td>
<div>
<span class="x-treelabel-ppl x-treelabel-inv">Fizyka</span>
<span class="x-treelabel-ppl x-treelabel-inv">Bączek Grzegorz</span>
<span class="x-treelabel-ppl x-treelabel-inv">33</span>
<span class="x-treelabel-rlz">(okienko dla uczniów)</span>
</div>
</td>
<td>
<div>
<span class="x-treelabel-ppl x-treelabel-inv">Język polski</span>
<span class="x-treelabel-ppl x-treelabel-inv">Bocian Natalia</span>
<span class="x-treelabel-ppl x-treelabel-inv"></span>
<span class="x-treelabel-rlz">(przeniesiona na lekcję 2, 20.06.2017)</span>
</div>
</td>
<td>
<div>
<span>Multimedia i grafika komputerowa [zaw2]</span>
<span></span>
<span>Bocian Konrad</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Wiedza o kulturze</span>
<span>Bocian Natalia</span>
<span></span>
</div>
</td>
<td></td>
</tr>
<tr>
<td>8</td>
<td>14:00 14:45</td>
<td>
<div>
<span>Zajęcia z wychowawcą</span>
<span>Baran Małgorzata</span>
<span></span>
</div>
</td>
<td>
<div>
<span class="x-treelabel-ppl x-treelabel-inv">Naprawa komputera [zaw2]</span>
<span class="x-treelabel-ppl x-treelabel-inv"></span>
<span class="x-treelabel-ppl x-treelabel-inv">Kraska Maciej</span>
<span class="x-treelabel-ppl x-treelabel-inv">32</span>
<span class="x-treelabel-rlz">(okienko dla uczniów)</span>
</div>
</td>
<td>
<div>
<span class="x-treelabel-ppl">Systemy operacyjne [zaw2]</span>
<span class="x-treelabel-ppl"></span>
<span class="x-treelabel-ppl">Kraska Maciej</span>
<span class="x-treelabel-ppl">32</span>
</div>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>9</td>
<td>14:50 15:35</td>
<td></td>
<td>
<div>
<span class="x-treelabel-ppl x-treelabel-inv">Język niemiecki [J1]</span>
<span class="x-treelabel-ppl x-treelabel-inv"></span>
<span class="x-treelabel-ppl x-treelabel-inv">Rożeniec Honorata</span>
<span class="x-treelabel-ppl x-treelabel-inv">25</span>
<span class="x-treelabel-rlz">(uczniowie zwolnieni do domu)</span>
</div>
</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>10</td>
<td>15:40 16:25</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>11</td>
<td>16:35 17:20</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12</td>
<td>17:25 18:10</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>13</td>
<td>18:15 19:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="description">
<div>
<span class="x-treelabel-ppl">Kursywa</span>- planowane
</div>
<div>
<span class="x-treelabel-rlz">Zwykła czcionka</span>- zrealizowane
</div>
<div>
<span class="x-treelabel-inv">Przekreślone</span>- odwołane lub przeniesione
</div>
<div>
<span class="x-treelabel-zas">Pogrubione</span>- nowe lekcje, przeniesione z innego terminu, zastępstwa
</div>
</div>
</main>
<footer>wersja: 17.05.0000.24042</footer>
</body>
</html>

View File

@ -1,156 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Plan lekcji</title>
</head>
<body>
<main class="mainContainer">
<h1>Plan lekcji</h1>
<div>
<table class="presentData">
<thead>
<tr>
<th>Lekcja</th>
<th>Pora lekcji</th>
<th class="free-day">poniedziałek<br>31.07.2017<br>Ferie letnie</th>
<th class="free-day">wtorek<br>01.08.2017<br>Ferie letnie</th>
<th class="free-day">środa<br>02.08.2017<br>Ferie letnie</th>
<th class="free-day">czwartek<br>03.08.2017<br>Ferie letnie</th>
<th class="free-day">piątek<br>04.08.2017<br>Ferie letnie</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>07:10 07:55</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>1</td>
<td>08:00 08:45</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>08:50 09:35</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>3</td>
<td>09:40 10:25</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>4</td>
<td>10:40 11:25</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>5</td>
<td>11:30 12:15</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>6</td>
<td>12:20 13:05</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>7</td>
<td>13:10 13:55</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>8</td>
<td>14:00 14:45</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>9</td>
<td>14:50 15:35</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>10</td>
<td>15:40 16:25</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>11</td>
<td>16:35 17:20</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12</td>
<td>17:25 18:10</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>13</td>
<td>18:15 19:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</main>
<footer>wersja: 17.05.0000.24042</footer>
</body>
</html>

View File

@ -1,303 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Plan lekcji</title>
</head>
<body>
<main class="mainContainer">
<h1>Plan lekcji</h1>
<div>
<table class="presentData">
<thead>
<tr>
<th>Lekcja</th>
<th>Pora lekcji</th>
<th>poniedziałek<br>19.06.2017</th>
<th>wtorek<br>20.06.2017</th>
<th>środa<br>21.06.2017</th>
<th>czwartek<br>22.06.2017</th>
<th>piątek<br>23.06.2017</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>08:00 08:45</td>
<td>
<div>
<span>Edukacja dla bezpieczeństwa</span>
<span>Kobczyk Iwona</span>
<span></span>
</div>
</td>
<td></td>
<td>
<div>
<span>Język niemiecki [JNPW]</span>
<span></span>
<span>Dzwoniec Ewa</span>
<span></span>
</div>
</td>
<td>
<div>
<span class="x-treelabel-ppl">Wychowanie do życia w rodzinie</span>
<span class="x-treelabel-ppl">Baran Dominika</span>
<span class="x-treelabel-ppl"></span>
</div>
</td>
<td>
<div>
<span>Język niemiecki [JNPW]</span>
<span></span>
<span>Dzwoniec Ewa</span>
<span></span>
</div>
</td>
</tr>
<tr>
<td>2</td>
<td>08:50 09:35</td>
<td>
<div>
<span>Historia</span>
<span>Bogatka Katarzyna</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Wychowanie fizyczne [CH]</span>
<span></span>
<span>Brodziec Dominika</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Fizyka</span>
<span>Bocian Łukasz</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Biologia</span>
<span>Kowalska Anna</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Religia</span>
<span>Kraska Maciej</span>
<span></span>
</div>
</td>
</tr>
<tr>
<td>3</td>
<td>09:40 10:25</td>
<td>
<div>
<span>Wychowanie fizyczne [CH]</span>
<span></span>
<span>Brodziec Dominika</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Język polski</span>
<span>Rożeniec Paulina</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Matematyka</span>
<span>Bączek Dominika</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Plastyka</span>
<span>Rożeniec Paulina</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Zajęcia z wychowawcą</span>
<span>Kowalska Anna</span>
<span></span>
</div>
</td>
</tr>
<tr>
<td>4</td>
<td>10:30 11:15</td>
<td>
<div>
<span>Geografia</span>
<span>Orłowski Konrad</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Matematyka</span>
<span>Bączek Dominika</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Język angielski [JAPN]</span>
<span></span>
<span>Biegus Kazimiera</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Matematyka</span>
<span>Bączek Dominika</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Historia</span>
<span>Bogatka Katarzyna</span>
<span></span>
</div>
</td>
</tr>
<tr>
<td>5</td>
<td>11:30 12:15</td>
<td>
<div>
<span>Matematyka</span>
<span>Bączek Dominika</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Biologia</span>
<span>Kowalska Anna</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Zajęcia techniczne</span>
<span>Chlebowski Stanisław</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Język angielski [JAPN]</span>
<span></span>
<span>Biegus Kazimiera</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Język polski</span>
<span>Rożeniec Paulina</span>
<span></span>
</div>
</td>
</tr>
<tr>
<td>6</td>
<td>12:30 13:15</td>
<td>
<div>
<span>Matematyka</span>
<span>Bączek Dominika</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Fizyka</span>
<span>Bocian Łukasz</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Język polski</span>
<span>Rożeniec Paulina</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Wychowanie fizyczne [CH]</span>
<span></span>
<span>Brodziec Dominika</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Język polski</span>
<span>Rożeniec Paulina</span>
<span></span>
</div>
</td>
</tr>
<tr>
<td>7</td>
<td>13:20 14:05</td>
<td>
<div>
<span>Język angielski [JAPN]</span>
<span></span>
<span>Biegus Kazimiera</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Religia</span>
<span>Kraska Maciej</span>
<span></span>
</div>
</td>
<td>
<div>
<span>Wychowanie fizyczne [CH]</span>
<span></span>
<span>Brodziec Dominika</span>
<span></span>
</div>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>8</td>
<td>14:10 14:55</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</main>
<footer>wersja: 17.02.0000.23328</footer>
</body>
</html>

View File

@ -1,119 +0,0 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title>Witryna ucznia i rodzica Dane ucznia</title>
</head>
<body>
<main class="mainContainer">
<h1>Dane podstawowe</h1>
<h2>Dane osobowe</h2>
<article>
<div class="daneWiersz">
<span class="tytul">Imię (imiona) nazwisko:</span>
<span class="wartosc">Maria Aneta Kamińska</span>
</div>
<div class="daneWiersz">
<span class="tytul">Data i miejsce urodzenia:</span>
<span class="wartosc">01.01.1900, Warszawa</span>
</div>
<div class="daneWiersz">
<span class="tytul">PESEL:</span>
<span class="wartosc">12345678900</span>
</div>
<div class="daneWiersz">
<span class="tytul">Płeć:</span>
<span class="wartosc">Kobieta</span>
</div>
<div class="daneWiersz">
<span class="tytul">Obywatelstwo polskie:</span>
<span class="wartosc"> Tak </span>
</div>
<div class="daneWiersz">
<span class="tytul">Nazwisko rodowe:</span>
<span class="wartosc">Nowak</span>
</div>
<div class="daneWiersz">
<span class="tytul">Imię matki i ojca:</span>
<span class="wartosc">Gabriela, Kamil</span>
</div>
</article>
<h2>Dane adresowe</h2>
<article>
<div class="daneWiersz">
<span class="tytul">Adres zamieszkania:</span>
<span class="wartosc">ul. Sportowa 16, 00-123 Warszawa</span>
</div>
<div class="daneWiersz">
<span class="tytul">Adres zameldowania:</span>
<span class="wartosc">ul. Sportowa 17, 00-123 Warszawa</span>
</div>
<div class="daneWiersz">
<span class="tytul">Adres korespondencji:</span>
<span class="wartosc">ul. Sportowa 18, 00-123 Warszawa</span>
</div>
</article>
<h2>Kontakt</h2>
<article>
<div class="daneWiersz">
<span class="tytul">Telefon:</span>
<span class="wartosc">005554433</span>
</div>
<div class="daneWiersz">
<span class="tytul">Telefon kom&#243;rkowy:</span>
<span class="wartosc">555444333</span>
</div>
<div class="daneWiersz">
<span class="tytul">E-mail:</span>
<span class="wartosc">wulkanowy@example.null</span>
</div>
</article>
<h1>Rodzina</h1>
<article>
<div class="daneWiersz">
<span class="tytul">Nazwisko i imię:</span>
<span class="wartosc">Marianna Pająk</span>
</div>
<div class="daneWiersz">
<span class="tytul">Stopień pokrewieństwa:</span>
<span class="wartosc">matka</span>
</div>
<div class="daneWiersz">
<span class="tytul">Adres:</span>
<span class="wartosc">ul. Sportowa 16, 00-123 Warszawa</span>
</div>
<div class="daneWiersz">
<span class="tytul">Telefony:</span>
<span class="wartosc">555111222</span>
</div>
<div class="daneWiersz">
<span class="tytul">E-mail:</span>
<span class="wartosc">wulkanowy@example.null</span>
</div>
</article>
<article>
<div class="daneWiersz">
<span class="tytul">Nazwisko i imię:</span>
<span class="wartosc">Dawid Świątek</span>
</div>
<div class="daneWiersz">
<span class="tytul">Stopień pokrewieństwa:</span>
<span class="wartosc">ojciec</span>
</div>
<div class="daneWiersz">
<span class="tytul">Adres:</span>
<span class="wartosc">ul. Sportowa 18, 00-123 Warszawa</span>
</div>
<div class="daneWiersz">
<span class="tytul">Telefony:</span>
<span class="wartosc">555222111</span>
</div>
<div class="daneWiersz">
<span class="tytul">E-mail:</span>
<span class="wartosc">wulkanowy@example.null</span>
</div>
</article>
</main>
<footer>wersja: 17.02.0000.23328</footer>
</body>
</html>